diff --git a/cave-nft-metadata.json b/cave-nft-metadata.json new file mode 100644 index 0000000..fc023b1 --- /dev/null +++ b/cave-nft-metadata.json @@ -0,0 +1,6 @@ +{ + "name": "CaveParty", + "description": "CaveParty: party in the woods get into ze event! bamm 🔥💥", + "external_url": "https://pinata.cloud/", + "image": "ipfs://QmNvhC1B8iZwUyJ1eDypfTgZJpJKpzM5cWfaCCvscnmptY" + } \ No newline at end of file diff --git a/contracts/nft-old.sol b/contracts/CaveParty.sol similarity index 63% rename from contracts/nft-old.sol rename to contracts/CaveParty.sol index b920291..3e5e29f 100644 --- a/contracts/nft-old.sol +++ b/contracts/CaveParty.sol @@ -2,27 +2,25 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/utils/Strings.sol"; -import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; -contract FluffyFur is ERC721, ERC721URIStorage, Ownable(msg.sender) { +contract CaveParty is ERC721, Ownable(msg.sender) { // events event Minted(uint256 tokenId); // statet variables uint256 public totalMints = 0; - uint256 public mintPrice = 0.001 ether; - uint256 public maxSupply = 280; + uint256 public mintPrice = 0.0001 ether; uint256 public maxPerWallet = 1; - string private assetMetadata = - "ipfs://QmfAYUMMB7NE9NQk2P91GbyWrEm1XWTGSoCcTFhZDZgFwD"; + string public assetMetadata = + "ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS"; // mappings - mapping(address => uint256) walletMints; + mapping(address => uint256) public walletMints; // functions - constructor() ERC721("FluffyFury", "FFY") {} + constructor() ERC721("CaveParty", "CPY") {} function _baseURI() internal view override returns (string memory) { return assetMetadata; @@ -33,11 +31,10 @@ contract FluffyFur is ERC721, ERC721URIStorage, Ownable(msg.sender) { totalMints++; _safeMint(to, tokenId); - _setTokenURI(tokenId, assetMetadata); } function mintToken() external payable { - require(mintPrice == msg.value, "wrong amount sent"); + require(mintPrice == msg.value, "0.0001 ether required to mint"); require( walletMints[msg.sender] <= maxPerWallet, "mints per wallet exceeded" @@ -47,43 +44,25 @@ contract FluffyFur is ERC721, ERC721URIStorage, Ownable(msg.sender) { safeMint(msg.sender); } - // The following functions are overrides required by Solidity. - function tokenURI(uint256 tokenId) - public - view - override(ERC721, ERC721URIStorage) - returns (string memory) - { - return super.tokenURI(tokenId); - } - - function supportsInterface(bytes4 interfaceId) - public - view - override(ERC721, ERC721URIStorage) - returns (bool) - { - return super.supportsInterface(interfaceId); - } - function getMyWalletMints() external view returns (uint256) { return walletMints[msg.sender]; } - function withdrawFunds() external { - require(msg.sender == owner(), "You're not the owner"); - + function withdrawFunds() external onlyOwner { (bool sent, ) = owner().call{value: address(this).balance}(""); require(sent, "withdrawal failed"); } - function updateMetadata(string memory _newAssetMetadata) external { - require(msg.sender == owner(), "You're not the owner"); + function updateMetadata(string memory _newAssetMetadata) external onlyOwner { require(checkMetadata(_newAssetMetadata), "Invalid asset metadata: must include 'ipfs://'"); assetMetadata = _newAssetMetadata; } + function getAssetMetadata() external view onlyOwner returns(string memory) { + return assetMetadata; + } + function checkMetadata(string memory _newAssetMetadata) private pure returns (bool) { bytes memory metadataBytes = bytes(_newAssetMetadata); bytes memory ipfsBytes = bytes("ipfs://"); @@ -105,4 +84,4 @@ contract FluffyFur is ERC721, ERC721URIStorage, Ownable(msg.sender) { return false; } -} +} \ No newline at end of file diff --git a/contracts/FluffyFuryNFT.sol b/contracts/FluffyFuryNFT.sol index ef9d33e..305f74e 100644 --- a/contracts/FluffyFuryNFT.sol +++ b/contracts/FluffyFuryNFT.sol @@ -4,11 +4,13 @@ pragma solidity ^0.8.4; import "@openzeppelin/contracts/utils/Strings.sol"; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; + import {Base64} from "./Base64.sol"; contract FluffyFury is ERC721URIStorage, Ownable(msg.sender) { event Minted(uint256 tokenId); + uint256 private _tokenIdCounter; uint256 public mintPrice = 0.0001 ether; // Specify the mint price in ether string public svgData; // The SVG stored in the contract @@ -21,19 +23,19 @@ contract FluffyFury is ERC721URIStorage, Ownable(msg.sender) { // Modifier to check if the payment sent is correct modifier mintPricePaid() { - require(msg.value == mintPrice, "Incorrect Ether amount sent"); + require(msg.value == mintPrice, "0.0001 ether required to mint"); _; } // Converts an SVG to a Base64 string - function svgToImageURI(string memory svg) public pure returns (string memory) { + function svgToImageURI(string memory svg) private pure returns (string memory) { string memory baseURL = "data:image/svg+xml;base64,"; string memory svgBase64Encoded = Base64.encode(bytes(svg)); return string(abi.encodePacked(baseURL, svgBase64Encoded)); } // Generates a tokenURI using the Base64 string as the image - function formatTokenURI(string memory imageURI) public pure returns (string memory) { + function formatTokenURI(string memory imageURI) private pure returns (string memory) { return string( abi.encodePacked( @@ -74,7 +76,7 @@ contract FluffyFury is ERC721URIStorage, Ownable(msg.sender) { require(sent, "Withdrawal failed"); } - // Allows the owner to update the SVG, after validating that the new SVG contains "ipfs://" + // Allows the owner to update the SVG function updateSVG(string memory _newSvg) external onlyOwner { require(bytes(_newSvg).length > 0, "SVG data cannot be empty"); require(bytes(_newSvg).length <= 5000, "SVG data too large"); // Add size validation if needed diff --git a/contracts/NFTGatedEventManager.sol b/contracts/NFTGatedEventManager.sol index 09efc4b..6e6a915 100644 --- a/contracts/NFTGatedEventManager.sol +++ b/contracts/NFTGatedEventManager.sol @@ -1,29 +1,39 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; -import {IERC721} from './interfaces/IERC721.sol'; +import {IERC721} from "./interfaces/IERC721.sol"; +import {IERC165} from "./interfaces/IERC165.sol"; contract NFTGatedEventManager { struct Event { - string eventName; // Name of the event - uint256 eventDate; // Event date (timestamp) - address nftRequired; // NFT address required for this event - uint256 maxCapacity; // Maximum number of participants allowed + string eventName; // Name of the event + uint256 eventDate; // Event date (timestamp) + address nftRequired; // NFT address required for this event + bool isActive; // Event status + uint256 maxCapacity; // Maximum number of participants allowed uint256 registeredCount; // Current number of participants - bool isActive; // Event status mapping(address => bool) isRegistered; // Tracks users who have registered } - uint256 public eventIdCounter; // Unique ID counter for events + uint256 public eventIdCounter; // Unique ID counter for events mapping(uint256 => Event) public events; // Maps event ID to Event struct address public owner; // Contract owner for event management modifier onlyOwner() { - require(msg.sender == owner, "Only the contract owner can call this function."); + require( + msg.sender == owner, + "Only the contract owner can call this function." + ); _; } - event EventCreated(uint256 eventId, string eventName, uint256 eventDate, address nftRequired, uint256 maxCapacity); + event EventCreated( + uint256 eventId, + string eventName, + uint256 eventDate, + address nftRequired, + uint256 maxCapacity + ); event UserRegistered(uint256 eventId, address user); event EventStatusUpdated(uint256 eventId, bool newStatus); @@ -33,14 +43,30 @@ contract NFTGatedEventManager { // Event creation: Only the owner can create an event function createEvent( - string memory _eventName, - uint256 _eventDate, - address _nftRequired, + string memory _eventName, + uint256 _eventDate, + address _nftRequired, uint256 _maxCapacity ) public onlyOwner { - require(_eventDate > block.timestamp, "Event date must be in the future."); + require( + _eventDate > block.timestamp, + "Event date must be in the future." + ); require(_maxCapacity > 0, "Max capacity must be greater than zero."); + // Check if the require nft address is a contract + uint32 size; + assembly { + size := extcodesize(_nftRequired) + } + require(size > 0, "Required NFT address is not a contract"); + + // Check if the nft contract supports ERC721 interface + require( + IERC165(_nftRequired).supportsInterface(type(IERC721).interfaceId), + "Required NFT Address is not an ERC721 contract" + ); + Event storage newEvent = events[eventIdCounter]; newEvent.eventName = _eventName; newEvent.eventDate = _eventDate; @@ -48,7 +74,13 @@ contract NFTGatedEventManager { newEvent.maxCapacity = _maxCapacity; newEvent.isActive = true; - emit EventCreated(eventIdCounter, _eventName, _eventDate, _nftRequired, _maxCapacity); + emit EventCreated( + eventIdCounter, + _eventName, + _eventDate, + _nftRequired, + _maxCapacity + ); eventIdCounter++; // Increment event ID counter for the next event } @@ -57,10 +89,22 @@ contract NFTGatedEventManager { function registerForEvent(uint256 _eventId) external { Event storage currentEvent = events[_eventId]; require(currentEvent.isActive, "Event is not active."); - require(block.timestamp < currentEvent.eventDate, "Event registration has closed."); - require(currentEvent.registeredCount < currentEvent.maxCapacity, "Event is fully booked."); - require(!currentEvent.isRegistered[msg.sender], "You are already registered for this event."); - require(IERC721(currentEvent.nftRequired).balanceOf(msg.sender) > 0, "You do not own the required NFT."); + require( + block.timestamp < currentEvent.eventDate, + "Event registration has closed." + ); + require( + currentEvent.registeredCount < currentEvent.maxCapacity, + "Event is fully booked." + ); + require( + !currentEvent.isRegistered[msg.sender], + "You are already registered for this event." + ); + require( + IERC721(currentEvent.nftRequired).balanceOf(msg.sender) > 0, + "You do not own the required NFT." + ); // Register the user currentEvent.isRegistered[msg.sender] = true; @@ -70,9 +114,13 @@ contract NFTGatedEventManager { } // Get event details by ID - function getEventDetails(uint256 _eventId) external view returns ( - string memory, uint256, address, uint256, uint256, bool - ) { + function getEventDetails( + uint256 _eventId + ) + external + view + returns (string memory, uint256, address, uint256, uint256, bool) + { Event storage currentEvent = events[_eventId]; return ( currentEvent.eventName, @@ -85,7 +133,10 @@ contract NFTGatedEventManager { } // Toggle event status (activate/deactivate) - function updateEventStatus(uint256 _eventId, bool _isActive) external onlyOwner { + function updateEventStatus( + uint256 _eventId, + bool _isActive + ) external onlyOwner { Event storage currentEvent = events[_eventId]; currentEvent.isActive = _isActive; @@ -93,7 +144,10 @@ contract NFTGatedEventManager { } // Check if a user is registered for an event - function isUserRegistered(uint256 _eventId, address _user) external view returns (bool) { + function isUserRegistered( + uint256 _eventId, + address _user + ) external view returns (bool) { return events[_eventId].isRegistered[_user]; } } diff --git a/contracts/interfaces/ICaveParty.sol b/contracts/interfaces/ICaveParty.sol new file mode 100644 index 0000000..98532e6 --- /dev/null +++ b/contracts/interfaces/ICaveParty.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import {IERC721} from "./IERC721.sol"; + +interface ICaveParty is IERC721 { + function getAssetMetadata() external view returns (string memory); + + function updateMetadata(string memory _newAssetMetadata) external; + + function withdrawFunds() external; + + function getMyWalletMints() external view returns (uint256); + + function mintToken() external payable; +} diff --git a/contracts/interfaces/IFluffyNft.sol b/contracts/interfaces/IFluffyNft.sol new file mode 100644 index 0000000..13a9925 --- /dev/null +++ b/contracts/interfaces/IFluffyNft.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.4; + +import {IERC721} from "./IERC721.sol"; + +interface IFluffyFury is IERC721 { + function mint() external payable; + + function withdrawFunds() external; + + function updateSVG(string memory _newSvg) external; + + function transferOwnership(address newOwner) external; +} diff --git a/contracts/interfaces/INFTGatedEvent.sol b/contracts/interfaces/INFTGatedEvent.sol deleted file mode 100644 index e69de29..0000000 diff --git a/contracts/interfaces/INFTGatedEventManager.sol b/contracts/interfaces/INFTGatedEventManager.sol new file mode 100644 index 0000000..3d4868a --- /dev/null +++ b/contracts/interfaces/INFTGatedEventManager.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +interface INFTGatedEventManager { + // Event creation: Only the owner can create an event + function createEvent( + string memory _eventName, + uint256 _eventDate, + address _nftRequired, + uint256 _maxCapacity + ) external; + + // Register for an event: Verifies NFT ownership + function registerForEvent(uint256 _eventId) external; + + // Get event details by ID + function getEventDetails( + uint256 _eventId + ) + external + view + returns (string memory, uint256, address, uint256, uint256, bool); + + // Toggle event status (activate/deactivate) + function updateEventStatus(uint256 _eventId, bool _isActive) external; + + // Check if a user is registered for an event + function isUserRegistered( + uint256 _eventId, + address _user + ) external view returns (bool); +} diff --git a/contracts/test.sol b/contracts/test-contract.txt similarity index 100% rename from contracts/test.sol rename to contracts/test-contract.txt diff --git a/hardhat.config.ts b/hardhat.config.ts index 04c52b9..78b2438 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -17,7 +17,6 @@ module.exports = { url: `https://sepolia.infura.io/v3/${process.env.INFURA_ID}`, accounts: [process.env.WALLET_KEY], } - }, etherscan: { // Use "123" as a placeholder, because Blockscout doesn't need a real API key, and Hardhat will complain if this property isn't set. diff --git a/ignition/deployments/chain-4202/artifacts/CavePartyModule#CaveParty.dbg.json b/ignition/deployments/chain-4202/artifacts/CavePartyModule#CaveParty.dbg.json new file mode 100644 index 0000000..88706b5 --- /dev/null +++ b/ignition/deployments/chain-4202/artifacts/CavePartyModule#CaveParty.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\7061738f0af9aa002156ebd51161033d.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/artifacts/CavePartyModule#CaveParty.json b/ignition/deployments/chain-4202/artifacts/CavePartyModule#CaveParty.json new file mode 100644 index 0000000..6c8fb4a --- /dev/null +++ b/ignition/deployments/chain-4202/artifacts/CavePartyModule#CaveParty.json @@ -0,0 +1,660 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CaveParty", + "sourceName": "contracts/CaveParty.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "assetMetadata", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getAssetMetadata", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMyWalletMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxPerWallet", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mintPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mintToken", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_newAssetMetadata", + "type": "string" + } + ], + "name": "updateMetadata", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "walletMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526000600755655af3107a400060085560016009556040518060600160405280603581526020016200359060359139600a9081620000429190620004b1565b503480156200005057600080fd5b50336040518060400160405280600981526020017f43617665506172747900000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f43505900000000000000000000000000000000000000000000000000000000008152508160009081620000cf9190620004b1565b508060019081620000e19190620004b1565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001595760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001509190620005dd565b60405180910390fd5b6200016a816200017160201b60201c565b50620005fa565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002b957607f821691505b602082108103620002cf57620002ce62000271565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002fa565b620003458683620002fa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003926200038c62000386846200035d565b62000367565b6200035d565b9050919050565b6000819050919050565b620003ae8362000371565b620003c6620003bd8262000399565b84845462000307565b825550505050565b600090565b620003dd620003ce565b620003ea818484620003a3565b505050565b5b81811015620004125762000406600082620003d3565b600181019050620003f0565b5050565b601f82111562000461576200042b81620002d5565b6200043684620002ea565b8101602085101562000446578190505b6200045e6200045585620002ea565b830182620003ef565b50505b505050565b600082821c905092915050565b6000620004866000198460080262000466565b1980831691505092915050565b6000620004a1838362000473565b9150826002028217905092915050565b620004bc8262000237565b67ffffffffffffffff811115620004d857620004d762000242565b5b620004e48254620002a0565b620004f182828562000416565b600060209050601f83116001811462000529576000841562000514578287015190505b62000520858262000493565b86555062000590565b601f1984166200053986620002d5565b60005b8281101562000563578489015182556001820191506020850194506020810190506200053c565b868310156200058357848901516200057f601f89168262000473565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005c58262000598565b9050919050565b620005d781620005b8565b82525050565b6000602082019050620005f46000830184620005cc565b92915050565b612f86806200060a6000396000f3fe6080604052600436106101815760003560e01c806370a08231116100d1578063a22cb4651161008a578063ddd71ede11610064578063ddd71ede1461053d578063e985e9c514610568578063f0293fd3146105a5578063f2fde38b146105e257610181565b8063a22cb465146104ae578063b88d4fde146104d7578063c87b56dd1461050057610181565b806370a08231146103b0578063715018a6146103ed57806388662de9146104045780638da5cb5b1461042f578063918b5be11461045a57806395d89b411461048357610181565b806323b872dd1161013e578063453c231011610118578063453c2310146102f2578063505168081461031d5780636352211e146103485780636817c76c1461038557610181565b806323b872dd1461028957806324600fc3146102b257806342842e0e146102c957610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631f21bfbf146102545780632004ffd91461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a8919061213e565b61060b565b6040516101ba9190612186565b60405180910390f35b3480156101cf57600080fd5b506101d86106ed565b6040516101e59190612231565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612289565b61077f565b60405161022291906122f7565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061233e565b61079b565b005b34801561026057600080fd5b506102696107b1565b604051610276919061238d565b60405180910390f35b6102876107b7565b005b34801561029557600080fd5b506102b060048036038101906102ab91906123a8565b6108e1565b005b3480156102be57600080fd5b506102c76109e3565b005b3480156102d557600080fd5b506102f060048036038101906102eb91906123a8565b610aa1565b005b3480156102fe57600080fd5b50610307610ac1565b604051610314919061238d565b60405180910390f35b34801561032957600080fd5b50610332610ac7565b60405161033f919061238d565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612289565b610b0e565b60405161037c91906122f7565b60405180910390f35b34801561039157600080fd5b5061039a610b20565b6040516103a7919061238d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906123fb565b610b26565b6040516103e4919061238d565b60405180910390f35b3480156103f957600080fd5b50610402610be0565b005b34801561041057600080fd5b50610419610bf4565b6040516104269190612231565b60405180910390f35b34801561043b57600080fd5b50610444610c82565b60405161045191906122f7565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c919061255d565b610cac565b005b34801561048f57600080fd5b50610498610d0f565b6040516104a59190612231565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d091906125d2565b610da1565b005b3480156104e357600080fd5b506104fe60048036038101906104f991906126b3565b610db7565b005b34801561050c57600080fd5b5061052760048036038101906105229190612289565b610dd4565b6040516105349190612231565b60405180910390f35b34801561054957600080fd5b50610552610e3d565b60405161055f9190612231565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190612736565b610ed7565b60405161059c9190612186565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c791906123fb565b610f6b565b6040516105d9919061238d565b60405180910390f35b3480156105ee57600080fd5b50610609600480360381019061060491906123fb565b610f83565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106d657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e657506106e582611009565b5b9050919050565b6060600080546106fc906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610728906127a5565b80156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b5050505050905090565b600061078a82611073565b50610794826110fb565b9050919050565b6107ad82826107a8611138565b611140565b5050565b60075481565b34600854146107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f290612822565b60405180910390fd5b600954600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561087f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108769061288e565b60405180910390fd5b6001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108cf91906128dd565b925050819055506108df33611152565b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109535760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161094a91906122f7565b60405180910390fd5b60006109678383610962611138565b61117f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016109d493929190612911565b60405180910390fd5b50505050565b6109eb611399565b60006109f5610c82565b73ffffffffffffffffffffffffffffffffffffffff1647604051610a1890612979565b60006040518083038185875af1925050503d8060008114610a55576040519150601f19603f3d011682016040523d82523d6000602084013e610a5a565b606091505b5050905080610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a95906129da565b60405180910390fd5b50565b610abc83838360405180602001604052806000815250610db7565b505050565b60095481565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000610b1982611073565b9050919050565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b995760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b9091906122f7565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be8611399565b610bf26000611420565b565b600a8054610c01906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2d906127a5565b8015610c7a5780601f10610c4f57610100808354040283529160200191610c7a565b820191906000526020600020905b815481529060010190602001808311610c5d57829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb4611399565b610cbd816114e6565b610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390612a6c565b60405180910390fd5b80600a9081610d0b9190612c38565b5050565b606060018054610d1e906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4a906127a5565b8015610d975780601f10610d6c57610100808354040283529160200191610d97565b820191906000526020600020905b815481529060010190602001808311610d7a57829003601f168201915b5050505050905090565b610db3610dac611138565b838361163f565b5050565b610dc28484846108e1565b610dce848484846117ae565b50505050565b6060610ddf82611073565b506000610dea611965565b90506000815111610e0a5760405180602001604052806000815250610e35565b80610e14846119f7565b604051602001610e25929190612d46565b6040516020818303038152906040525b915050919050565b6060610e47611399565b600a8054610e54906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610e80906127a5565b8015610ecd5780601f10610ea257610100808354040283529160200191610ecd565b820191906000526020600020905b815481529060010190602001808311610eb057829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b6020528060005260406000206000915090505481565b610f8b611399565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ffd5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ff491906122f7565b60405180910390fd5b61100681611420565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008061107f83611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f257826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016110e9919061238d565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61114d8383836001611b02565b505050565b600060075490506007600081548092919061116c90612d6a565b919050555061117b8282611cc7565b5050565b60008061118b84611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111cd576111cc818486611ce5565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461125e5761120f600085600080611b02565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146112e1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6113a1611138565b73ffffffffffffffffffffffffffffffffffffffff166113bf610c82565b73ffffffffffffffffffffffffffffffffffffffff161461141e576113e2611138565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161141591906122f7565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060006040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250905080518251101561153b5760009250505061163a565b60005b8151835161154c9190612db2565b81116116325760006001905060005b835181101561160a5783818151811061157757611576612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168582856115b191906128dd565b815181106115c2576115c1612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115fd576000915061160a565b808060010191505061155b565b50801561161e57600194505050505061163a565b50808061162a90612d6a565b91505061153e565b506000925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b057816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116a791906122f7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117a19190612186565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561195f578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117f2611138565b8685856040518563ffffffff1660e01b81526004016118149493929190612e6a565b6020604051808303816000875af192505050801561185057506040513d601f19601f8201168201806040525081019061184d9190612ecb565b60015b6118d4573d8060008114611880576040519150601f19603f3d011682016040523d82523d6000602084013e611885565b606091505b5060008151036118cc57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118c391906122f7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461195d57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161195491906122f7565b60405180910390fd5b505b50505050565b6060600a8054611974906127a5565b80601f01602080910402602001604051908101604052809291908181526020018280546119a0906127a5565b80156119ed5780601f106119c2576101008083540402835291602001916119ed565b820191906000526020600020905b8154815290600101906020018083116119d057829003601f168201915b5050505050905090565b606060006001611a0684611da9565b01905060008167ffffffffffffffff811115611a2557611a24612432565b5b6040519080825280601f01601f191660200182016040528015611a575781602001600182028036833780820191505090505b509050600082602001820190505b600115611aba578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611aae57611aad612ef8565b5b04945060008503611a65575b819350505050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b3b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c6f576000611b4b84611073565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc95750611bc78184610ed7565b155b15611c0b57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c0291906122f7565b60405180910390fd5b8115611c6d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ce1828260405180602001604052806000815250611efc565b5050565b611cf0838383611f18565b611da457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6557806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d5c919061238d565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d9b929190612f27565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e07577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611dfd57611dfc612ef8565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e44576d04ee2d6d415b85acef81000000008381611e3a57611e39612ef8565b5b0492506020810190505b662386f26fc100008310611e7357662386f26fc100008381611e6957611e68612ef8565b5b0492506010810190505b6305f5e1008310611e9c576305f5e1008381611e9257611e91612ef8565b5b0492506008810190505b6127108310611ec1576127108381611eb757611eb6612ef8565b5b0492506004810190505b60648310611ee45760648381611eda57611ed9612ef8565b5b0492506002810190505b600a8310611ef3576001810190505b80915050919050565b611f068383611fd9565b611f1360008484846117ae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fd057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f915750611f908484610ed7565b5b80611fcf57508273ffffffffffffffffffffffffffffffffffffffff16611fb7836110fb565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361204b5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161204291906122f7565b60405180910390fd5b60006120598383600061117f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120cd5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016120c491906122f7565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61211b816120e6565b811461212657600080fd5b50565b60008135905061213881612112565b92915050565b600060208284031215612154576121536120dc565b5b600061216284828501612129565b91505092915050565b60008115159050919050565b6121808161216b565b82525050565b600060208201905061219b6000830184612177565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121db5780820151818401526020810190506121c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612203826121a1565b61220d81856121ac565b935061221d8185602086016121bd565b612226816121e7565b840191505092915050565b6000602082019050818103600083015261224b81846121f8565b905092915050565b6000819050919050565b61226681612253565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e6120dc565b5b60006122ad84828501612274565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122e1826122b6565b9050919050565b6122f1816122d6565b82525050565b600060208201905061230c60008301846122e8565b92915050565b61231b816122d6565b811461232657600080fd5b50565b60008135905061233881612312565b92915050565b60008060408385031215612355576123546120dc565b5b600061236385828601612329565b925050602061237485828601612274565b9150509250929050565b61238781612253565b82525050565b60006020820190506123a2600083018461237e565b92915050565b6000806000606084860312156123c1576123c06120dc565b5b60006123cf86828701612329565b93505060206123e086828701612329565b92505060406123f186828701612274565b9150509250925092565b600060208284031215612411576124106120dc565b5b600061241f84828501612329565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61246a826121e7565b810181811067ffffffffffffffff8211171561248957612488612432565b5b80604052505050565b600061249c6120d2565b90506124a88282612461565b919050565b600067ffffffffffffffff8211156124c8576124c7612432565b5b6124d1826121e7565b9050602081019050919050565b82818337600083830152505050565b60006125006124fb846124ad565b612492565b90508281526020810184848401111561251c5761251b61242d565b5b6125278482856124de565b509392505050565b600082601f83011261254457612543612428565b5b81356125548482602086016124ed565b91505092915050565b600060208284031215612573576125726120dc565b5b600082013567ffffffffffffffff811115612591576125906120e1565b5b61259d8482850161252f565b91505092915050565b6125af8161216b565b81146125ba57600080fd5b50565b6000813590506125cc816125a6565b92915050565b600080604083850312156125e9576125e86120dc565b5b60006125f785828601612329565b9250506020612608858286016125bd565b9150509250929050565b600067ffffffffffffffff82111561262d5761262c612432565b5b612636826121e7565b9050602081019050919050565b600061265661265184612612565b612492565b9050828152602081018484840111156126725761267161242d565b5b61267d8482856124de565b509392505050565b600082601f83011261269a57612699612428565b5b81356126aa848260208601612643565b91505092915050565b600080600080608085870312156126cd576126cc6120dc565b5b60006126db87828801612329565b94505060206126ec87828801612329565b93505060406126fd87828801612274565b925050606085013567ffffffffffffffff81111561271e5761271d6120e1565b5b61272a87828801612685565b91505092959194509250565b6000806040838503121561274d5761274c6120dc565b5b600061275b85828601612329565b925050602061276c85828601612329565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127bd57607f821691505b6020821081036127d0576127cf612776565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061280c601d836121ac565b9150612817826127d6565b602082019050919050565b6000602082019050818103600083015261283b816127ff565b9050919050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b60006128786019836121ac565b915061288382612842565b602082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e882612253565b91506128f383612253565b925082820190508082111561290b5761290a6128ae565b5b92915050565b600060608201905061292660008301866122e8565b612933602083018561237e565b61294060408301846122e8565b949350505050565b600081905092915050565b50565b6000612963600083612948565b915061296e82612953565b600082019050919050565b600061298482612956565b9150819050919050565b7f7769746864726177616c206661696c6564000000000000000000000000000000600082015250565b60006129c46011836121ac565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f496e76616c6964206173736574206d657461646174613a206d75737420696e6360008201527f6c7564652027697066733a2f2f27000000000000000000000000000000000000602082015250565b6000612a56602e836121ac565b9150612a61826129fa565b604082019050919050565b60006020820190508181036000830152612a8581612a49565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ab1565b612af88683612ab1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612b35612b30612b2b84612253565b612b10565b612253565b9050919050565b6000819050919050565b612b4f83612b1a565b612b63612b5b82612b3c565b848454612abe565b825550505050565b600090565b612b78612b6b565b612b83818484612b46565b505050565b5b81811015612ba757612b9c600082612b70565b600181019050612b89565b5050565b601f821115612bec57612bbd81612a8c565b612bc684612aa1565b81016020851015612bd5578190505b612be9612be185612aa1565b830182612b88565b50505b505050565b600082821c905092915050565b6000612c0f60001984600802612bf1565b1980831691505092915050565b6000612c288383612bfe565b9150826002028217905092915050565b612c41826121a1565b67ffffffffffffffff811115612c5a57612c59612432565b5b612c6482546127a5565b612c6f828285612bab565b600060209050601f831160018114612ca25760008415612c90578287015190505b612c9a8582612c1c565b865550612d02565b601f198416612cb086612a8c565b60005b82811015612cd857848901518255600182019150602085019450602081019050612cb3565b86831015612cf55784890151612cf1601f891682612bfe565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000612d20826121a1565b612d2a8185612d0a565b9350612d3a8185602086016121bd565b80840191505092915050565b6000612d528285612d15565b9150612d5e8284612d15565b91508190509392505050565b6000612d7582612253565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612da757612da66128ae565b5b600182019050919050565b6000612dbd82612253565b9150612dc883612253565b9250828203905081811115612de057612ddf6128ae565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612e3c82612e15565b612e468185612e20565b9350612e568185602086016121bd565b612e5f816121e7565b840191505092915050565b6000608082019050612e7f60008301876122e8565b612e8c60208301866122e8565b612e99604083018561237e565b8181036060830152612eab8184612e31565b905095945050505050565b600081519050612ec581612112565b92915050565b600060208284031215612ee157612ee06120dc565b5b6000612eef84828501612eb6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000604082019050612f3c60008301856122e8565b612f49602083018461237e565b939250505056fea26469706673582212205b4cd93990ab81df15e53da95fbf535a8703235a2cabb3ac553322a075aec03f64736f6c63430008180033697066733a2f2f516d65586e7968726b4547664b7a515274757379574e464b636a795a784c63553170755276784c6b4b326b546553", + "deployedBytecode": "0x6080604052600436106101815760003560e01c806370a08231116100d1578063a22cb4651161008a578063ddd71ede11610064578063ddd71ede1461053d578063e985e9c514610568578063f0293fd3146105a5578063f2fde38b146105e257610181565b8063a22cb465146104ae578063b88d4fde146104d7578063c87b56dd1461050057610181565b806370a08231146103b0578063715018a6146103ed57806388662de9146104045780638da5cb5b1461042f578063918b5be11461045a57806395d89b411461048357610181565b806323b872dd1161013e578063453c231011610118578063453c2310146102f2578063505168081461031d5780636352211e146103485780636817c76c1461038557610181565b806323b872dd1461028957806324600fc3146102b257806342842e0e146102c957610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631f21bfbf146102545780632004ffd91461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a8919061213e565b61060b565b6040516101ba9190612186565b60405180910390f35b3480156101cf57600080fd5b506101d86106ed565b6040516101e59190612231565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612289565b61077f565b60405161022291906122f7565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061233e565b61079b565b005b34801561026057600080fd5b506102696107b1565b604051610276919061238d565b60405180910390f35b6102876107b7565b005b34801561029557600080fd5b506102b060048036038101906102ab91906123a8565b6108e1565b005b3480156102be57600080fd5b506102c76109e3565b005b3480156102d557600080fd5b506102f060048036038101906102eb91906123a8565b610aa1565b005b3480156102fe57600080fd5b50610307610ac1565b604051610314919061238d565b60405180910390f35b34801561032957600080fd5b50610332610ac7565b60405161033f919061238d565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612289565b610b0e565b60405161037c91906122f7565b60405180910390f35b34801561039157600080fd5b5061039a610b20565b6040516103a7919061238d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906123fb565b610b26565b6040516103e4919061238d565b60405180910390f35b3480156103f957600080fd5b50610402610be0565b005b34801561041057600080fd5b50610419610bf4565b6040516104269190612231565b60405180910390f35b34801561043b57600080fd5b50610444610c82565b60405161045191906122f7565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c919061255d565b610cac565b005b34801561048f57600080fd5b50610498610d0f565b6040516104a59190612231565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d091906125d2565b610da1565b005b3480156104e357600080fd5b506104fe60048036038101906104f991906126b3565b610db7565b005b34801561050c57600080fd5b5061052760048036038101906105229190612289565b610dd4565b6040516105349190612231565b60405180910390f35b34801561054957600080fd5b50610552610e3d565b60405161055f9190612231565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190612736565b610ed7565b60405161059c9190612186565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c791906123fb565b610f6b565b6040516105d9919061238d565b60405180910390f35b3480156105ee57600080fd5b50610609600480360381019061060491906123fb565b610f83565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106d657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e657506106e582611009565b5b9050919050565b6060600080546106fc906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610728906127a5565b80156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b5050505050905090565b600061078a82611073565b50610794826110fb565b9050919050565b6107ad82826107a8611138565b611140565b5050565b60075481565b34600854146107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f290612822565b60405180910390fd5b600954600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561087f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108769061288e565b60405180910390fd5b6001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108cf91906128dd565b925050819055506108df33611152565b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109535760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161094a91906122f7565b60405180910390fd5b60006109678383610962611138565b61117f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016109d493929190612911565b60405180910390fd5b50505050565b6109eb611399565b60006109f5610c82565b73ffffffffffffffffffffffffffffffffffffffff1647604051610a1890612979565b60006040518083038185875af1925050503d8060008114610a55576040519150601f19603f3d011682016040523d82523d6000602084013e610a5a565b606091505b5050905080610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a95906129da565b60405180910390fd5b50565b610abc83838360405180602001604052806000815250610db7565b505050565b60095481565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000610b1982611073565b9050919050565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b995760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b9091906122f7565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be8611399565b610bf26000611420565b565b600a8054610c01906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2d906127a5565b8015610c7a5780601f10610c4f57610100808354040283529160200191610c7a565b820191906000526020600020905b815481529060010190602001808311610c5d57829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb4611399565b610cbd816114e6565b610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390612a6c565b60405180910390fd5b80600a9081610d0b9190612c38565b5050565b606060018054610d1e906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4a906127a5565b8015610d975780601f10610d6c57610100808354040283529160200191610d97565b820191906000526020600020905b815481529060010190602001808311610d7a57829003601f168201915b5050505050905090565b610db3610dac611138565b838361163f565b5050565b610dc28484846108e1565b610dce848484846117ae565b50505050565b6060610ddf82611073565b506000610dea611965565b90506000815111610e0a5760405180602001604052806000815250610e35565b80610e14846119f7565b604051602001610e25929190612d46565b6040516020818303038152906040525b915050919050565b6060610e47611399565b600a8054610e54906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610e80906127a5565b8015610ecd5780601f10610ea257610100808354040283529160200191610ecd565b820191906000526020600020905b815481529060010190602001808311610eb057829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b6020528060005260406000206000915090505481565b610f8b611399565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ffd5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ff491906122f7565b60405180910390fd5b61100681611420565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008061107f83611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f257826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016110e9919061238d565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61114d8383836001611b02565b505050565b600060075490506007600081548092919061116c90612d6a565b919050555061117b8282611cc7565b5050565b60008061118b84611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111cd576111cc818486611ce5565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461125e5761120f600085600080611b02565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146112e1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6113a1611138565b73ffffffffffffffffffffffffffffffffffffffff166113bf610c82565b73ffffffffffffffffffffffffffffffffffffffff161461141e576113e2611138565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161141591906122f7565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060006040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250905080518251101561153b5760009250505061163a565b60005b8151835161154c9190612db2565b81116116325760006001905060005b835181101561160a5783818151811061157757611576612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168582856115b191906128dd565b815181106115c2576115c1612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115fd576000915061160a565b808060010191505061155b565b50801561161e57600194505050505061163a565b50808061162a90612d6a565b91505061153e565b506000925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b057816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116a791906122f7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117a19190612186565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561195f578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117f2611138565b8685856040518563ffffffff1660e01b81526004016118149493929190612e6a565b6020604051808303816000875af192505050801561185057506040513d601f19601f8201168201806040525081019061184d9190612ecb565b60015b6118d4573d8060008114611880576040519150601f19603f3d011682016040523d82523d6000602084013e611885565b606091505b5060008151036118cc57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118c391906122f7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461195d57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161195491906122f7565b60405180910390fd5b505b50505050565b6060600a8054611974906127a5565b80601f01602080910402602001604051908101604052809291908181526020018280546119a0906127a5565b80156119ed5780601f106119c2576101008083540402835291602001916119ed565b820191906000526020600020905b8154815290600101906020018083116119d057829003601f168201915b5050505050905090565b606060006001611a0684611da9565b01905060008167ffffffffffffffff811115611a2557611a24612432565b5b6040519080825280601f01601f191660200182016040528015611a575781602001600182028036833780820191505090505b509050600082602001820190505b600115611aba578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611aae57611aad612ef8565b5b04945060008503611a65575b819350505050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b3b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c6f576000611b4b84611073565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc95750611bc78184610ed7565b155b15611c0b57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c0291906122f7565b60405180910390fd5b8115611c6d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ce1828260405180602001604052806000815250611efc565b5050565b611cf0838383611f18565b611da457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6557806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d5c919061238d565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d9b929190612f27565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e07577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611dfd57611dfc612ef8565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e44576d04ee2d6d415b85acef81000000008381611e3a57611e39612ef8565b5b0492506020810190505b662386f26fc100008310611e7357662386f26fc100008381611e6957611e68612ef8565b5b0492506010810190505b6305f5e1008310611e9c576305f5e1008381611e9257611e91612ef8565b5b0492506008810190505b6127108310611ec1576127108381611eb757611eb6612ef8565b5b0492506004810190505b60648310611ee45760648381611eda57611ed9612ef8565b5b0492506002810190505b600a8310611ef3576001810190505b80915050919050565b611f068383611fd9565b611f1360008484846117ae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fd057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f915750611f908484610ed7565b5b80611fcf57508273ffffffffffffffffffffffffffffffffffffffff16611fb7836110fb565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361204b5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161204291906122f7565b60405180910390fd5b60006120598383600061117f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120cd5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016120c491906122f7565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61211b816120e6565b811461212657600080fd5b50565b60008135905061213881612112565b92915050565b600060208284031215612154576121536120dc565b5b600061216284828501612129565b91505092915050565b60008115159050919050565b6121808161216b565b82525050565b600060208201905061219b6000830184612177565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121db5780820151818401526020810190506121c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612203826121a1565b61220d81856121ac565b935061221d8185602086016121bd565b612226816121e7565b840191505092915050565b6000602082019050818103600083015261224b81846121f8565b905092915050565b6000819050919050565b61226681612253565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e6120dc565b5b60006122ad84828501612274565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122e1826122b6565b9050919050565b6122f1816122d6565b82525050565b600060208201905061230c60008301846122e8565b92915050565b61231b816122d6565b811461232657600080fd5b50565b60008135905061233881612312565b92915050565b60008060408385031215612355576123546120dc565b5b600061236385828601612329565b925050602061237485828601612274565b9150509250929050565b61238781612253565b82525050565b60006020820190506123a2600083018461237e565b92915050565b6000806000606084860312156123c1576123c06120dc565b5b60006123cf86828701612329565b93505060206123e086828701612329565b92505060406123f186828701612274565b9150509250925092565b600060208284031215612411576124106120dc565b5b600061241f84828501612329565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61246a826121e7565b810181811067ffffffffffffffff8211171561248957612488612432565b5b80604052505050565b600061249c6120d2565b90506124a88282612461565b919050565b600067ffffffffffffffff8211156124c8576124c7612432565b5b6124d1826121e7565b9050602081019050919050565b82818337600083830152505050565b60006125006124fb846124ad565b612492565b90508281526020810184848401111561251c5761251b61242d565b5b6125278482856124de565b509392505050565b600082601f83011261254457612543612428565b5b81356125548482602086016124ed565b91505092915050565b600060208284031215612573576125726120dc565b5b600082013567ffffffffffffffff811115612591576125906120e1565b5b61259d8482850161252f565b91505092915050565b6125af8161216b565b81146125ba57600080fd5b50565b6000813590506125cc816125a6565b92915050565b600080604083850312156125e9576125e86120dc565b5b60006125f785828601612329565b9250506020612608858286016125bd565b9150509250929050565b600067ffffffffffffffff82111561262d5761262c612432565b5b612636826121e7565b9050602081019050919050565b600061265661265184612612565b612492565b9050828152602081018484840111156126725761267161242d565b5b61267d8482856124de565b509392505050565b600082601f83011261269a57612699612428565b5b81356126aa848260208601612643565b91505092915050565b600080600080608085870312156126cd576126cc6120dc565b5b60006126db87828801612329565b94505060206126ec87828801612329565b93505060406126fd87828801612274565b925050606085013567ffffffffffffffff81111561271e5761271d6120e1565b5b61272a87828801612685565b91505092959194509250565b6000806040838503121561274d5761274c6120dc565b5b600061275b85828601612329565b925050602061276c85828601612329565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127bd57607f821691505b6020821081036127d0576127cf612776565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061280c601d836121ac565b9150612817826127d6565b602082019050919050565b6000602082019050818103600083015261283b816127ff565b9050919050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b60006128786019836121ac565b915061288382612842565b602082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e882612253565b91506128f383612253565b925082820190508082111561290b5761290a6128ae565b5b92915050565b600060608201905061292660008301866122e8565b612933602083018561237e565b61294060408301846122e8565b949350505050565b600081905092915050565b50565b6000612963600083612948565b915061296e82612953565b600082019050919050565b600061298482612956565b9150819050919050565b7f7769746864726177616c206661696c6564000000000000000000000000000000600082015250565b60006129c46011836121ac565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f496e76616c6964206173736574206d657461646174613a206d75737420696e6360008201527f6c7564652027697066733a2f2f27000000000000000000000000000000000000602082015250565b6000612a56602e836121ac565b9150612a61826129fa565b604082019050919050565b60006020820190508181036000830152612a8581612a49565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ab1565b612af88683612ab1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612b35612b30612b2b84612253565b612b10565b612253565b9050919050565b6000819050919050565b612b4f83612b1a565b612b63612b5b82612b3c565b848454612abe565b825550505050565b600090565b612b78612b6b565b612b83818484612b46565b505050565b5b81811015612ba757612b9c600082612b70565b600181019050612b89565b5050565b601f821115612bec57612bbd81612a8c565b612bc684612aa1565b81016020851015612bd5578190505b612be9612be185612aa1565b830182612b88565b50505b505050565b600082821c905092915050565b6000612c0f60001984600802612bf1565b1980831691505092915050565b6000612c288383612bfe565b9150826002028217905092915050565b612c41826121a1565b67ffffffffffffffff811115612c5a57612c59612432565b5b612c6482546127a5565b612c6f828285612bab565b600060209050601f831160018114612ca25760008415612c90578287015190505b612c9a8582612c1c565b865550612d02565b601f198416612cb086612a8c565b60005b82811015612cd857848901518255600182019150602085019450602081019050612cb3565b86831015612cf55784890151612cf1601f891682612bfe565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000612d20826121a1565b612d2a8185612d0a565b9350612d3a8185602086016121bd565b80840191505092915050565b6000612d528285612d15565b9150612d5e8284612d15565b91508190509392505050565b6000612d7582612253565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612da757612da66128ae565b5b600182019050919050565b6000612dbd82612253565b9150612dc883612253565b9250828203905081811115612de057612ddf6128ae565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612e3c82612e15565b612e468185612e20565b9350612e568185602086016121bd565b612e5f816121e7565b840191505092915050565b6000608082019050612e7f60008301876122e8565b612e8c60208301866122e8565b612e99604083018561237e565b8181036060830152612eab8184612e31565b905095945050505050565b600081519050612ec581612112565b92915050565b600060208284031215612ee157612ee06120dc565b5b6000612eef84828501612eb6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000604082019050612f3c60008301856122e8565b612f49602083018461237e565b939250505056fea26469706673582212205b4cd93990ab81df15e53da95fbf535a8703235a2cabb3ac553322a075aec03f64736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/artifacts/FluffyFuryModule#FluffyFury.dbg.json b/ignition/deployments/chain-4202/artifacts/FluffyFuryModule#FluffyFury.dbg.json new file mode 100644 index 0000000..b7717df --- /dev/null +++ b/ignition/deployments/chain-4202/artifacts/FluffyFuryModule#FluffyFury.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\a5e6012c322ce369f659c28c705923da.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/artifacts/FluffyFuryModule#FluffyFury.json b/ignition/deployments/chain-4202/artifacts/FluffyFuryModule#FluffyFury.json new file mode 100644 index 0000000..a337441 --- /dev/null +++ b/ignition/deployments/chain-4202/artifacts/FluffyFuryModule#FluffyFury.json @@ -0,0 +1,669 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "FluffyFury", + "sourceName": "contracts/FluffyFuryNFT.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "initialSvg", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "imageURI", + "type": "string" + } + ], + "name": "formatTokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mint", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "mintPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "svgData", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "svg", + "type": "string" + } + ], + "name": "svgToImageURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_newSvg", + "type": "string" + } + ], + "name": "updateSVG", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x6080604052655af3107a40006009553480156200001b57600080fd5b5060405162003cf938038062003cf983398181016040528101906200004191906200045d565b336040518060400160405280600a81526020017f466c7566667946757279000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f46465900000000000000000000000000000000000000000000000000000000008152508160009081620000bf9190620006f9565b508060019081620000d19190620006f9565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001495760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000140919062000825565b60405180910390fd5b6200015a816200020460201b60201c565b506000815111620001a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019990620008a3565b60405180910390fd5b61138881511115620001eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e29062000915565b60405180910390fd5b80600a9081620001fc9190620006f9565b505062000937565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200033382620002e8565b810181811067ffffffffffffffff82111715620003555762000354620002f9565b5b80604052505050565b60006200036a620002ca565b905062000378828262000328565b919050565b600067ffffffffffffffff8211156200039b576200039a620002f9565b5b620003a682620002e8565b9050602081019050919050565b60005b83811015620003d3578082015181840152602081019050620003b6565b60008484015250505050565b6000620003f6620003f0846200037d565b6200035e565b905082815260208101848484011115620004155762000414620002e3565b5b62000422848285620003b3565b509392505050565b600082601f830112620004425762000441620002de565b5b815162000454848260208601620003df565b91505092915050565b600060208284031215620004765762000475620002d4565b5b600082015167ffffffffffffffff811115620004975762000496620002d9565b5b620004a5848285016200042a565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200050157607f821691505b602082108103620005175762000516620004b9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000542565b6200058d868362000542565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005da620005d4620005ce84620005a5565b620005af565b620005a5565b9050919050565b6000819050919050565b620005f683620005b9565b6200060e6200060582620005e1565b8484546200054f565b825550505050565b600090565b6200062562000616565b62000632818484620005eb565b505050565b5b818110156200065a576200064e6000826200061b565b60018101905062000638565b5050565b601f821115620006a95762000673816200051d565b6200067e8462000532565b810160208510156200068e578190505b620006a66200069d8562000532565b83018262000637565b50505b505050565b600082821c905092915050565b6000620006ce60001984600802620006ae565b1980831691505092915050565b6000620006e98383620006bb565b9150826002028217905092915050565b6200070482620004ae565b67ffffffffffffffff81111562000720576200071f620002f9565b5b6200072c8254620004e8565b620007398282856200065e565b600060209050601f8311600181146200077157600084156200075c578287015190505b620007688582620006db565b865550620007d8565b601f19841662000781866200051d565b60005b82811015620007ab5784890151825560018201915060208501945060208101905062000784565b86831015620007cb5784890151620007c7601f891682620006bb565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080d82620007e0565b9050919050565b6200081f8162000800565b82525050565b60006020820190506200083c600083018462000814565b92915050565b600082825260208201905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b60006200088b60188362000842565b9150620008988262000853565b602082019050919050565b60006020820190508181036000830152620008be816200087c565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000620008fd60128362000842565b91506200090a82620008c5565b602082019050919050565b600060208201905081810360008301526200093081620008ee565b9050919050565b6133b280620009476000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a31e06da1161006f578063a31e06da14610446578063a52db60d14610471578063b88d4fde1461049a578063c87b56dd146104c3578063e985e9c514610500578063f2fde38b1461053d5761014b565b806370a0823114610336578063715018a61461037357806371aee1931461038a5780638da5cb5b146103c757806395d89b41146103f2578063a22cb4651461041d5761014b565b806323b872dd1161010857806323b872dd1461022857806324600fc31461025157806330d871c61461026857806342842e0e146102a55780636352211e146102ce5780636817c76c1461030b5761014b565b806301ffc9a71461015057806306fdde031461018d578063081812fc146101b8578063095ea7b3146101f55780631249c58b1461021e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101776004803603810190610172919061229d565b610566565b60405161018491906122e5565b60405180910390f35b34801561019957600080fd5b506101a26105c7565b6040516101af9190612390565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da91906123e8565b610659565b6040516101ec9190612456565b60405180910390f35b34801561020157600080fd5b5061021c6004803603810190610217919061249d565b610675565b005b61022661068b565b005b34801561023457600080fd5b5061024f600480360381019061024a91906124dd565b6107e2565b005b34801561025d57600080fd5b506102666108e4565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612665565b6109eb565b60405161029c9190612390565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906124dd565b610a5f565b005b3480156102da57600080fd5b506102f560048036038101906102f091906123e8565b610a7f565b6040516103029190612456565b60405180910390f35b34801561031757600080fd5b50610320610a91565b60405161032d91906126bd565b60405180910390f35b34801561034257600080fd5b5061035d600480360381019061035891906126d8565b610a97565b60405161036a91906126bd565b60405180910390f35b34801561037f57600080fd5b50610388610b51565b005b34801561039657600080fd5b506103b160048036038101906103ac9190612665565b610b65565b6040516103be9190612390565b60405180910390f35b3480156103d357600080fd5b506103dc610bb5565b6040516103e99190612456565b60405180910390f35b3480156103fe57600080fd5b50610407610bdf565b6040516104149190612390565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612731565b610c71565b005b34801561045257600080fd5b5061045b610c87565b6040516104689190612390565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612665565b610d15565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612812565b610dba565b005b3480156104cf57600080fd5b506104ea60048036038101906104e591906123e8565b610dd7565b6040516104f79190612390565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612895565b610eea565b60405161053491906122e5565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906126d8565b610f7e565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c057506105bf82611001565b5b9050919050565b6060600080546105d690612904565b80601f016020809104026020016040519081016040528092919081815260200182805461060290612904565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050905090565b6000610664826110e3565b5061066e8261116b565b9050919050565b61068782826106826111a8565b6111b0565b5050565b60095434146106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690612981565b60405180910390fd5b6000610764600a80546106e190612904565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90612904565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b50505050506109eb565b9050600061077182610b65565b905060086000815480929190610786906129d0565b91905055506000600854905061079c33826111c2565b6107a681836111e0565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a816040516107d591906126bd565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108545760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161084b9190612456565b60405180910390fd5b600061086883836108636111a8565b61123c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108de578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108d593929190612a18565b60405180910390fd5b50505050565b6108ec611456565b600047905060008111610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612a9b565b60405180910390fd5b600061093e610bb5565b73ffffffffffffffffffffffffffffffffffffffff168260405161096190612aec565b60006040518083038185875af1925050503d806000811461099e576040519150601f19603f3d011682016040523d82523d6000602084013e6109a3565b606091505b50509050806109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612b4d565b60405180910390fd5b5050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000081525090506000610a32846114dd565b90508181604051602001610a47929190612ba9565b60405160208183030381529060405292505050919050565b610a7a83838360405180602001604052806000815250610dba565b505050565b6000610a8a826110e3565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b0a5760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b019190612456565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b59611456565b610b63600061150a565b565b6060610b8f82604051602001610b7b9190612cd7565b6040516020818303038152906040526114dd565b604051602001610b9f9190612d50565b6040516020818303038152906040529050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610bee90612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90612904565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b610c83610c7c6111a8565b83836115d0565b5050565b600a8054610c9490612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090612904565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b505050505081565b610d1d611456565b6000815111610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612dbe565b60405180910390fd5b61138881511115610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612e2a565b60405180910390fd5b80600a9081610db69190612ff6565b5050565b610dc58484846107e2565b610dd18484848461173f565b50505050565b6060610de2826110e3565b506000600660008481526020019081526020016000208054610e0390612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2f90612904565b8015610e7c5780601f10610e5157610100808354040283529160200191610e7c565b820191906000526020600020905b815481529060010190602001808311610e5f57829003601f168201915b505050505090506000610e8d6118f6565b90506000815103610ea2578192505050610ee5565b600082511115610ed7578082604051602001610ebf929190612ba9565b60405160208183030381529060405292505050610ee5565b610ee08461190d565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f86611456565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec9061313a565b60405180910390fd5b610ffe8161150a565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806110dc57506110db82611976565b5b9050919050565b6000806110ef836119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116257826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161115991906126bd565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6111bd8383836001611a1d565b505050565b6111dc828260405180602001604052806000815250611be2565b5050565b806006600084815260200190815260200160002090816112009190612ff6565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161123091906126bd565b60405180910390a15050565b600080611248846119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461128a57611289818486611bfe565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461131b576112cc600085600080611a1d565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461139e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61145e6111a8565b73ffffffffffffffffffffffffffffffffffffffff1661147c610bb5565b73ffffffffffffffffffffffffffffffffffffffff16146114db5761149f6111a8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114d29190612456565b60405180910390fd5b565b60606115038260405180606001604052806040815260200161333d604091396001611cc2565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164157816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116389190612456565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161173291906122e5565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156118f0578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117836111a8565b8685856040518563ffffffff1660e01b81526004016117a594939291906131af565b6020604051808303816000875af19250505080156117e157506040513d601f19601f820116820180604052508101906117de9190613210565b60015b611865573d8060008114611811576040519150601f19603f3d011682016040523d82523d6000602084013e611816565b606091505b50600081510361185d57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118549190612456565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146118ee57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118e59190612456565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b6060611918826110e3565b5060006119236118f6565b90506000815111611943576040518060200160405280600081525061196e565b8061194d84611e56565b60405160200161195e929190612ba9565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611a565750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b8a576000611a66846110e3565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ad157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae45750611ae28184610eea565b155b15611b2657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611b1d9190612456565b60405180910390fd5b8115611b8857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611bec8383611f24565b611bf9600084848461173f565b505050565b611c0983838361201d565b611cbd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7e57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611c7591906126bd565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611cb492919061323d565b60405180910390fd5b505050565b60606000845103611ce457604051806020016040528060008152509050611e4f565b600082611d16576003600286516004611cfd9190613266565b611d0791906132a8565b611d11919061330b565b611d3d565b600360028651611d2691906132a8565b611d30919061330b565b6004611d3c9190613266565b5b905060008167ffffffffffffffff811115611d5b57611d5a61253a565b5b6040519080825280601f01601f191660200182016040528015611d8d5781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b82841015611e03576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611da8565b8082528915611e435760038c510660018114611e265760028114611e3957611e41565b603d6001870353603d6002870353611e41565b603d60018703535b505b50505050505080925050505b9392505050565b606060006001611e65846120de565b01905060008167ffffffffffffffff811115611e8457611e8361253a565b5b6040519080825280601f01601f191660200182016040528015611eb65781602001600182028036833780820191505090505b509050600082602001820190505b600115611f19578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f0d57611f0c6132dc565b5b04945060008503611ec4575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f965760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8d9190612456565b60405180910390fd5b6000611fa48383600061123c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120185760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161200f9190612456565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120d557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061209657506120958484610eea565b5b806120d457508273ffffffffffffffffffffffffffffffffffffffff166120bc8361116b565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061213c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612132576121316132dc565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612179576d04ee2d6d415b85acef8100000000838161216f5761216e6132dc565b5b0492506020810190505b662386f26fc1000083106121a857662386f26fc10000838161219e5761219d6132dc565b5b0492506010810190505b6305f5e10083106121d1576305f5e10083816121c7576121c66132dc565b5b0492506008810190505b61271083106121f65761271083816121ec576121eb6132dc565b5b0492506004810190505b60648310612219576064838161220f5761220e6132dc565b5b0492506002810190505b600a8310612228576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61227a81612245565b811461228557600080fd5b50565b60008135905061229781612271565b92915050565b6000602082840312156122b3576122b261223b565b5b60006122c184828501612288565b91505092915050565b60008115159050919050565b6122df816122ca565b82525050565b60006020820190506122fa60008301846122d6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233a57808201518184015260208101905061231f565b60008484015250505050565b6000601f19601f8301169050919050565b600061236282612300565b61236c818561230b565b935061237c81856020860161231c565b61238581612346565b840191505092915050565b600060208201905081810360008301526123aa8184612357565b905092915050565b6000819050919050565b6123c5816123b2565b81146123d057600080fd5b50565b6000813590506123e2816123bc565b92915050565b6000602082840312156123fe576123fd61223b565b5b600061240c848285016123d3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244082612415565b9050919050565b61245081612435565b82525050565b600060208201905061246b6000830184612447565b92915050565b61247a81612435565b811461248557600080fd5b50565b60008135905061249781612471565b92915050565b600080604083850312156124b4576124b361223b565b5b60006124c285828601612488565b92505060206124d3858286016123d3565b9150509250929050565b6000806000606084860312156124f6576124f561223b565b5b600061250486828701612488565b935050602061251586828701612488565b9250506040612526868287016123d3565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61257282612346565b810181811067ffffffffffffffff821117156125915761259061253a565b5b80604052505050565b60006125a4612231565b90506125b08282612569565b919050565b600067ffffffffffffffff8211156125d0576125cf61253a565b5b6125d982612346565b9050602081019050919050565b82818337600083830152505050565b6000612608612603846125b5565b61259a565b90508281526020810184848401111561262457612623612535565b5b61262f8482856125e6565b509392505050565b600082601f83011261264c5761264b612530565b5b813561265c8482602086016125f5565b91505092915050565b60006020828403121561267b5761267a61223b565b5b600082013567ffffffffffffffff81111561269957612698612240565b5b6126a584828501612637565b91505092915050565b6126b7816123b2565b82525050565b60006020820190506126d260008301846126ae565b92915050565b6000602082840312156126ee576126ed61223b565b5b60006126fc84828501612488565b91505092915050565b61270e816122ca565b811461271957600080fd5b50565b60008135905061272b81612705565b92915050565b600080604083850312156127485761274761223b565b5b600061275685828601612488565b92505060206127678582860161271c565b9150509250929050565b600067ffffffffffffffff82111561278c5761278b61253a565b5b61279582612346565b9050602081019050919050565b60006127b56127b084612771565b61259a565b9050828152602081018484840111156127d1576127d0612535565b5b6127dc8482856125e6565b509392505050565b600082601f8301126127f9576127f8612530565b5b81356128098482602086016127a2565b91505092915050565b6000806000806080858703121561282c5761282b61223b565b5b600061283a87828801612488565b945050602061284b87828801612488565b935050604061285c878288016123d3565b925050606085013567ffffffffffffffff81111561287d5761287c612240565b5b612889878288016127e4565b91505092959194509250565b600080604083850312156128ac576128ab61223b565b5b60006128ba85828601612488565b92505060206128cb85828601612488565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061291c57607f821691505b60208210810361292f5761292e6128d5565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061296b601d8361230b565b915061297682612935565b602082019050919050565b6000602082019050818103600083015261299a8161295e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129db826123b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a0d57612a0c6129a1565b5b600182019050919050565b6000606082019050612a2d6000830186612447565b612a3a60208301856126ae565b612a476040830184612447565b949350505050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b6000612a8560128361230b565b9150612a9082612a4f565b602082019050919050565b60006020820190508181036000830152612ab481612a78565b9050919050565b600081905092915050565b50565b6000612ad6600083612abb565b9150612ae182612ac6565b600082019050919050565b6000612af782612ac9565b9150819050919050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612b3760118361230b565b9150612b4282612b01565b602082019050919050565b60006020820190508181036000830152612b6681612b2a565b9050919050565b600081905092915050565b6000612b8382612300565b612b8d8185612b6d565b9350612b9d81856020860161231c565b80840191505092915050565b6000612bb58285612b78565b9150612bc18284612b78565b91508190509392505050565b7f7b226e616d65223a2022466c756666792046757279222c20226465736372697060008201527f74696f6e223a2022596f75722061636365737320696e746f20616e792065766560208201527f6e742063726561746564207573696e67207468697320746f6b656e206164647260408201527f657373222c2022696d616765223a220000000000000000000000000000000000606082015250565b6000612c75606f83612b6d565b9150612c8082612bcd565b606f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612cc1600283612b6d565b9150612ccc82612c8b565b600282019050919050565b6000612ce282612c68565b9150612cee8284612b78565b9150612cf982612cb4565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000612d3a601d83612b6d565b9150612d4582612d04565b601d82019050919050565b6000612d5b82612d2d565b9150612d678284612b78565b915081905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b6000612da860188361230b565b9150612db382612d72565b602082019050919050565b60006020820190508181036000830152612dd781612d9b565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000612e1460128361230b565b9150612e1f82612dde565b602082019050919050565b60006020820190508181036000830152612e4381612e07565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612eac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e6f565b612eb68683612e6f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612ef3612eee612ee9846123b2565b612ece565b6123b2565b9050919050565b6000819050919050565b612f0d83612ed8565b612f21612f1982612efa565b848454612e7c565b825550505050565b600090565b612f36612f29565b612f41818484612f04565b505050565b5b81811015612f6557612f5a600082612f2e565b600181019050612f47565b5050565b601f821115612faa57612f7b81612e4a565b612f8484612e5f565b81016020851015612f93578190505b612fa7612f9f85612e5f565b830182612f46565b50505b505050565b600082821c905092915050565b6000612fcd60001984600802612faf565b1980831691505092915050565b6000612fe68383612fbc565b9150826002028217905092915050565b612fff82612300565b67ffffffffffffffff8111156130185761301761253a565b5b6130228254612904565b61302d828285612f69565b600060209050601f831160018114613060576000841561304e578287015190505b6130588582612fda565b8655506130c0565b601f19841661306e86612e4a565b60005b8281101561309657848901518255600182019150602085019450602081019050613071565b868310156130b357848901516130af601f891682612fbc565b8355505b6001600288020188555050505b505050505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061312460248361230b565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006131818261315a565b61318b8185613165565b935061319b81856020860161231c565b6131a481612346565b840191505092915050565b60006080820190506131c46000830187612447565b6131d16020830186612447565b6131de60408301856126ae565b81810360608301526131f08184613176565b905095945050505050565b60008151905061320a81612271565b92915050565b6000602082840312156132265761322561223b565b5b6000613234848285016131fb565b91505092915050565b60006040820190506132526000830185612447565b61325f60208301846126ae565b9392505050565b6000613271826123b2565b915061327c836123b2565b925082820261328a816123b2565b915082820484148315176132a1576132a06129a1565b5b5092915050565b60006132b3826123b2565b91506132be836123b2565b92508282019050808211156132d6576132d56129a1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613316826123b2565b9150613321836123b2565b925082613331576133306132dc565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f1a1a46abdc0ea2e367c70d79d69481c4d0e6e587eee1932b56afa37249682e564736f6c63430008180033", + "deployedBytecode": "0x6080604052600436106101445760003560e01c806370a08231116100b6578063a31e06da1161006f578063a31e06da14610446578063a52db60d14610471578063b88d4fde1461049a578063c87b56dd146104c3578063e985e9c514610500578063f2fde38b1461053d5761014b565b806370a0823114610336578063715018a61461037357806371aee1931461038a5780638da5cb5b146103c757806395d89b41146103f2578063a22cb4651461041d5761014b565b806323b872dd1161010857806323b872dd1461022857806324600fc31461025157806330d871c61461026857806342842e0e146102a55780636352211e146102ce5780636817c76c1461030b5761014b565b806301ffc9a71461015057806306fdde031461018d578063081812fc146101b8578063095ea7b3146101f55780631249c58b1461021e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101776004803603810190610172919061229d565b610566565b60405161018491906122e5565b60405180910390f35b34801561019957600080fd5b506101a26105c7565b6040516101af9190612390565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da91906123e8565b610659565b6040516101ec9190612456565b60405180910390f35b34801561020157600080fd5b5061021c6004803603810190610217919061249d565b610675565b005b61022661068b565b005b34801561023457600080fd5b5061024f600480360381019061024a91906124dd565b6107e2565b005b34801561025d57600080fd5b506102666108e4565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612665565b6109eb565b60405161029c9190612390565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906124dd565b610a5f565b005b3480156102da57600080fd5b506102f560048036038101906102f091906123e8565b610a7f565b6040516103029190612456565b60405180910390f35b34801561031757600080fd5b50610320610a91565b60405161032d91906126bd565b60405180910390f35b34801561034257600080fd5b5061035d600480360381019061035891906126d8565b610a97565b60405161036a91906126bd565b60405180910390f35b34801561037f57600080fd5b50610388610b51565b005b34801561039657600080fd5b506103b160048036038101906103ac9190612665565b610b65565b6040516103be9190612390565b60405180910390f35b3480156103d357600080fd5b506103dc610bb5565b6040516103e99190612456565b60405180910390f35b3480156103fe57600080fd5b50610407610bdf565b6040516104149190612390565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612731565b610c71565b005b34801561045257600080fd5b5061045b610c87565b6040516104689190612390565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612665565b610d15565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612812565b610dba565b005b3480156104cf57600080fd5b506104ea60048036038101906104e591906123e8565b610dd7565b6040516104f79190612390565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612895565b610eea565b60405161053491906122e5565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906126d8565b610f7e565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c057506105bf82611001565b5b9050919050565b6060600080546105d690612904565b80601f016020809104026020016040519081016040528092919081815260200182805461060290612904565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050905090565b6000610664826110e3565b5061066e8261116b565b9050919050565b61068782826106826111a8565b6111b0565b5050565b60095434146106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690612981565b60405180910390fd5b6000610764600a80546106e190612904565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90612904565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b50505050506109eb565b9050600061077182610b65565b905060086000815480929190610786906129d0565b91905055506000600854905061079c33826111c2565b6107a681836111e0565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a816040516107d591906126bd565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108545760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161084b9190612456565b60405180910390fd5b600061086883836108636111a8565b61123c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108de578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108d593929190612a18565b60405180910390fd5b50505050565b6108ec611456565b600047905060008111610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612a9b565b60405180910390fd5b600061093e610bb5565b73ffffffffffffffffffffffffffffffffffffffff168260405161096190612aec565b60006040518083038185875af1925050503d806000811461099e576040519150601f19603f3d011682016040523d82523d6000602084013e6109a3565b606091505b50509050806109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612b4d565b60405180910390fd5b5050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000081525090506000610a32846114dd565b90508181604051602001610a47929190612ba9565b60405160208183030381529060405292505050919050565b610a7a83838360405180602001604052806000815250610dba565b505050565b6000610a8a826110e3565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b0a5760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b019190612456565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b59611456565b610b63600061150a565b565b6060610b8f82604051602001610b7b9190612cd7565b6040516020818303038152906040526114dd565b604051602001610b9f9190612d50565b6040516020818303038152906040529050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610bee90612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90612904565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b610c83610c7c6111a8565b83836115d0565b5050565b600a8054610c9490612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090612904565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b505050505081565b610d1d611456565b6000815111610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612dbe565b60405180910390fd5b61138881511115610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612e2a565b60405180910390fd5b80600a9081610db69190612ff6565b5050565b610dc58484846107e2565b610dd18484848461173f565b50505050565b6060610de2826110e3565b506000600660008481526020019081526020016000208054610e0390612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2f90612904565b8015610e7c5780601f10610e5157610100808354040283529160200191610e7c565b820191906000526020600020905b815481529060010190602001808311610e5f57829003601f168201915b505050505090506000610e8d6118f6565b90506000815103610ea2578192505050610ee5565b600082511115610ed7578082604051602001610ebf929190612ba9565b60405160208183030381529060405292505050610ee5565b610ee08461190d565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f86611456565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec9061313a565b60405180910390fd5b610ffe8161150a565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806110dc57506110db82611976565b5b9050919050565b6000806110ef836119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116257826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161115991906126bd565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6111bd8383836001611a1d565b505050565b6111dc828260405180602001604052806000815250611be2565b5050565b806006600084815260200190815260200160002090816112009190612ff6565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161123091906126bd565b60405180910390a15050565b600080611248846119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461128a57611289818486611bfe565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461131b576112cc600085600080611a1d565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461139e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61145e6111a8565b73ffffffffffffffffffffffffffffffffffffffff1661147c610bb5565b73ffffffffffffffffffffffffffffffffffffffff16146114db5761149f6111a8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114d29190612456565b60405180910390fd5b565b60606115038260405180606001604052806040815260200161333d604091396001611cc2565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164157816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116389190612456565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161173291906122e5565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156118f0578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117836111a8565b8685856040518563ffffffff1660e01b81526004016117a594939291906131af565b6020604051808303816000875af19250505080156117e157506040513d601f19601f820116820180604052508101906117de9190613210565b60015b611865573d8060008114611811576040519150601f19603f3d011682016040523d82523d6000602084013e611816565b606091505b50600081510361185d57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118549190612456565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146118ee57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118e59190612456565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b6060611918826110e3565b5060006119236118f6565b90506000815111611943576040518060200160405280600081525061196e565b8061194d84611e56565b60405160200161195e929190612ba9565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611a565750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b8a576000611a66846110e3565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ad157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae45750611ae28184610eea565b155b15611b2657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611b1d9190612456565b60405180910390fd5b8115611b8857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611bec8383611f24565b611bf9600084848461173f565b505050565b611c0983838361201d565b611cbd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7e57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611c7591906126bd565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611cb492919061323d565b60405180910390fd5b505050565b60606000845103611ce457604051806020016040528060008152509050611e4f565b600082611d16576003600286516004611cfd9190613266565b611d0791906132a8565b611d11919061330b565b611d3d565b600360028651611d2691906132a8565b611d30919061330b565b6004611d3c9190613266565b5b905060008167ffffffffffffffff811115611d5b57611d5a61253a565b5b6040519080825280601f01601f191660200182016040528015611d8d5781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b82841015611e03576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611da8565b8082528915611e435760038c510660018114611e265760028114611e3957611e41565b603d6001870353603d6002870353611e41565b603d60018703535b505b50505050505080925050505b9392505050565b606060006001611e65846120de565b01905060008167ffffffffffffffff811115611e8457611e8361253a565b5b6040519080825280601f01601f191660200182016040528015611eb65781602001600182028036833780820191505090505b509050600082602001820190505b600115611f19578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f0d57611f0c6132dc565b5b04945060008503611ec4575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f965760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8d9190612456565b60405180910390fd5b6000611fa48383600061123c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120185760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161200f9190612456565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120d557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061209657506120958484610eea565b5b806120d457508273ffffffffffffffffffffffffffffffffffffffff166120bc8361116b565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061213c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612132576121316132dc565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612179576d04ee2d6d415b85acef8100000000838161216f5761216e6132dc565b5b0492506020810190505b662386f26fc1000083106121a857662386f26fc10000838161219e5761219d6132dc565b5b0492506010810190505b6305f5e10083106121d1576305f5e10083816121c7576121c66132dc565b5b0492506008810190505b61271083106121f65761271083816121ec576121eb6132dc565b5b0492506004810190505b60648310612219576064838161220f5761220e6132dc565b5b0492506002810190505b600a8310612228576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61227a81612245565b811461228557600080fd5b50565b60008135905061229781612271565b92915050565b6000602082840312156122b3576122b261223b565b5b60006122c184828501612288565b91505092915050565b60008115159050919050565b6122df816122ca565b82525050565b60006020820190506122fa60008301846122d6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233a57808201518184015260208101905061231f565b60008484015250505050565b6000601f19601f8301169050919050565b600061236282612300565b61236c818561230b565b935061237c81856020860161231c565b61238581612346565b840191505092915050565b600060208201905081810360008301526123aa8184612357565b905092915050565b6000819050919050565b6123c5816123b2565b81146123d057600080fd5b50565b6000813590506123e2816123bc565b92915050565b6000602082840312156123fe576123fd61223b565b5b600061240c848285016123d3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244082612415565b9050919050565b61245081612435565b82525050565b600060208201905061246b6000830184612447565b92915050565b61247a81612435565b811461248557600080fd5b50565b60008135905061249781612471565b92915050565b600080604083850312156124b4576124b361223b565b5b60006124c285828601612488565b92505060206124d3858286016123d3565b9150509250929050565b6000806000606084860312156124f6576124f561223b565b5b600061250486828701612488565b935050602061251586828701612488565b9250506040612526868287016123d3565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61257282612346565b810181811067ffffffffffffffff821117156125915761259061253a565b5b80604052505050565b60006125a4612231565b90506125b08282612569565b919050565b600067ffffffffffffffff8211156125d0576125cf61253a565b5b6125d982612346565b9050602081019050919050565b82818337600083830152505050565b6000612608612603846125b5565b61259a565b90508281526020810184848401111561262457612623612535565b5b61262f8482856125e6565b509392505050565b600082601f83011261264c5761264b612530565b5b813561265c8482602086016125f5565b91505092915050565b60006020828403121561267b5761267a61223b565b5b600082013567ffffffffffffffff81111561269957612698612240565b5b6126a584828501612637565b91505092915050565b6126b7816123b2565b82525050565b60006020820190506126d260008301846126ae565b92915050565b6000602082840312156126ee576126ed61223b565b5b60006126fc84828501612488565b91505092915050565b61270e816122ca565b811461271957600080fd5b50565b60008135905061272b81612705565b92915050565b600080604083850312156127485761274761223b565b5b600061275685828601612488565b92505060206127678582860161271c565b9150509250929050565b600067ffffffffffffffff82111561278c5761278b61253a565b5b61279582612346565b9050602081019050919050565b60006127b56127b084612771565b61259a565b9050828152602081018484840111156127d1576127d0612535565b5b6127dc8482856125e6565b509392505050565b600082601f8301126127f9576127f8612530565b5b81356128098482602086016127a2565b91505092915050565b6000806000806080858703121561282c5761282b61223b565b5b600061283a87828801612488565b945050602061284b87828801612488565b935050604061285c878288016123d3565b925050606085013567ffffffffffffffff81111561287d5761287c612240565b5b612889878288016127e4565b91505092959194509250565b600080604083850312156128ac576128ab61223b565b5b60006128ba85828601612488565b92505060206128cb85828601612488565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061291c57607f821691505b60208210810361292f5761292e6128d5565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061296b601d8361230b565b915061297682612935565b602082019050919050565b6000602082019050818103600083015261299a8161295e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129db826123b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a0d57612a0c6129a1565b5b600182019050919050565b6000606082019050612a2d6000830186612447565b612a3a60208301856126ae565b612a476040830184612447565b949350505050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b6000612a8560128361230b565b9150612a9082612a4f565b602082019050919050565b60006020820190508181036000830152612ab481612a78565b9050919050565b600081905092915050565b50565b6000612ad6600083612abb565b9150612ae182612ac6565b600082019050919050565b6000612af782612ac9565b9150819050919050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612b3760118361230b565b9150612b4282612b01565b602082019050919050565b60006020820190508181036000830152612b6681612b2a565b9050919050565b600081905092915050565b6000612b8382612300565b612b8d8185612b6d565b9350612b9d81856020860161231c565b80840191505092915050565b6000612bb58285612b78565b9150612bc18284612b78565b91508190509392505050565b7f7b226e616d65223a2022466c756666792046757279222c20226465736372697060008201527f74696f6e223a2022596f75722061636365737320696e746f20616e792065766560208201527f6e742063726561746564207573696e67207468697320746f6b656e206164647260408201527f657373222c2022696d616765223a220000000000000000000000000000000000606082015250565b6000612c75606f83612b6d565b9150612c8082612bcd565b606f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612cc1600283612b6d565b9150612ccc82612c8b565b600282019050919050565b6000612ce282612c68565b9150612cee8284612b78565b9150612cf982612cb4565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000612d3a601d83612b6d565b9150612d4582612d04565b601d82019050919050565b6000612d5b82612d2d565b9150612d678284612b78565b915081905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b6000612da860188361230b565b9150612db382612d72565b602082019050919050565b60006020820190508181036000830152612dd781612d9b565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000612e1460128361230b565b9150612e1f82612dde565b602082019050919050565b60006020820190508181036000830152612e4381612e07565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612eac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e6f565b612eb68683612e6f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612ef3612eee612ee9846123b2565b612ece565b6123b2565b9050919050565b6000819050919050565b612f0d83612ed8565b612f21612f1982612efa565b848454612e7c565b825550505050565b600090565b612f36612f29565b612f41818484612f04565b505050565b5b81811015612f6557612f5a600082612f2e565b600181019050612f47565b5050565b601f821115612faa57612f7b81612e4a565b612f8484612e5f565b81016020851015612f93578190505b612fa7612f9f85612e5f565b830182612f46565b50505b505050565b600082821c905092915050565b6000612fcd60001984600802612faf565b1980831691505092915050565b6000612fe68383612fbc565b9150826002028217905092915050565b612fff82612300565b67ffffffffffffffff8111156130185761301761253a565b5b6130228254612904565b61302d828285612f69565b600060209050601f831160018114613060576000841561304e578287015190505b6130588582612fda565b8655506130c0565b601f19841661306e86612e4a565b60005b8281101561309657848901518255600182019150602085019450602081019050613071565b868310156130b357848901516130af601f891682612fbc565b8355505b6001600288020188555050505b505050505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061312460248361230b565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006131818261315a565b61318b8185613165565b935061319b81856020860161231c565b6131a481612346565b840191505092915050565b60006080820190506131c46000830187612447565b6131d16020830186612447565b6131de60408301856126ae565b81810360608301526131f08184613176565b905095945050505050565b60008151905061320a81612271565b92915050565b6000602082840312156132265761322561223b565b5b6000613234848285016131fb565b91505092915050565b60006040820190506132526000830185612447565b61325f60208301846126ae565b9392505050565b6000613271826123b2565b915061327c836123b2565b925082820261328a816123b2565b915082820484148315176132a1576132a06129a1565b5b5092915050565b60006132b3826123b2565b91506132be836123b2565b92508282019050808211156132d6576132d56129a1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613316826123b2565b9150613321836123b2565b925082613331576133306132dc565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f1a1a46abdc0ea2e367c70d79d69481c4d0e6e587eee1932b56afa37249682e564736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/artifacts/NFTGatedEventManagerModule#NFTGatedEventManager.dbg.json b/ignition/deployments/chain-4202/artifacts/NFTGatedEventManagerModule#NFTGatedEventManager.dbg.json new file mode 100644 index 0000000..88706b5 --- /dev/null +++ b/ignition/deployments/chain-4202/artifacts/NFTGatedEventManagerModule#NFTGatedEventManager.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "..\\build-info\\7061738f0af9aa002156ebd51161033d.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/artifacts/NFTGatedEventManagerModule#NFTGatedEventManager.json b/ignition/deployments/chain-4202/artifacts/NFTGatedEventManagerModule#NFTGatedEventManager.json new file mode 100644 index 0000000..352e4e5 --- /dev/null +++ b/ignition/deployments/chain-4202/artifacts/NFTGatedEventManagerModule#NFTGatedEventManager.json @@ -0,0 +1,288 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NFTGatedEventManager", + "sourceName": "contracts/NFTGatedEventManager.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "eventId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "eventName", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eventDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "nftRequired", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "maxCapacity", + "type": "uint256" + } + ], + "name": "EventCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "eventId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "newStatus", + "type": "bool" + } + ], + "name": "EventStatusUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "eventId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "UserRegistered", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_eventName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_eventDate", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_nftRequired", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_maxCapacity", + "type": "uint256" + } + ], + "name": "createEvent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "eventIdCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "events", + "outputs": [ + { + "internalType": "string", + "name": "eventName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "eventDate", + "type": "uint256" + }, + { + "internalType": "address", + "name": "nftRequired", + "type": "address" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "maxCapacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "registeredCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + } + ], + "name": "getEventDetails", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "isUserRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + } + ], + "name": "registerForEvent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "_isActive", + "type": "bool" + } + ], + "name": "updateEventStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611aed806100616000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806357f697991161005b57806357f69799146101165780638da5cb5b14610146578063e01a0ebe14610164578063ec38d5a01461018257610088565b8063018c97241461008d5780630b791430146100a9578063406db843146100de57806354484fb0146100fa575b600080fd5b6100a760048036038101906100a29190610d8b565b6101b7565b005b6100c360048036038101906100be9190610e0e565b6104f0565b6040516100d596959493929190610ef3565b60405180910390f35b6100f860048036038101906100f39190610e0e565b6105e1565b005b610114600480360381019061010f9190610f87565b6108f9565b005b610130600480360381019061012b9190610fc7565b6109fa565b60405161013d9190611007565b60405180910390f35b61014e610a65565b60405161015b9190611022565b60405180910390f35b61016c610a8b565b604051610179919061103d565b60405180910390f35b61019c60048036038101906101979190610e0e565b610a91565b6040516101ae96959493929190611058565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023e90611132565b60405180910390fd5b428311610289576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610280906111c4565b60405180910390fd5b600081116102cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c390611256565b60405180910390fd5b6000823b905060008163ffffffff161161031b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610312906112e8565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f80ac58cd000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016103749190611343565b602060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b59190611373565b6103f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103eb90611412565b60405180910390fd5b6000600160008054815260200190815260200160002090508581600001908161041d919061163e565b50848160010181905550838160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082816003018190555060018160020160146101000a81548160ff0219169083151502179055507f88f91a8cee50507bf8f67ddf436d225a426a493c10f4a94db0ad16d480de7dd7600054878787876040516104c9959493929190611710565b60405180910390a16000808154809291906104e390611799565b9190505550505050505050565b600160205280600052604060002060009150905080600001805461051390611461565b80601f016020809104026020016040519081016040528092919081815260200182805461053f90611461565b801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b5050505050908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154905086565b60006001600083815260200190815260200160002090508060020160149054906101000a900460ff16610649576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106409061182d565b60405180910390fd5b8060010154421061068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690611899565b60405180910390fd5b80600301548160040154106106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d090611905565b60405180910390fd5b8060050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90611997565b60405180910390fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016107c79190611022565b602060405180830381865afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080891906119cc565b11610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90611a45565b60405180910390fd5b60018160050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060040160008154809291906108b790611799565b91905055507fb442efe467d2ef30e62927a3cae0afcbc799a8a0944d8a143332e4e5e51cee5d82336040516108ed929190611a65565b60405180910390a15050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090611132565b60405180910390fd5b6000600160008481526020019081526020016000209050818160020160146101000a81548160ff0219169083151502179055507fa84e22267ca5f39c3dc082a44444f3f681b9f38a5287a019487a246f28a04b0983836040516109ed929190611a8e565b60405180910390a1505050565b60006001600084815260200190815260200160002060050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60606000806000806000806001600089815260200190815260200160002090508060000181600101548260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003015484600401548560020160149054906101000a900460ff16858054610b0790611461565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3390611461565b8015610b805780601f10610b5557610100808354040283529160200191610b80565b820191906000526020600020905b815481529060010190602001808311610b6357829003601f168201915b505050505095509650965096509650965096505091939550919395565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c0482610bbb565b810181811067ffffffffffffffff82111715610c2357610c22610bcc565b5b80604052505050565b6000610c36610b9d565b9050610c428282610bfb565b919050565b600067ffffffffffffffff821115610c6257610c61610bcc565b5b610c6b82610bbb565b9050602081019050919050565b82818337600083830152505050565b6000610c9a610c9584610c47565b610c2c565b905082815260208101848484011115610cb657610cb5610bb6565b5b610cc1848285610c78565b509392505050565b600082601f830112610cde57610cdd610bb1565b5b8135610cee848260208601610c87565b91505092915050565b6000819050919050565b610d0a81610cf7565b8114610d1557600080fd5b50565b600081359050610d2781610d01565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d5882610d2d565b9050919050565b610d6881610d4d565b8114610d7357600080fd5b50565b600081359050610d8581610d5f565b92915050565b60008060008060808587031215610da557610da4610ba7565b5b600085013567ffffffffffffffff811115610dc357610dc2610bac565b5b610dcf87828801610cc9565b9450506020610de087828801610d18565b9350506040610df187828801610d76565b9250506060610e0287828801610d18565b91505092959194509250565b600060208284031215610e2457610e23610ba7565b5b6000610e3284828501610d18565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e75578082015181840152602081019050610e5a565b60008484015250505050565b6000610e8c82610e3b565b610e968185610e46565b9350610ea6818560208601610e57565b610eaf81610bbb565b840191505092915050565b610ec381610cf7565b82525050565b610ed281610d4d565b82525050565b60008115159050919050565b610eed81610ed8565b82525050565b600060c0820190508181036000830152610f0d8189610e81565b9050610f1c6020830188610eba565b610f296040830187610ec9565b610f366060830186610ee4565b610f436080830185610eba565b610f5060a0830184610eba565b979650505050505050565b610f6481610ed8565b8114610f6f57600080fd5b50565b600081359050610f8181610f5b565b92915050565b60008060408385031215610f9e57610f9d610ba7565b5b6000610fac85828601610d18565b9250506020610fbd85828601610f72565b9150509250929050565b60008060408385031215610fde57610fdd610ba7565b5b6000610fec85828601610d18565b9250506020610ffd85828601610d76565b9150509250929050565b600060208201905061101c6000830184610ee4565b92915050565b60006020820190506110376000830184610ec9565b92915050565b60006020820190506110526000830184610eba565b92915050565b600060c08201905081810360008301526110728189610e81565b90506110816020830188610eba565b61108e6040830187610ec9565b61109b6060830186610eba565b6110a86080830185610eba565b6110b560a0830184610ee4565b979650505050505050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e2e0000000000000000000000000000000000602082015250565b600061111c602f83610e46565b9150611127826110c0565b604082019050919050565b6000602082019050818103600083015261114b8161110f565b9050919050565b7f4576656e742064617465206d75737420626520696e207468652066757475726560008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ae602183610e46565b91506111b982611152565b604082019050919050565b600060208201905081810360008301526111dd816111a1565b9050919050565b7f4d6178206361706163697479206d75737420626520677265617465722074686160008201527f6e207a65726f2e00000000000000000000000000000000000000000000000000602082015250565b6000611240602783610e46565b915061124b826111e4565b604082019050919050565b6000602082019050818103600083015261126f81611233565b9050919050565b7f5265717569726564204e46542061646472657373206973206e6f74206120636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006112d2602683610e46565b91506112dd82611276565b604082019050919050565b60006020820190508181036000830152611301816112c5565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61133d81611308565b82525050565b60006020820190506113586000830184611334565b92915050565b60008151905061136d81610f5b565b92915050565b60006020828403121561138957611388610ba7565b5b60006113978482850161135e565b91505092915050565b7f5265717569726564204e46542041646472657373206973206e6f7420616e204560008201527f524337323120636f6e7472616374000000000000000000000000000000000000602082015250565b60006113fc602e83610e46565b9150611407826113a0565b604082019050919050565b6000602082019050818103600083015261142b816113ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061147957607f821691505b60208210810361148c5761148b611432565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026114f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114b7565b6114fe86836114b7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061153b61153661153184610cf7565b611516565b610cf7565b9050919050565b6000819050919050565b61155583611520565b61156961156182611542565b8484546114c4565b825550505050565b600090565b61157e611571565b61158981848461154c565b505050565b5b818110156115ad576115a2600082611576565b60018101905061158f565b5050565b601f8211156115f2576115c381611492565b6115cc846114a7565b810160208510156115db578190505b6115ef6115e7856114a7565b83018261158e565b50505b505050565b600082821c905092915050565b6000611615600019846008026115f7565b1980831691505092915050565b600061162e8383611604565b9150826002028217905092915050565b61164782610e3b565b67ffffffffffffffff8111156116605761165f610bcc565b5b61166a8254611461565b6116758282856115b1565b600060209050601f8311600181146116a85760008415611696578287015190505b6116a08582611622565b865550611708565b601f1984166116b686611492565b60005b828110156116de578489015182556001820191506020850194506020810190506116b9565b868310156116fb57848901516116f7601f891682611604565b8355505b6001600288020188555050505b505050505050565b600060a0820190506117256000830188610eba565b81810360208301526117378187610e81565b90506117466040830186610eba565b6117536060830185610ec9565b6117606080830184610eba565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117a482610cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117d6576117d561176a565b5b600182019050919050565b7f4576656e74206973206e6f74206163746976652e000000000000000000000000600082015250565b6000611817601483610e46565b9150611822826117e1565b602082019050919050565b600060208201905081810360008301526118468161180a565b9050919050565b7f4576656e7420726567697374726174696f6e2068617320636c6f7365642e0000600082015250565b6000611883601e83610e46565b915061188e8261184d565b602082019050919050565b600060208201905081810360008301526118b281611876565b9050919050565b7f4576656e742069732066756c6c7920626f6f6b65642e00000000000000000000600082015250565b60006118ef601683610e46565b91506118fa826118b9565b602082019050919050565b6000602082019050818103600083015261191e816118e2565b9050919050565b7f596f752061726520616c7265616479207265676973746572656420666f72207460008201527f686973206576656e742e00000000000000000000000000000000000000000000602082015250565b6000611981602a83610e46565b915061198c82611925565b604082019050919050565b600060208201905081810360008301526119b081611974565b9050919050565b6000815190506119c681610d01565b92915050565b6000602082840312156119e2576119e1610ba7565b5b60006119f0848285016119b7565b91505092915050565b7f596f7520646f206e6f74206f776e20746865207265717569726564204e46542e600082015250565b6000611a2f602083610e46565b9150611a3a826119f9565b602082019050919050565b60006020820190508181036000830152611a5e81611a22565b9050919050565b6000604082019050611a7a6000830185610eba565b611a876020830184610ec9565b9392505050565b6000604082019050611aa36000830185610eba565b611ab06020830184610ee4565b939250505056fea2646970667358221220b81122f3d7fa77d393f93b387b6461c781010b6213edb81c2d5b17c3c36778a064736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806357f697991161005b57806357f69799146101165780638da5cb5b14610146578063e01a0ebe14610164578063ec38d5a01461018257610088565b8063018c97241461008d5780630b791430146100a9578063406db843146100de57806354484fb0146100fa575b600080fd5b6100a760048036038101906100a29190610d8b565b6101b7565b005b6100c360048036038101906100be9190610e0e565b6104f0565b6040516100d596959493929190610ef3565b60405180910390f35b6100f860048036038101906100f39190610e0e565b6105e1565b005b610114600480360381019061010f9190610f87565b6108f9565b005b610130600480360381019061012b9190610fc7565b6109fa565b60405161013d9190611007565b60405180910390f35b61014e610a65565b60405161015b9190611022565b60405180910390f35b61016c610a8b565b604051610179919061103d565b60405180910390f35b61019c60048036038101906101979190610e0e565b610a91565b6040516101ae96959493929190611058565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023e90611132565b60405180910390fd5b428311610289576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610280906111c4565b60405180910390fd5b600081116102cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c390611256565b60405180910390fd5b6000823b905060008163ffffffff161161031b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610312906112e8565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f80ac58cd000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016103749190611343565b602060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b59190611373565b6103f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103eb90611412565b60405180910390fd5b6000600160008054815260200190815260200160002090508581600001908161041d919061163e565b50848160010181905550838160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082816003018190555060018160020160146101000a81548160ff0219169083151502179055507f88f91a8cee50507bf8f67ddf436d225a426a493c10f4a94db0ad16d480de7dd7600054878787876040516104c9959493929190611710565b60405180910390a16000808154809291906104e390611799565b9190505550505050505050565b600160205280600052604060002060009150905080600001805461051390611461565b80601f016020809104026020016040519081016040528092919081815260200182805461053f90611461565b801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b5050505050908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154905086565b60006001600083815260200190815260200160002090508060020160149054906101000a900460ff16610649576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106409061182d565b60405180910390fd5b8060010154421061068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690611899565b60405180910390fd5b80600301548160040154106106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d090611905565b60405180910390fd5b8060050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90611997565b60405180910390fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016107c79190611022565b602060405180830381865afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080891906119cc565b11610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90611a45565b60405180910390fd5b60018160050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060040160008154809291906108b790611799565b91905055507fb442efe467d2ef30e62927a3cae0afcbc799a8a0944d8a143332e4e5e51cee5d82336040516108ed929190611a65565b60405180910390a15050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090611132565b60405180910390fd5b6000600160008481526020019081526020016000209050818160020160146101000a81548160ff0219169083151502179055507fa84e22267ca5f39c3dc082a44444f3f681b9f38a5287a019487a246f28a04b0983836040516109ed929190611a8e565b60405180910390a1505050565b60006001600084815260200190815260200160002060050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60606000806000806000806001600089815260200190815260200160002090508060000181600101548260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003015484600401548560020160149054906101000a900460ff16858054610b0790611461565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3390611461565b8015610b805780601f10610b5557610100808354040283529160200191610b80565b820191906000526020600020905b815481529060010190602001808311610b6357829003601f168201915b505050505095509650965096509650965096505091939550919395565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c0482610bbb565b810181811067ffffffffffffffff82111715610c2357610c22610bcc565b5b80604052505050565b6000610c36610b9d565b9050610c428282610bfb565b919050565b600067ffffffffffffffff821115610c6257610c61610bcc565b5b610c6b82610bbb565b9050602081019050919050565b82818337600083830152505050565b6000610c9a610c9584610c47565b610c2c565b905082815260208101848484011115610cb657610cb5610bb6565b5b610cc1848285610c78565b509392505050565b600082601f830112610cde57610cdd610bb1565b5b8135610cee848260208601610c87565b91505092915050565b6000819050919050565b610d0a81610cf7565b8114610d1557600080fd5b50565b600081359050610d2781610d01565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d5882610d2d565b9050919050565b610d6881610d4d565b8114610d7357600080fd5b50565b600081359050610d8581610d5f565b92915050565b60008060008060808587031215610da557610da4610ba7565b5b600085013567ffffffffffffffff811115610dc357610dc2610bac565b5b610dcf87828801610cc9565b9450506020610de087828801610d18565b9350506040610df187828801610d76565b9250506060610e0287828801610d18565b91505092959194509250565b600060208284031215610e2457610e23610ba7565b5b6000610e3284828501610d18565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e75578082015181840152602081019050610e5a565b60008484015250505050565b6000610e8c82610e3b565b610e968185610e46565b9350610ea6818560208601610e57565b610eaf81610bbb565b840191505092915050565b610ec381610cf7565b82525050565b610ed281610d4d565b82525050565b60008115159050919050565b610eed81610ed8565b82525050565b600060c0820190508181036000830152610f0d8189610e81565b9050610f1c6020830188610eba565b610f296040830187610ec9565b610f366060830186610ee4565b610f436080830185610eba565b610f5060a0830184610eba565b979650505050505050565b610f6481610ed8565b8114610f6f57600080fd5b50565b600081359050610f8181610f5b565b92915050565b60008060408385031215610f9e57610f9d610ba7565b5b6000610fac85828601610d18565b9250506020610fbd85828601610f72565b9150509250929050565b60008060408385031215610fde57610fdd610ba7565b5b6000610fec85828601610d18565b9250506020610ffd85828601610d76565b9150509250929050565b600060208201905061101c6000830184610ee4565b92915050565b60006020820190506110376000830184610ec9565b92915050565b60006020820190506110526000830184610eba565b92915050565b600060c08201905081810360008301526110728189610e81565b90506110816020830188610eba565b61108e6040830187610ec9565b61109b6060830186610eba565b6110a86080830185610eba565b6110b560a0830184610ee4565b979650505050505050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e2e0000000000000000000000000000000000602082015250565b600061111c602f83610e46565b9150611127826110c0565b604082019050919050565b6000602082019050818103600083015261114b8161110f565b9050919050565b7f4576656e742064617465206d75737420626520696e207468652066757475726560008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ae602183610e46565b91506111b982611152565b604082019050919050565b600060208201905081810360008301526111dd816111a1565b9050919050565b7f4d6178206361706163697479206d75737420626520677265617465722074686160008201527f6e207a65726f2e00000000000000000000000000000000000000000000000000602082015250565b6000611240602783610e46565b915061124b826111e4565b604082019050919050565b6000602082019050818103600083015261126f81611233565b9050919050565b7f5265717569726564204e46542061646472657373206973206e6f74206120636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006112d2602683610e46565b91506112dd82611276565b604082019050919050565b60006020820190508181036000830152611301816112c5565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61133d81611308565b82525050565b60006020820190506113586000830184611334565b92915050565b60008151905061136d81610f5b565b92915050565b60006020828403121561138957611388610ba7565b5b60006113978482850161135e565b91505092915050565b7f5265717569726564204e46542041646472657373206973206e6f7420616e204560008201527f524337323120636f6e7472616374000000000000000000000000000000000000602082015250565b60006113fc602e83610e46565b9150611407826113a0565b604082019050919050565b6000602082019050818103600083015261142b816113ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061147957607f821691505b60208210810361148c5761148b611432565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026114f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114b7565b6114fe86836114b7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061153b61153661153184610cf7565b611516565b610cf7565b9050919050565b6000819050919050565b61155583611520565b61156961156182611542565b8484546114c4565b825550505050565b600090565b61157e611571565b61158981848461154c565b505050565b5b818110156115ad576115a2600082611576565b60018101905061158f565b5050565b601f8211156115f2576115c381611492565b6115cc846114a7565b810160208510156115db578190505b6115ef6115e7856114a7565b83018261158e565b50505b505050565b600082821c905092915050565b6000611615600019846008026115f7565b1980831691505092915050565b600061162e8383611604565b9150826002028217905092915050565b61164782610e3b565b67ffffffffffffffff8111156116605761165f610bcc565b5b61166a8254611461565b6116758282856115b1565b600060209050601f8311600181146116a85760008415611696578287015190505b6116a08582611622565b865550611708565b601f1984166116b686611492565b60005b828110156116de578489015182556001820191506020850194506020810190506116b9565b868310156116fb57848901516116f7601f891682611604565b8355505b6001600288020188555050505b505050505050565b600060a0820190506117256000830188610eba565b81810360208301526117378187610e81565b90506117466040830186610eba565b6117536060830185610ec9565b6117606080830184610eba565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117a482610cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117d6576117d561176a565b5b600182019050919050565b7f4576656e74206973206e6f74206163746976652e000000000000000000000000600082015250565b6000611817601483610e46565b9150611822826117e1565b602082019050919050565b600060208201905081810360008301526118468161180a565b9050919050565b7f4576656e7420726567697374726174696f6e2068617320636c6f7365642e0000600082015250565b6000611883601e83610e46565b915061188e8261184d565b602082019050919050565b600060208201905081810360008301526118b281611876565b9050919050565b7f4576656e742069732066756c6c7920626f6f6b65642e00000000000000000000600082015250565b60006118ef601683610e46565b91506118fa826118b9565b602082019050919050565b6000602082019050818103600083015261191e816118e2565b9050919050565b7f596f752061726520616c7265616479207265676973746572656420666f72207460008201527f686973206576656e742e00000000000000000000000000000000000000000000602082015250565b6000611981602a83610e46565b915061198c82611925565b604082019050919050565b600060208201905081810360008301526119b081611974565b9050919050565b6000815190506119c681610d01565b92915050565b6000602082840312156119e2576119e1610ba7565b5b60006119f0848285016119b7565b91505092915050565b7f596f7520646f206e6f74206f776e20746865207265717569726564204e46542e600082015250565b6000611a2f602083610e46565b9150611a3a826119f9565b602082019050919050565b60006020820190508181036000830152611a5e81611a22565b9050919050565b6000604082019050611a7a6000830185610eba565b611a876020830184610ec9565b9392505050565b6000604082019050611aa36000830185610eba565b611ab06020830184610ee4565b939250505056fea2646970667358221220b81122f3d7fa77d393f93b387b6461c781010b6213edb81c2d5b17c3c36778a064736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/build-info/7061738f0af9aa002156ebd51161033d.json b/ignition/deployments/chain-4202/build-info/7061738f0af9aa002156ebd51161033d.json new file mode 100644 index 0000000..175ab6f --- /dev/null +++ b/ignition/deployments/chain-4202/build-info/7061738f0af9aa002156ebd51161033d.json @@ -0,0 +1,122348 @@ +{ + "id": "7061738f0af9aa002156ebd51161033d", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.24", + "solcLongVersion": "0.8.24+commit.e11b9ed9", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n" + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC4906.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\nimport {IERC721} from \"./IERC721.sol\";\n\n/// @title EIP-721 Metadata Update Extension\ninterface IERC4906 is IERC165, IERC721 {\n /// @dev This event emits when the metadata of a token is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFT.\n event MetadataUpdate(uint256 _tokenId);\n\n /// @dev This event emits when the metadata of a range of tokens is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFTs.\n event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../token/ERC721/IERC721.sol\";\n" + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Receiver} from \"./IERC721Receiver.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n mapping(uint256 tokenId => address) private _owners;\n\n mapping(address owner => uint256) private _balances;\n\n mapping(uint256 tokenId => address) private _tokenApprovals;\n\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual returns (uint256) {\n if (owner == address(0)) {\n revert ERC721InvalidOwner(address(0));\n }\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\n return _requireOwned(tokenId);\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n _requireOwned(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual {\n _approve(to, tokenId, _msgSender());\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual returns (address) {\n _requireOwned(tokenId);\n\n return _getApproved(tokenId);\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n address previousOwner = _update(to, tokenId, _msgSender());\n if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n transferFrom(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n *\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n */\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n * particular (ignoring whether it is owned by `owner`).\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n return\n spender != address(0) &&\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n * the `spender` for the specific `tokenId`.\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n if (!_isAuthorized(owner, spender, tokenId)) {\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else {\n revert ERC721InsufficientApproval(spender, tokenId);\n }\n }\n }\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n *\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n * remain consistent with one another.\n */\n function _increaseBalance(address account, uint128 value) internal virtual {\n unchecked {\n _balances[account] += value;\n }\n }\n\n /**\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n *\n * Emits a {Transfer} event.\n *\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n address from = _ownerOf(tokenId);\n\n // Perform (optional) operator check\n if (auth != address(0)) {\n _checkAuthorized(from, auth, tokenId);\n }\n\n // Execute the update\n if (from != address(0)) {\n // Clear approval. No need to re-authorize or emit the Approval event\n _approve(address(0), tokenId, address(0), false);\n\n unchecked {\n _balances[from] -= 1;\n }\n }\n\n if (to != address(0)) {\n unchecked {\n _balances[to] += 1;\n }\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n return from;\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner != address(0)) {\n revert ERC721InvalidSender(address(0));\n }\n }\n\n /**\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n _mint(to, tokenId);\n _checkOnERC721Received(address(0), to, tokenId, data);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal {\n address previousOwner = _update(address(0), tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is like {safeTransferFrom} in the sense that it invokes\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `tokenId` token must exist and be owned by `from`.\n * - `to` cannot be the zero address.\n * - `from` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\n _safeTransfer(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n _transfer(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n * either the owner of the token, or approved to operate on all tokens held by this owner.\n *\n * Emits an {Approval} event.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address to, uint256 tokenId, address auth) internal {\n _approve(to, tokenId, auth, true);\n }\n\n /**\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n * emitted in the context of transfers.\n */\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n // Avoid reading the owner unless necessary\n if (emitEvent || auth != address(0)) {\n address owner = _requireOwned(tokenId);\n\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n revert ERC721InvalidApprover(auth);\n }\n\n if (emitEvent) {\n emit Approval(owner, to, tokenId);\n }\n }\n\n _tokenApprovals[tokenId] = to;\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Requirements:\n * - operator can't be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC721InvalidOperator(operator);\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n * Returns the owner.\n *\n * Overrides to ownership logic should be done to {_ownerOf}.\n */\n function _requireOwned(uint256 tokenId) internal view returns (address) {\n address owner = _ownerOf(tokenId);\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n return owner;\n }\n\n /**\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\n if (to.code.length > 0) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n if (retval != IERC721Receiver.onERC721Received.selector) {\n revert ERC721InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert ERC721InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {Strings} from \"../../../utils/Strings.sol\";\nimport {IERC4906} from \"../../../interfaces/IERC4906.sol\";\nimport {IERC165} from \"../../../interfaces/IERC165.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is IERC4906, ERC721 {\n using Strings for uint256;\n\n // Interface ID as defined in ERC-4906. This does not correspond to a traditional interface ID as ERC-4906 only\n // defines events and does not include any external function.\n bytes4 private constant ERC4906_INTERFACE_ID = bytes4(0x49064906);\n\n // Optional mapping for token URIs\n mapping(uint256 tokenId => string) private _tokenURIs;\n\n /**\n * @dev See {IERC165-supportsInterface}\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {\n return interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireOwned(tokenId);\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = _baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via string.concat).\n if (bytes(_tokenURI).length > 0) {\n return string.concat(base, _tokenURI);\n }\n\n return super.tokenURI(tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Emits {MetadataUpdate}.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n _tokenURIs[tokenId] = _tokenURI;\n emit MetadataUpdate(tokenId);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n * reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" + }, + "contracts/Base64.sol": { + "content": "// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.2) (utils/Base64.sol)\r\n\r\npragma solidity ^0.8.20;\r\n\r\n/**\r\n * @dev Provides a set of functions to operate with Base64 strings.\r\n */\r\nlibrary Base64 {\r\n /**\r\n * @dev Base64 Encoding/Decoding Table\r\n * See sections 4 and 5 of https://datatracker.ietf.org/doc/html/rfc4648\r\n */\r\n string internal constant _TABLE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n string internal constant _TABLE_URL = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\";\r\n\r\n /**\r\n * @dev Converts a `bytes` to its Bytes64 `string` representation.\r\n */\r\n function encode(bytes memory data) internal pure returns (string memory) {\r\n return _encode(data, _TABLE, true);\r\n }\r\n\r\n /**\r\n * @dev Converts a `bytes` to its Bytes64Url `string` representation.\r\n * Output is not padded with `=` as specified in https://www.rfc-editor.org/rfc/rfc4648[rfc4648].\r\n */\r\n function encodeURL(bytes memory data) internal pure returns (string memory) {\r\n return _encode(data, _TABLE_URL, false);\r\n }\r\n\r\n /**\r\n * @dev Internal table-agnostic conversion\r\n */\r\n function _encode(bytes memory data, string memory table, bool withPadding) private pure returns (string memory) {\r\n /**\r\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\r\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\r\n */\r\n if (data.length == 0) return \"\";\r\n\r\n // If padding is enabled, the final length should be `bytes` data length divided by 3 rounded up and then\r\n // multiplied by 4 so that it leaves room for padding the last chunk\r\n // - `data.length + 2` -> Prepare for division rounding up\r\n // - `/ 3` -> Number of 3-bytes chunks (rounded up)\r\n // - `4 *` -> 4 characters for each chunk\r\n // This is equivalent to: 4 * Math.ceil(data.length / 3)\r\n //\r\n // If padding is disabled, the final length should be `bytes` data length multiplied by 4/3 rounded up as\r\n // opposed to when padding is required to fill the last chunk.\r\n // - `4 * data.length` -> 4 characters for each chunk\r\n // - ` + 2` -> Prepare for division rounding up\r\n // - `/ 3` -> Number of 3-bytes chunks (rounded up)\r\n // This is equivalent to: Math.ceil((4 * data.length) / 3)\r\n uint256 resultLength = withPadding ? 4 * ((data.length + 2) / 3) : (4 * data.length + 2) / 3;\r\n\r\n string memory result = new string(resultLength);\r\n\r\n assembly (\"memory-safe\") {\r\n // Prepare the lookup table (skip the first \"length\" byte)\r\n let tablePtr := add(table, 1)\r\n\r\n // Prepare result pointer, jump over length\r\n let resultPtr := add(result, 0x20)\r\n let dataPtr := data\r\n let endPtr := add(data, mload(data))\r\n\r\n // In some cases, the last iteration will read bytes after the end of the data. We cache the value, and\r\n // set it to zero to make sure no dirty bytes are read in that section.\r\n let afterPtr := add(endPtr, 0x20)\r\n let afterCache := mload(afterPtr)\r\n mstore(afterPtr, 0x00)\r\n\r\n // Run over the input, 3 bytes at a time\r\n for {\r\n\r\n } lt(dataPtr, endPtr) {\r\n\r\n } {\r\n // Advance 3 bytes\r\n dataPtr := add(dataPtr, 3)\r\n let input := mload(dataPtr)\r\n\r\n // To write each character, shift the 3 byte (24 bits) chunk\r\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\r\n // and apply logical AND with 0x3F to bitmask the least significant 6 bits.\r\n // Use this as an index into the lookup table, mload an entire word\r\n // so the desired character is in the least significant byte, and\r\n // mstore8 this least significant byte into the result and continue.\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n }\r\n\r\n // Reset the value that was cached\r\n mstore(afterPtr, afterCache)\r\n\r\n if withPadding {\r\n // When data `bytes` is not exactly 3 bytes long\r\n // it is padded with `=` characters at the end\r\n switch mod(mload(data), 3)\r\n case 1 {\r\n mstore8(sub(resultPtr, 1), 0x3d)\r\n mstore8(sub(resultPtr, 2), 0x3d)\r\n }\r\n case 2 {\r\n mstore8(sub(resultPtr, 1), 0x3d)\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}" + }, + "contracts/CaveParty.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.24;\r\n\r\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ncontract CaveParty is ERC721, Ownable(msg.sender) {\r\n // events\r\n event Minted(uint256 tokenId);\r\n\r\n // statet variables\r\n uint256 public totalMints = 0;\r\n uint256 public mintPrice = 0.0001 ether;\r\n uint256 public maxPerWallet = 1;\r\n string public assetMetadata =\r\n \"ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS\";\r\n\r\n // mappings\r\n mapping(address => uint256) public walletMints;\r\n\r\n // functions\r\n constructor() ERC721(\"CaveParty\", \"CPY\") {}\r\n\r\n function _baseURI() internal view override returns (string memory) {\r\n return assetMetadata;\r\n }\r\n\r\n function safeMint(address to) internal {\r\n uint256 tokenId = totalMints;\r\n totalMints++;\r\n\r\n _safeMint(to, tokenId);\r\n }\r\n\r\n function mintToken() external payable {\r\n require(mintPrice == msg.value, \"0.0001 ether required to mint\");\r\n require(\r\n walletMints[msg.sender] <= maxPerWallet,\r\n \"mints per wallet exceeded\"\r\n );\r\n\r\n walletMints[msg.sender] += 1;\r\n safeMint(msg.sender);\r\n }\r\n\r\n function getMyWalletMints() external view returns (uint256) {\r\n return walletMints[msg.sender];\r\n }\r\n\r\n function withdrawFunds() external onlyOwner {\r\n (bool sent, ) = owner().call{value: address(this).balance}(\"\");\r\n require(sent, \"withdrawal failed\");\r\n }\r\n\r\n function updateMetadata(string memory _newAssetMetadata) external onlyOwner {\r\n require(checkMetadata(_newAssetMetadata), \"Invalid asset metadata: must include 'ipfs://'\");\r\n\r\n assetMetadata = _newAssetMetadata;\r\n }\r\n\r\n function getAssetMetadata() external view onlyOwner returns(string memory) {\r\n return assetMetadata;\r\n }\r\n\r\n function checkMetadata(string memory _newAssetMetadata) private pure returns (bool) {\r\n bytes memory metadataBytes = bytes(_newAssetMetadata);\r\n bytes memory ipfsBytes = bytes(\"ipfs://\");\r\n\r\n if (metadataBytes.length < ipfsBytes.length) return false;\r\n\r\n for (uint256 i = 0; i <= metadataBytes.length - ipfsBytes.length; i++) {\r\n bool check = true;\r\n for (uint256 j = 0; j < ipfsBytes.length; j++) {\r\n if (metadataBytes[i + j] != ipfsBytes[j]) {\r\n check = false;\r\n break;\r\n }\r\n }\r\n if (check) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}" + }, + "contracts/FluffyFuryNFT.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.4;\n\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\nimport {Base64} from \"./Base64.sol\";\n\ncontract FluffyFury is ERC721URIStorage, Ownable(msg.sender) {\n event Minted(uint256 tokenId);\n\n\n uint256 private _tokenIdCounter;\n uint256 public mintPrice = 0.0001 ether; // Specify the mint price in ether\n string public svgData; // The SVG stored in the contract\n\n constructor(string memory initialSvg) ERC721(\"FluffyFury\", \"FFY\") {\n require(bytes(initialSvg).length > 0, \"SVG data cannot be empty\");\n require(bytes(initialSvg).length <= 5000, \"SVG data too large\");\n svgData = initialSvg; // Initialize the SVG during deployment\n }\n\n // Modifier to check if the payment sent is correct\n modifier mintPricePaid() {\n require(msg.value == mintPrice, \"0.0001 ether required to mint\");\n _;\n }\n\n // Converts an SVG to a Base64 string\n function svgToImageURI(string memory svg) private pure returns (string memory) {\n string memory baseURL = \"data:image/svg+xml;base64,\";\n string memory svgBase64Encoded = Base64.encode(bytes(svg));\n return string(abi.encodePacked(baseURL, svgBase64Encoded));\n }\n\n // Generates a tokenURI using the Base64 string as the image\n function formatTokenURI(string memory imageURI) private pure returns (string memory) {\n return\n string(\n abi.encodePacked(\n \"data:application/json;base64,\",\n Base64.encode(\n bytes(\n abi.encodePacked(\n '{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"',\n imageURI,\n '\"}'\n )\n )\n )\n )\n );\n }\n\n // Mints the token, only anyone can mint after paying the mintPrice\n function mint() external payable mintPricePaid {\n string memory imageURI = svgToImageURI(svgData); // Use stored SVG\n string memory tokenURI = formatTokenURI(imageURI);\n\n _tokenIdCounter++;\n uint256 newItemId = _tokenIdCounter;\n\n _safeMint(msg.sender, newItemId);\n _setTokenURI(newItemId, tokenURI);\n\n emit Minted(newItemId);\n }\n\n // Withdraws all funds in the contract to the owner's address\n function withdrawFunds() external onlyOwner {\n uint256 balance = address(this).balance;\n require(balance > 0, \"No funds available\");\n\n (bool sent, ) = owner().call{value: balance}(\"\");\n require(sent, \"Withdrawal failed\");\n }\n\n // Allows the owner to update the SVG\n function updateSVG(string memory _newSvg) external onlyOwner {\n require(bytes(_newSvg).length > 0, \"SVG data cannot be empty\");\n require(bytes(_newSvg).length <= 5000, \"SVG data too large\"); // Add size validation if needed\n\n svgData = _newSvg; // Update the SVG data\n }\n\n // Transfer ownership (inherited from Ownable)\n function transferOwnership(address newOwner) public override onlyOwner {\n require(newOwner != address(0), \"New owner cannot be the zero address\");\n _transferOwnership(newOwner);\n }\n\n // Fallback function to receive Ether\n receive() external payable {}\n}" + }, + "contracts/interfaces/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\r\n\r\npragma solidity ^0.8.20;\r\n\r\n/**\r\n * @dev Interface of the ERC-165 standard, as defined in the\r\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\r\n *\r\n * Implementers can declare support of contract interfaces, which can then be\r\n * queried by others ({ERC165Checker}).\r\n *\r\n * For an implementation, see {ERC165}.\r\n */\r\ninterface IERC165 {\r\n /**\r\n * @dev Returns true if this contract implements the interface defined by\r\n * `interfaceId`. See the corresponding\r\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\r\n * to learn more about how these ids are created.\r\n *\r\n * This function call must use less than 30 000 gas.\r\n */\r\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\r\n}" + }, + "contracts/interfaces/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\r\n\r\npragma solidity ^0.8.20;\r\n\r\nimport {IERC165} from \"./IERC165.sol\";\r\n\r\n/**\r\n * @dev Required interface of an ERC-721 compliant contract.\r\n */\r\ninterface IERC721 is IERC165 {\r\n /**\r\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\r\n */\r\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\r\n\r\n /**\r\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\r\n */\r\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\r\n\r\n /**\r\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\r\n */\r\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\r\n\r\n /**\r\n * @dev Returns the number of tokens in ``owner``'s account.\r\n */\r\n function balanceOf(address owner) external view returns (uint256 balance);\r\n\r\n /**\r\n * @dev Returns the owner of the `tokenId` token.\r\n *\r\n * Requirements:\r\n *\r\n * - `tokenId` must exist.\r\n */\r\n function ownerOf(uint256 tokenId) external view returns (address owner);\r\n\r\n /**\r\n * @dev Safely transfers `tokenId` token from `from` to `to`.\r\n *\r\n * Requirements:\r\n *\r\n * - `from` cannot be the zero address.\r\n * - `to` cannot be the zero address.\r\n * - `tokenId` token must exist and be owned by `from`.\r\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\r\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\r\n * a safe transfer.\r\n *\r\n * Emits a {Transfer} event.\r\n */\r\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\r\n\r\n /**\r\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\r\n * are aware of the ERC-721 protocol to prevent tokens from being forever locked.\r\n *\r\n * Requirements:\r\n *\r\n * - `from` cannot be the zero address.\r\n * - `to` cannot be the zero address.\r\n * - `tokenId` token must exist and be owned by `from`.\r\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\r\n * {setApprovalForAll}.\r\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\r\n * a safe transfer.\r\n *\r\n * Emits a {Transfer} event.\r\n */\r\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\r\n\r\n /**\r\n * @dev Transfers `tokenId` token from `from` to `to`.\r\n *\r\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721\r\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\r\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\r\n *\r\n * Requirements:\r\n *\r\n * - `from` cannot be the zero address.\r\n * - `to` cannot be the zero address.\r\n * - `tokenId` token must be owned by `from`.\r\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\r\n *\r\n * Emits a {Transfer} event.\r\n */\r\n function transferFrom(address from, address to, uint256 tokenId) external;\r\n\r\n /**\r\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\r\n * The approval is cleared when the token is transferred.\r\n *\r\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\r\n *\r\n * Requirements:\r\n *\r\n * - The caller must own the token or be an approved operator.\r\n * - `tokenId` must exist.\r\n *\r\n * Emits an {Approval} event.\r\n */\r\n function approve(address to, uint256 tokenId) external;\r\n\r\n /**\r\n * @dev Approve or remove `operator` as an operator for the caller.\r\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\r\n *\r\n * Requirements:\r\n *\r\n * - The `operator` cannot be the address zero.\r\n *\r\n * Emits an {ApprovalForAll} event.\r\n */\r\n function setApprovalForAll(address operator, bool approved) external;\r\n\r\n /**\r\n * @dev Returns the account approved for `tokenId` token.\r\n *\r\n * Requirements:\r\n *\r\n * - `tokenId` must exist.\r\n */\r\n function getApproved(uint256 tokenId) external view returns (address operator);\r\n\r\n /**\r\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\r\n *\r\n * See {setApprovalForAll}\r\n */\r\n function isApprovedForAll(address owner, address operator) external view returns (bool);\r\n}" + }, + "contracts/interfaces/INFTGatedEvent.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.17;\r\n\r\ninterface INFTGatedEventManager {\r\n // Event creation: Only the owner can create an event\r\n function createEvent(\r\n string memory _eventName,\r\n uint256 _eventDate,\r\n address _nftRequired,\r\n uint256 _maxCapacity\r\n ) external;\r\n\r\n // Register for an event: Verifies NFT ownership\r\n function registerForEvent(uint256 _eventId) external;\r\n\r\n // Get event details by ID\r\n function getEventDetails(\r\n uint256 _eventId\r\n )\r\n external\r\n view\r\n returns (string memory, uint256, address, uint256, uint256, bool);\r\n\r\n // Toggle event status (activate/deactivate)\r\n function updateEventStatus(uint256 _eventId, bool _isActive) external;\r\n\r\n // Check if a user is registered for an event\r\n function isUserRegistered(\r\n uint256 _eventId,\r\n address _user\r\n ) external view returns (bool);\r\n}\r\n" + }, + "contracts/NFTGatedEventManager.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.17;\r\n\r\nimport {IERC721} from \"./interfaces/IERC721.sol\";\r\nimport {IERC165} from \"./interfaces/IERC165.sol\";\r\n\r\ncontract NFTGatedEventManager {\r\n struct Event {\r\n string eventName; // Name of the event\r\n uint256 eventDate; // Event date (timestamp)\r\n address nftRequired; // NFT address required for this event\r\n bool isActive; // Event status\r\n uint256 maxCapacity; // Maximum number of participants allowed\r\n uint256 registeredCount; // Current number of participants\r\n mapping(address => bool) isRegistered; // Tracks users who have registered\r\n }\r\n\r\n uint256 public eventIdCounter; // Unique ID counter for events\r\n mapping(uint256 => Event) public events; // Maps event ID to Event struct\r\n address public owner; // Contract owner for event management\r\n\r\n modifier onlyOwner() {\r\n require(\r\n msg.sender == owner,\r\n \"Only the contract owner can call this function.\"\r\n );\r\n _;\r\n }\r\n\r\n event EventCreated(\r\n uint256 eventId,\r\n string eventName,\r\n uint256 eventDate,\r\n address nftRequired,\r\n uint256 maxCapacity\r\n );\r\n event UserRegistered(uint256 eventId, address user);\r\n event EventStatusUpdated(uint256 eventId, bool newStatus);\r\n\r\n constructor() {\r\n owner = msg.sender; // Set the contract deployer as the owner\r\n }\r\n\r\n // Event creation: Only the owner can create an event\r\n function createEvent(\r\n string memory _eventName,\r\n uint256 _eventDate,\r\n address _nftRequired,\r\n uint256 _maxCapacity\r\n ) public onlyOwner {\r\n require(\r\n _eventDate > block.timestamp,\r\n \"Event date must be in the future.\"\r\n );\r\n require(_maxCapacity > 0, \"Max capacity must be greater than zero.\");\r\n\r\n // Check if the require nft address is a contract\r\n uint32 size;\r\n assembly {\r\n size := extcodesize(_nftRequired)\r\n }\r\n require(size > 0, \"Required NFT address is not a contract\");\r\n\r\n // Check if the nft contract supports ERC721 interface\r\n require(\r\n IERC165(_nftRequired).supportsInterface(type(IERC721).interfaceId),\r\n \"Required NFT Address is not an ERC721 contract\"\r\n );\r\n\r\n Event storage newEvent = events[eventIdCounter];\r\n newEvent.eventName = _eventName;\r\n newEvent.eventDate = _eventDate;\r\n newEvent.nftRequired = _nftRequired;\r\n newEvent.maxCapacity = _maxCapacity;\r\n newEvent.isActive = true;\r\n\r\n emit EventCreated(\r\n eventIdCounter,\r\n _eventName,\r\n _eventDate,\r\n _nftRequired,\r\n _maxCapacity\r\n );\r\n\r\n eventIdCounter++; // Increment event ID counter for the next event\r\n }\r\n\r\n // Register for an event: Verifies NFT ownership\r\n function registerForEvent(uint256 _eventId) external {\r\n Event storage currentEvent = events[_eventId];\r\n require(currentEvent.isActive, \"Event is not active.\");\r\n require(\r\n block.timestamp < currentEvent.eventDate,\r\n \"Event registration has closed.\"\r\n );\r\n require(\r\n currentEvent.registeredCount < currentEvent.maxCapacity,\r\n \"Event is fully booked.\"\r\n );\r\n require(\r\n !currentEvent.isRegistered[msg.sender],\r\n \"You are already registered for this event.\"\r\n );\r\n require(\r\n IERC721(currentEvent.nftRequired).balanceOf(msg.sender) > 0,\r\n \"You do not own the required NFT.\"\r\n );\r\n\r\n // Register the user\r\n currentEvent.isRegistered[msg.sender] = true;\r\n currentEvent.registeredCount++;\r\n\r\n emit UserRegistered(_eventId, msg.sender);\r\n }\r\n\r\n // Get event details by ID\r\n function getEventDetails(\r\n uint256 _eventId\r\n )\r\n external\r\n view\r\n returns (string memory, uint256, address, uint256, uint256, bool)\r\n {\r\n Event storage currentEvent = events[_eventId];\r\n return (\r\n currentEvent.eventName,\r\n currentEvent.eventDate,\r\n currentEvent.nftRequired,\r\n currentEvent.maxCapacity,\r\n currentEvent.registeredCount,\r\n currentEvent.isActive\r\n );\r\n }\r\n\r\n // Toggle event status (activate/deactivate)\r\n function updateEventStatus(\r\n uint256 _eventId,\r\n bool _isActive\r\n ) external onlyOwner {\r\n Event storage currentEvent = events[_eventId];\r\n currentEvent.isActive = _isActive;\r\n\r\n emit EventStatusUpdated(_eventId, _isActive);\r\n }\r\n\r\n // Check if a user is registered for an event\r\n function isUserRegistered(\r\n uint256 _eventId,\r\n address _user\r\n ) external view returns (bool) {\r\n return events[_eventId].isRegistered[_user];\r\n }\r\n}\r\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 1644 + ], + "Ownable": [ + 147 + ] + }, + "id": 148, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 148, + "sourceUnit": 1645, + "src": "128:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "136:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5, + "name": "Context", + "nameLocations": [ + "692:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1644, + "src": "692:7:0" + }, + "id": 6, + "nodeType": "InheritanceSpecifier", + "src": "692:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4, + "nodeType": "StructuredDocumentation", + "src": "175:487:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 147, + "linearizedBaseContracts": [ + 147, + 1644 + ], + "name": "Ownable", + "nameLocation": "681:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "706:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 9, + "nodeType": "StructuredDocumentation", + "src": "735:85:0", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 13, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "858:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:0" + }, + "src": "825:50:0" + }, + { + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "881:82:0", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 18, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "994:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:0" + }, + "src": "968:41:0" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 24, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1042:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1073:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:0" + }, + "src": "1015:84:0" + }, + { + "body": { + "id": 49, + "nodeType": "Block", + "src": "1259:153:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1273:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:0", + "typeDescriptions": {} + } + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44, + "nodeType": "IfStatement", + "src": "1269:95:0", + "trueBody": { + "id": 43, + "nodeType": "Block", + "src": "1301:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:0", + "typeDescriptions": {} + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 36, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "1322:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 42, + "nodeType": "RevertStatement", + "src": "1315:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 46, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1392:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "1373:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 48, + "nodeType": "ExpressionStatement", + "src": "1373:32:0" + } + ] + }, + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "1105:115:0", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 50, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:0", + "nodeType": "VariableDeclaration", + "scope": 50, + "src": "1237:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:0" + }, + "scope": 147, + "src": "1225:187:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "1521:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 53, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "1531:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "1531:13:0" + }, + { + "id": 56, + "nodeType": "PlaceholderStatement", + "src": "1554:1:0" + } + ] + }, + "documentation": { + "id": 51, + "nodeType": "StructuredDocumentation", + "src": "1418:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 58, + "name": "onlyOwner", + "nameLocation": "1509:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:0" + }, + "src": "1500:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 66, + "nodeType": "Block", + "src": "1693:30:0", + "statements": [ + { + "expression": { + "id": 64, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1710:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 63, + "id": 65, + "nodeType": "Return", + "src": "1703:13:0" + } + ] + }, + "documentation": { + "id": 59, + "nodeType": "StructuredDocumentation", + "src": "1568:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 67, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:0" + }, + "returnParameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "1684:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:0" + }, + "scope": 147, + "src": "1638:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 83, + "nodeType": "Block", + "src": "1841:117:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 71, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1855:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 73, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "1866:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "IfStatement", + "src": "1851:101:0", + "trueBody": { + "id": 81, + "nodeType": "Block", + "src": "1880:72:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 77, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "1928:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 76, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "1901:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 80, + "nodeType": "RevertStatement", + "src": "1894:47:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 68, + "nodeType": "StructuredDocumentation", + "src": "1729:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 84, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:0" + }, + "scope": 147, + "src": "1796:162:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 97, + "nodeType": "Block", + "src": "2347:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 91, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:0", + "typeDescriptions": {} + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 90, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2357:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "2357:30:0" + } + ] + }, + "documentation": { + "id": 85, + "nodeType": "StructuredDocumentation", + "src": "1964:324:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 98, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 88, + "kind": "modifierInvocation", + "modifierName": { + "id": 87, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2337:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:0" + }, + "returnParameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:0" + }, + "scope": 147, + "src": "2293:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 125, + "nodeType": "Block", + "src": "2613:145:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 106, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2627:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:0", + "typeDescriptions": {} + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 120, + "nodeType": "IfStatement", + "src": "2623:91:0", + "trueBody": { + "id": 119, + "nodeType": "Block", + "src": "2651:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:0", + "typeDescriptions": {} + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 112, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "2672:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 118, + "nodeType": "RevertStatement", + "src": "2665:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 122, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2742:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 121, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2723:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "2723:28:0" + } + ] + }, + "documentation": { + "id": 99, + "nodeType": "StructuredDocumentation", + "src": "2400:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 104, + "kind": "modifierInvocation", + "modifierName": { + "id": 103, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2603:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:0", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "2570:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:0" + }, + "returnParameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:0" + }, + "scope": 147, + "src": "2543:215:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "2975:124:0", + "statements": [ + { + "assignments": [ + 133 + ], + "declarations": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:0", + "nodeType": "VariableDeclaration", + "scope": 145, + "src": "2985:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 135, + "initialValue": { + "id": 134, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3004:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:0" + }, + { + "expression": { + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 136, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 137, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3020:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 141, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "3073:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 142, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3083:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 140, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 144, + "nodeType": "EmitStatement", + "src": "3047:45:0" + } + ] + }, + "documentation": { + "id": 127, + "nodeType": "StructuredDocumentation", + "src": "2764:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 146, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "2940:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:0" + }, + "returnParameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:0" + }, + "scope": 147, + "src": "2912:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 148, + "src": "663:2438:0", + "usedErrors": [ + 13, + 18 + ], + "usedEvents": [ + 24 + ] + } + ], + "src": "102:3000:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/interfaces/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ] + }, + "id": 152, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 149, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../utils/introspection/IERC165.sol", + "id": 151, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 152, + "sourceUnit": 1936, + "src": "132:59:1", + "symbolAliases": [ + { + "foreign": { + "id": 150, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "140:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "106:86:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC4906.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ], + "IERC4906": [ + 175 + ], + "IERC721": [ + 1442 + ] + }, + "id": 176, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 153, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:2" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "file": "./IERC165.sol", + "id": 155, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 176, + "sourceUnit": 152, + "src": "133:38:2", + "symbolAliases": [ + { + "foreign": { + "id": 154, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "141:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC721.sol", + "file": "./IERC721.sol", + "id": 157, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 176, + "sourceUnit": 180, + "src": "172:38:2", + "symbolAliases": [ + { + "foreign": { + "id": 156, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "180:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 159, + "name": "IERC165", + "nameLocations": [ + "279:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "279:7:2" + }, + "id": 160, + "nodeType": "InheritanceSpecifier", + "src": "279:7:2" + }, + { + "baseName": { + "id": 161, + "name": "IERC721", + "nameLocations": [ + "288:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "288:7:2" + }, + "id": 162, + "nodeType": "InheritanceSpecifier", + "src": "288:7:2" + } + ], + "canonicalName": "IERC4906", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 158, + "nodeType": "StructuredDocumentation", + "src": "212:45:2", + "text": "@title EIP-721 Metadata Update Extension" + }, + "fullyImplemented": false, + "id": 175, + "linearizedBaseContracts": [ + 175, + 1442, + 1935 + ], + "name": "IERC4906", + "nameLocation": "267:8:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 163, + "nodeType": "StructuredDocumentation", + "src": "302:201:2", + "text": "@dev This event emits when the metadata of a token is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFT." + }, + "eventSelector": "f8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7", + "id": 167, + "name": "MetadataUpdate", + "nameLocation": "514:14:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 165, + "indexed": false, + "mutability": "mutable", + "name": "_tokenId", + "nameLocation": "537:8:2", + "nodeType": "VariableDeclaration", + "scope": 167, + "src": "529:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "529:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "528:18:2" + }, + "src": "508:39:2" + }, + { + "anonymous": false, + "documentation": { + "id": 168, + "nodeType": "StructuredDocumentation", + "src": "553:212:2", + "text": "@dev This event emits when the metadata of a range of tokens is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFTs." + }, + "eventSelector": "6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c", + "id": 174, + "name": "BatchMetadataUpdate", + "nameLocation": "776:19:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "indexed": false, + "mutability": "mutable", + "name": "_fromTokenId", + "nameLocation": "804:12:2", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "796:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "796:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "indexed": false, + "mutability": "mutable", + "name": "_toTokenId", + "nameLocation": "826:10:2", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "818:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "818:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "795:42:2" + }, + "src": "770:68:2" + } + ], + "scope": 176, + "src": "257:583:2", + "usedErrors": [], + "usedEvents": [ + 167, + 174, + 1341, + 1350, + 1359 + ] + } + ], + "src": "107:734:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/interfaces/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC721.sol", + "exportedSymbols": { + "IERC721": [ + 1442 + ] + }, + "id": 180, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 177, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../token/ERC721/IERC721.sol", + "id": 179, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 180, + "sourceUnit": 1443, + "src": "132:52:3", + "symbolAliases": [ + { + "foreign": { + "id": 178, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "140:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "106:79:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 316 + ], + "IERC20Errors": [ + 221 + ], + "IERC721Errors": [ + 269 + ] + }, + "id": 317, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 181, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 182, + "nodeType": "StructuredDocumentation", + "src": "138:139:4", + "text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens." + }, + "fullyImplemented": true, + "id": 221, + "linearizedBaseContracts": [ + 221 + ], + "name": "IERC20Errors", + "nameLocation": "288:12:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 183, + "nodeType": "StructuredDocumentation", + "src": "307:309:4", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 191, + "name": "ERC20InsufficientBalance", + "nameLocation": "627:24:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "sender", + "nameLocation": "660:6:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "652:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 187, + "mutability": "mutable", + "name": "balance", + "nameLocation": "676:7:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "668:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "needed", + "nameLocation": "693:6:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "685:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "651:49:4" + }, + "src": "621:80:4" + }, + { + "documentation": { + "id": 192, + "nodeType": "StructuredDocumentation", + "src": "707:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 196, + "name": "ERC20InvalidSender", + "nameLocation": "870:18:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "sender", + "nameLocation": "897:6:4", + "nodeType": "VariableDeclaration", + "scope": 196, + "src": "889:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:4" + }, + "src": "864:41:4" + }, + { + "documentation": { + "id": 197, + "nodeType": "StructuredDocumentation", + "src": "911:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 201, + "name": "ERC20InvalidReceiver", + "nameLocation": "1081:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 199, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1110:8:4", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "1102:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1101:18:4" + }, + "src": "1075:45:4" + }, + { + "documentation": { + "id": 202, + "nodeType": "StructuredDocumentation", + "src": "1126:345:4", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 210, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1482:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1517:7:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1509:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 203, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1534:9:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1526:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1526:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1553:6:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1545:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1508:52:4" + }, + "src": "1476:85:4" + }, + { + "documentation": { + "id": 211, + "nodeType": "StructuredDocumentation", + "src": "1567:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 215, + "name": "ERC20InvalidApprover", + "nameLocation": "1752:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 213, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1781:8:4", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "1773:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1773:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1772:18:4" + }, + "src": "1746:45:4" + }, + { + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "1797:195:4", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 220, + "name": "ERC20InvalidSpender", + "nameLocation": "2003:19:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2031:7:4", + "nodeType": "VariableDeclaration", + "scope": 220, + "src": "2023:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2023:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2022:17:4" + }, + "src": "1997:43:4" + } + ], + "scope": 317, + "src": "278:1764:4", + "usedErrors": [ + 191, + 196, + 201, + 210, + 215, + 220 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 222, + "nodeType": "StructuredDocumentation", + "src": "2044:141:4", + "text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens." + }, + "fullyImplemented": true, + "id": 269, + "linearizedBaseContracts": [ + 269 + ], + "name": "IERC721Errors", + "nameLocation": "2196:13:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 223, + "nodeType": "StructuredDocumentation", + "src": "2216:219:4", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 227, + "name": "ERC721InvalidOwner", + "nameLocation": "2446:18:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2473:5:4", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2465:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2465:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2464:15:4" + }, + "src": "2440:40:4" + }, + { + "documentation": { + "id": 228, + "nodeType": "StructuredDocumentation", + "src": "2486:132:4", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 232, + "name": "ERC721NonexistentToken", + "nameLocation": "2629:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2660:7:4", + "nodeType": "VariableDeclaration", + "scope": 232, + "src": "2652:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2651:17:4" + }, + "src": "2623:46:4" + }, + { + "documentation": { + "id": 233, + "nodeType": "StructuredDocumentation", + "src": "2675:289:4", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 241, + "name": "ERC721IncorrectOwner", + "nameLocation": "2975:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3004:6:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "2996:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3020:7:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3012:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3037:5:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3029:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2995:48:4" + }, + "src": "2969:75:4" + }, + { + "documentation": { + "id": 242, + "nodeType": "StructuredDocumentation", + "src": "3050:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 246, + "name": "ERC721InvalidSender", + "nameLocation": "3213:19:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 244, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3241:6:4", + "nodeType": "VariableDeclaration", + "scope": 246, + "src": "3233:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:16:4" + }, + "src": "3207:42:4" + }, + { + "documentation": { + "id": 247, + "nodeType": "StructuredDocumentation", + "src": "3255:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 251, + "name": "ERC721InvalidReceiver", + "nameLocation": "3425:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3455:8:4", + "nodeType": "VariableDeclaration", + "scope": 251, + "src": "3447:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3446:18:4" + }, + "src": "3419:46:4" + }, + { + "documentation": { + "id": 252, + "nodeType": "StructuredDocumentation", + "src": "3471:247:4", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 258, + "name": "ERC721InsufficientApproval", + "nameLocation": "3729:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 254, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3764:8:4", + "nodeType": "VariableDeclaration", + "scope": 258, + "src": "3756:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3756:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3782:7:4", + "nodeType": "VariableDeclaration", + "scope": 258, + "src": "3774:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3774:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3755:35:4" + }, + "src": "3723:68:4" + }, + { + "documentation": { + "id": 259, + "nodeType": "StructuredDocumentation", + "src": "3797:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 263, + "name": "ERC721InvalidApprover", + "nameLocation": "3982:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 261, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4012:8:4", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "4004:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4004:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:18:4" + }, + "src": "3976:46:4" + }, + { + "documentation": { + "id": 264, + "nodeType": "StructuredDocumentation", + "src": "4028:197:4", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 268, + "name": "ERC721InvalidOperator", + "nameLocation": "4236:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4266:8:4", + "nodeType": "VariableDeclaration", + "scope": 268, + "src": "4258:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4258:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4257:18:4" + }, + "src": "4230:46:4" + } + ], + "scope": 317, + "src": "2186:2092:4", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 270, + "nodeType": "StructuredDocumentation", + "src": "4280:143:4", + "text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens." + }, + "fullyImplemented": true, + "id": 316, + "linearizedBaseContracts": [ + 316 + ], + "name": "IERC1155Errors", + "nameLocation": "4434:14:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 271, + "nodeType": "StructuredDocumentation", + "src": "4455:361:4", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 281, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4827:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4862:6:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4854:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4854:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 275, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4878:7:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4870:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4870:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 277, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4895:6:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4887:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 279, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4911:7:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4903:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4903:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4853:66:4" + }, + "src": "4821:99:4" + }, + { + "documentation": { + "id": 282, + "nodeType": "StructuredDocumentation", + "src": "4926:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 286, + "name": "ERC1155InvalidSender", + "nameLocation": "5089:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 284, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5118:6:4", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "5110:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 283, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5110:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5109:16:4" + }, + "src": "5083:43:4" + }, + { + "documentation": { + "id": 287, + "nodeType": "StructuredDocumentation", + "src": "5132:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 291, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5302:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5333:8:4", + "nodeType": "VariableDeclaration", + "scope": 291, + "src": "5325:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5325:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5324:18:4" + }, + "src": "5296:47:4" + }, + { + "documentation": { + "id": 292, + "nodeType": "StructuredDocumentation", + "src": "5349:256:4", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 298, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5616:28:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 294, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5653:8:4", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "5645:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5645:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 296, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5671:5:4", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "5663:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5663:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5644:33:4" + }, + "src": "5610:68:4" + }, + { + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "5684:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 303, + "name": "ERC1155InvalidApprover", + "nameLocation": "5869:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5900:8:4", + "nodeType": "VariableDeclaration", + "scope": 303, + "src": "5892:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5892:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5891:18:4" + }, + "src": "5863:47:4" + }, + { + "documentation": { + "id": 304, + "nodeType": "StructuredDocumentation", + "src": "5916:197:4", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 308, + "name": "ERC1155InvalidOperator", + "nameLocation": "6124:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 306, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6155:8:4", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6147:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6147:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6146:18:4" + }, + "src": "6118:47:4" + }, + { + "documentation": { + "id": 309, + "nodeType": "StructuredDocumentation", + "src": "6171:280:4", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 315, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6462:25:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6496:9:4", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "6488:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6488:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6515:12:4", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "6507:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6507:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6487:41:4" + }, + "src": "6456:73:4" + } + ], + "scope": 317, + "src": "4424:2107:4", + "usedErrors": [ + 281, + 286, + 291, + 298, + 303, + 308, + 315 + ], + "usedEvents": [] + } + ], + "src": "112:6420:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "exportedSymbols": { + "Context": [ + 1644 + ], + "ERC165": [ + 1923 + ], + "ERC721": [ + 1325 + ], + "IERC165": [ + 1935 + ], + "IERC721": [ + 1442 + ], + "IERC721Errors": [ + 269 + ], + "IERC721Metadata": [ + 1614 + ], + "IERC721Receiver": [ + 1460 + ], + "Strings": [ + 1899 + ] + }, + "id": 1326, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 318, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "./IERC721.sol", + "id": 320, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1443, + "src": "133:38:5", + "symbolAliases": [ + { + "foreign": { + "id": 319, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "141:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "./IERC721Receiver.sol", + "id": 322, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1461, + "src": "172:54:5", + "symbolAliases": [ + { + "foreign": { + "id": 321, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "180:15:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "file": "./extensions/IERC721Metadata.sol", + "id": 324, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1615, + "src": "227:65:5", + "symbolAliases": [ + { + "foreign": { + "id": 323, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1614, + "src": "235:15:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 326, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1645, + "src": "293:48:5", + "symbolAliases": [ + { + "foreign": { + "id": 325, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "301:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../utils/Strings.sol", + "id": 328, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1900, + "src": "342:48:5", + "symbolAliases": [ + { + "foreign": { + "id": 327, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "350:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../utils/introspection/ERC165.sol", + "id": 331, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1924, + "src": "391:69:5", + "symbolAliases": [ + { + "foreign": { + "id": 329, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "399:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 330, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1923, + "src": "408:6:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 333, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 317, + "src": "461:66:5", + "symbolAliases": [ + { + "foreign": { + "id": 332, + "name": "IERC721Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "469:13:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 335, + "name": "Context", + "nameLocations": [ + "804:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1644, + "src": "804:7:5" + }, + "id": 336, + "nodeType": "InheritanceSpecifier", + "src": "804:7:5" + }, + { + "baseName": { + "id": 337, + "name": "ERC165", + "nameLocations": [ + "813:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1923, + "src": "813:6:5" + }, + "id": 338, + "nodeType": "InheritanceSpecifier", + "src": "813:6:5" + }, + { + "baseName": { + "id": 339, + "name": "IERC721", + "nameLocations": [ + "821:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "821:7:5" + }, + "id": 340, + "nodeType": "InheritanceSpecifier", + "src": "821:7:5" + }, + { + "baseName": { + "id": 341, + "name": "IERC721Metadata", + "nameLocations": [ + "830:15:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1614, + "src": "830:15:5" + }, + "id": 342, + "nodeType": "InheritanceSpecifier", + "src": "830:15:5" + }, + { + "baseName": { + "id": 343, + "name": "IERC721Errors", + "nameLocations": [ + "847:13:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 269, + "src": "847:13:5" + }, + "id": 344, + "nodeType": "InheritanceSpecifier", + "src": "847:13:5" + } + ], + "canonicalName": "ERC721", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 334, + "nodeType": "StructuredDocumentation", + "src": "529:246:5", + "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." + }, + "fullyImplemented": true, + "id": 1325, + "linearizedBaseContracts": [ + 1325, + 269, + 1614, + 1442, + 1923, + 1935, + 1644 + ], + "name": "ERC721", + "nameLocation": "794:6:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 347, + "libraryName": { + "id": 345, + "name": "Strings", + "nameLocations": [ + "873:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1899, + "src": "873:7:5" + }, + "nodeType": "UsingForDirective", + "src": "867:26:5", + "typeName": { + "id": 346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "885:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "_name", + "nameLocation": "932:5:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "917:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 348, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "917:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "979:7:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "964:22:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 350, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "964:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 355, + "mutability": "mutable", + "name": "_owners", + "nameLocation": "1037:7:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "993:51:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 354, + "keyName": "tokenId", + "keyNameLocation": "1009:7:5", + "keyType": { + "id": 352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1001:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "993:35:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1020:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 359, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1093:9:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1051:51:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 358, + "keyName": "owner", + "keyNameLocation": "1067:5:5", + "keyType": { + "id": 356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1059:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1051:33:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 363, + "mutability": "mutable", + "name": "_tokenApprovals", + "nameLocation": "1153:15:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1109:59:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 362, + "keyName": "tokenId", + "keyNameLocation": "1125:7:5", + "keyType": { + "id": 360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1109:35:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1136:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1243:18:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1175:86:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 368, + "keyName": "owner", + "keyNameLocation": "1191:5:5", + "keyType": { + "id": 364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1183:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1175:59:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 367, + "keyName": "operator", + "keyNameLocation": "1216:8:5", + "keyType": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1208:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1200:33:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 366, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1228:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 385, + "nodeType": "Block", + "src": "1437:57:5", + "statements": [ + { + "expression": { + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 377, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "1447:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 378, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 372, + "src": "1455:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1447:13:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 380, + "nodeType": "ExpressionStatement", + "src": "1447:13:5" + }, + { + "expression": { + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 381, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "1470:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 382, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 374, + "src": "1480:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1470:17:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 384, + "nodeType": "ExpressionStatement", + "src": "1470:17:5" + } + ] + }, + "documentation": { + "id": 370, + "nodeType": "StructuredDocumentation", + "src": "1268:108:5", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 386, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1407:5:5", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1393:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 371, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1393:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1428:7:5", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1414:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 373, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1414:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1392:44:5" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "1437:0:5" + }, + "scope": 1325, + "src": "1381:113:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1922, + 1934 + ], + "body": { + "id": 416, + "nodeType": "Block", + "src": "1669:192:5", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 397, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1698:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 399, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "1718:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$1442_$", + "typeString": "type(contract IERC721)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721_$1442_$", + "typeString": "type(contract IERC721)" + } + ], + "id": 398, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1713:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1713:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$1442", + "typeString": "type(contract IERC721)" + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1727:11:5", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1713:25:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1698:40:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 403, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1754:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 405, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1614, + "src": "1774:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$1614_$", + "typeString": "type(contract IERC721Metadata)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$1614_$", + "typeString": "type(contract IERC721Metadata)" + } + ], + "id": 404, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1769:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1769:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$1614", + "typeString": "type(contract IERC721Metadata)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1791:11:5", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1769:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1754:48:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1698:104:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 412, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1842:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 410, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1818:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721_$1325_$", + "typeString": "type(contract super ERC721)" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1824:17:5", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1922, + "src": "1818:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1818:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1698:156:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 396, + "id": 415, + "nodeType": "Return", + "src": "1679:175:5" + } + ] + }, + "documentation": { + "id": 387, + "nodeType": "StructuredDocumentation", + "src": "1500:56:5", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 417, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1570:17:5", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 393, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 391, + "name": "ERC165", + "nameLocations": [ + "1637:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1923, + "src": "1637:6:5" + }, + { + "id": 392, + "name": "IERC165", + "nameLocations": [ + "1645:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "1645:7:5" + } + ], + "src": "1628:25:5" + }, + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1595:11:5", + "nodeType": "VariableDeclaration", + "scope": 417, + "src": "1588:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 388, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1588:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1587:20:5" + }, + "returnParameters": { + "id": 396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 395, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 417, + "src": "1663:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1663:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1662:6:5" + }, + "scope": 1325, + "src": "1561:300:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1367 + ], + "body": { + "id": 444, + "nodeType": "Block", + "src": "1992:136:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 425, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2006:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2023:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2015:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2015:7:5", + "typeDescriptions": {} + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2015:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2006:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 439, + "nodeType": "IfStatement", + "src": "2002:87:5", + "trueBody": { + "id": 438, + "nodeType": "Block", + "src": "2027:62:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2075:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2067:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:5", + "typeDescriptions": {} + } + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2067:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 431, + "name": "ERC721InvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "2048:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2048:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "RevertStatement", + "src": "2041:37:5" + } + ] + } + }, + { + "expression": { + "baseExpression": { + "id": 440, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "2105:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 442, + "indexExpression": { + "id": 441, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2115:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2105:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 424, + "id": 443, + "nodeType": "Return", + "src": "2098:23:5" + } + ] + }, + "documentation": { + "id": 418, + "nodeType": "StructuredDocumentation", + "src": "1867:48:5", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 445, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1929:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1947:5:5", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "1939:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1939:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1938:15:5" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "1983:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1983:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1982:9:5" + }, + "scope": 1325, + "src": "1920:208:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1375 + ], + "body": { + "id": 457, + "nodeType": "Block", + "src": "2257:46:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 454, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "2288:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 453, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "2274:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2274:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 452, + "id": 456, + "nodeType": "Return", + "src": "2267:29:5" + } + ] + }, + "documentation": { + "id": 446, + "nodeType": "StructuredDocumentation", + "src": "2134:46:5", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "2194:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2210:7:5", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "2202:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2202:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2201:17:5" + }, + "returnParameters": { + "id": 452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 451, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "2248:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2248:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2247:9:5" + }, + "scope": 1325, + "src": "2185:118:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1599 + ], + "body": { + "id": 466, + "nodeType": "Block", + "src": "2425:29:5", + "statements": [ + { + "expression": { + "id": 464, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "2442:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 463, + "id": 465, + "nodeType": "Return", + "src": "2435:12:5" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "2309:51:5", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 467, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2374:4:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "2378:2:5" + }, + "returnParameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 467, + "src": "2410:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 461, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2410:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2409:15:5" + }, + "scope": 1325, + "src": "2365:89:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1605 + ], + "body": { + "id": 475, + "nodeType": "Block", + "src": "2580:31:5", + "statements": [ + { + "expression": { + "id": 473, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "2597:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 472, + "id": 474, + "nodeType": "Return", + "src": "2590:14:5" + } + ] + }, + "documentation": { + "id": 468, + "nodeType": "StructuredDocumentation", + "src": "2460:53:5", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2527:6:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [], + "src": "2533:2:5" + }, + "returnParameters": { + "id": 472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 471, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "2565:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2565:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2564:15:5" + }, + "scope": 1325, + "src": "2518:93:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1613 + ], + "body": { + "id": 511, + "nodeType": "Block", + "src": "2756:176:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 485, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "2780:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 484, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "2766:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2766:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 487, + "nodeType": "ExpressionStatement", + "src": "2766:22:5" + }, + { + "assignments": [ + 489 + ], + "declarations": [ + { + "constant": false, + "id": 489, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "2813:7:5", + "nodeType": "VariableDeclaration", + "scope": 511, + "src": "2799:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 488, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2799:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 492, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 490, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "2823:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2823:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2799:34:5" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 495, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "2856:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2850:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 493, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2850:5:5", + "typeDescriptions": {} + } + }, + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2850:14:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2865:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2850:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2874:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2850:25:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2923:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2850:75:5", + "trueExpression": { + "arguments": [ + { + "id": 503, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "2892:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 504, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "2901:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2909:8:5", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 1712, + "src": "2901:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2901:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2878:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 500, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2878:6:5", + "typeDescriptions": {} + } + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2885:6:5", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2878:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2878:42:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 483, + "id": 510, + "nodeType": "Return", + "src": "2843:82:5" + } + ] + }, + "documentation": { + "id": 477, + "nodeType": "StructuredDocumentation", + "src": "2617:55:5", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "2686:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 479, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2703:7:5", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "2695:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2695:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2694:17:5" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "2741:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 481, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2741:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2740:15:5" + }, + "scope": 1325, + "src": "2677:255:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 520, + "nodeType": "Block", + "src": "3240:26:5", + "statements": [ + { + "expression": { + "hexValue": "", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3257:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 517, + "id": 519, + "nodeType": "Return", + "src": "3250:9:5" + } + ] + }, + "documentation": { + "id": 513, + "nodeType": "StructuredDocumentation", + "src": "2938:231:5", + "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts." + }, + "id": 521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "3183:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "3191:2:5" + }, + "returnParameters": { + "id": 517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 521, + "src": "3225:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 515, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3225:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3224:15:5" + }, + "scope": 1325, + "src": "3174:92:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1415 + ], + "body": { + "id": 536, + "nodeType": "Block", + "src": "3384:52:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 530, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3403:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 531, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 526, + "src": "3407:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 532, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "3416:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 529, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1128, + "src": "3394:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3394:35:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "3394:35:5" + } + ] + }, + "documentation": { + "id": 522, + "nodeType": "StructuredDocumentation", + "src": "3272:46:5", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 537, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "3332:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 524, + "mutability": "mutable", + "name": "to", + "nameLocation": "3348:2:5", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "3340:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3340:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 526, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3360:7:5", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "3352:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3339:29:5" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [], + "src": "3384:0:5" + }, + "scope": 1325, + "src": "3323:113:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1431 + ], + "body": { + "id": 553, + "nodeType": "Block", + "src": "3573:78:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 546, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3597:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 545, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "3583:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3583:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "3583:22:5" + }, + { + "expression": { + "arguments": [ + { + "id": 550, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3636:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 549, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "3623:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3623:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 544, + "id": 552, + "nodeType": "Return", + "src": "3616:28:5" + } + ] + }, + "documentation": { + "id": 538, + "nodeType": "StructuredDocumentation", + "src": "3442:50:5", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 554, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "3506:11:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 540, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3526:7:5", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "3518:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3518:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3517:17:5" + }, + "returnParameters": { + "id": 544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 543, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "3564:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3564:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3563:9:5" + }, + "scope": 1325, + "src": "3497:154:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1423 + ], + "body": { + "id": 569, + "nodeType": "Block", + "src": "3793:69:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 563, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "3822:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3822:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 565, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "3836:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 566, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "3846:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 562, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1231, + "src": "3803:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3803:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 568, + "nodeType": "ExpressionStatement", + "src": "3803:52:5" + } + ] + }, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "3657:56:5", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 570, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "3727:17:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3753:8:5", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3745:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3745:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "mutability": "mutable", + "name": "approved", + "nameLocation": "3768:8:5", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3763:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 558, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3763:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3744:33:5" + }, + "returnParameters": { + "id": 561, + "nodeType": "ParameterList", + "parameters": [], + "src": "3793:0:5" + }, + "scope": 1325, + "src": "3718:144:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1441 + ], + "body": { + "id": 586, + "nodeType": "Block", + "src": "4022:59:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 580, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "4039:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 582, + "indexExpression": { + "id": 581, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "4058:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:25:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 584, + "indexExpression": { + "id": 583, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "4065:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 579, + "id": 585, + "nodeType": "Return", + "src": "4032:42:5" + } + ] + }, + "documentation": { + "id": 571, + "nodeType": "StructuredDocumentation", + "src": "3868:55:5", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 587, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "3937:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3962:5:5", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "3954:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3954:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3977:8:5", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "3969:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3969:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3953:33:5" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "4016:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 577, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4016:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4015:6:5" + }, + "scope": 1325, + "src": "3928:153:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1407 + ], + "body": { + "id": 632, + "nodeType": "Block", + "src": "4223:498:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 597, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4237:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4251:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4243:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4243:7:5", + "typeDescriptions": {} + } + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4243:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4237:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 611, + "nodeType": "IfStatement", + "src": "4233:87:5", + "trueBody": { + "id": 610, + "nodeType": "Block", + "src": "4255:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4306:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4298:7:5", + "typeDescriptions": {} + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4298:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 603, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "4276:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4276:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 609, + "nodeType": "RevertStatement", + "src": "4269:40:5" + } + ] + } + }, + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "4546:13:5", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "4538:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4538:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 620, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4570:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "4574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 617, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "4583:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "4562:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4562:34:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4538:58:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 621, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "4610:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 622, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "4627:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4610:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 631, + "nodeType": "IfStatement", + "src": "4606:109:5", + "trueBody": { + "id": 630, + "nodeType": "Block", + "src": "4633:82:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 625, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "4675:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 626, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "4681:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 627, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "4690:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 624, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "4654:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address) pure" + } + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4654:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 629, + "nodeType": "RevertStatement", + "src": "4647:57:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 588, + "nodeType": "StructuredDocumentation", + "src": "4087:51:5", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 633, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4152:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "from", + "nameLocation": "4173:4:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4165:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4165:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "mutability": "mutable", + "name": "to", + "nameLocation": "4187:2:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4179:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4179:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4199:7:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4191:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4191:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4164:43:5" + }, + "returnParameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [], + "src": "4223:0:5" + }, + "scope": 1325, + "src": "4143:578:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1397 + ], + "body": { + "id": 650, + "nodeType": "Block", + "src": "4863:56:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 644, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "4890:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 645, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "4896:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 646, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "4900:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4909:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 643, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 651, + 677 + ], + "referencedDeclaration": 677, + "src": "4873:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4873:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 649, + "nodeType": "ExpressionStatement", + "src": "4873:39:5" + } + ] + }, + "documentation": { + "id": 634, + "nodeType": "StructuredDocumentation", + "src": "4727:55:5", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 651, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "4796:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 636, + "mutability": "mutable", + "name": "from", + "nameLocation": "4821:4:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4813:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4813:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 638, + "mutability": "mutable", + "name": "to", + "nameLocation": "4835:2:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4827:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4827:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4847:7:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4839:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4839:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4812:43:5" + }, + "returnParameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [], + "src": "4863:0:5" + }, + "scope": 1325, + "src": "4787:132:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1387 + ], + "body": { + "id": 676, + "nodeType": "Block", + "src": "5088:105:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 664, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "5111:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 665, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "5117:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 666, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "5121:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 663, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "5098:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5098:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 668, + "nodeType": "ExpressionStatement", + "src": "5098:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 670, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "5162:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 671, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "5168:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 672, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "5172:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 673, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "5181:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 669, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "5139:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5139:47:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 675, + "nodeType": "ExpressionStatement", + "src": "5139:47:5" + } + ] + }, + "documentation": { + "id": 652, + "nodeType": "StructuredDocumentation", + "src": "4925:55:5", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 677, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "4994:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 654, + "mutability": "mutable", + "name": "from", + "nameLocation": "5019:4:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5011:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5011:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 656, + "mutability": "mutable", + "name": "to", + "nameLocation": "5033:2:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5025:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 655, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5025:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5045:7:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5037:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5037:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "mutability": "mutable", + "name": "data", + "nameLocation": "5067:4:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5054:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 659, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5054:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5010:62:5" + }, + "returnParameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [], + "src": "5088:0:5" + }, + "scope": 1325, + "src": "4985:208:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 689, + "nodeType": "Block", + "src": "5782:40:5", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 685, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "5799:7:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 687, + "indexExpression": { + "id": 686, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "5807:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5799:16:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 684, + "id": 688, + "nodeType": "Return", + "src": "5792:23:5" + } + ] + }, + "documentation": { + "id": 678, + "nodeType": "StructuredDocumentation", + "src": "5199:503:5", + "text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`." + }, + "id": 690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ownerOf", + "nameLocation": "5716:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 680, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5733:7:5", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "5725:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5725:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5724:17:5" + }, + "returnParameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "5773:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5773:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5772:9:5" + }, + "scope": 1325, + "src": "5707:115:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 702, + "nodeType": "Block", + "src": "6017:48:5", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 698, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "6034:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 700, + "indexExpression": { + "id": 699, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "6050:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6034:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 697, + "id": 701, + "nodeType": "Return", + "src": "6027:31:5" + } + ] + }, + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "5828:105:5", + "text": " @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted." + }, + "id": 703, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getApproved", + "nameLocation": "5947:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5968:7:5", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "5960:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5960:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5959:17:5" + }, + "returnParameters": { + "id": 697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 696, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "6008:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 695, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6008:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6007:9:5" + }, + "scope": 1325, + "src": "5938:127:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 738, + "nodeType": "Block", + "src": "6485:163:5", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 715, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6514:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6533:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6525:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6525:7:5", + "typeDescriptions": {} + } + }, + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6525:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6514:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 721, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "6552:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 722, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6561:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6552:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 725, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "6589:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 726, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6596:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 724, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "6572:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6572:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6552:52:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 730, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "6621:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 729, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "6608:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6608:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 732, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6633:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6608:32:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6552:88:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 735, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6551:90:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6514:127:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 714, + "id": 737, + "nodeType": "Return", + "src": "6495:146:5" + } + ] + }, + "documentation": { + "id": 704, + "nodeType": "StructuredDocumentation", + "src": "6071:300:5", + "text": " @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 739, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isAuthorized", + "nameLocation": "6385:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6407:5:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6399:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 705, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6399:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "spender", + "nameLocation": "6422:7:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6414:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6414:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6439:7:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6431:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6431:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6398:49:5" + }, + "returnParameters": { + "id": 714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 713, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6479:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6479:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6478:6:5" + }, + "scope": 1325, + "src": "6376:272:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "7179:271:5", + "statements": [ + { + "condition": { + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7193:39:5", + "subExpression": { + "arguments": [ + { + "id": 750, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 742, + "src": "7208:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 751, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "7215:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 752, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7224:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 749, + "name": "_isAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 739, + "src": "7194:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) view returns (bool)" + } + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7194:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 774, + "nodeType": "IfStatement", + "src": "7189:255:5", + "trueBody": { + "id": 773, + "nodeType": "Block", + "src": "7234:210:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 755, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 742, + "src": "7252:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7269:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7261:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7261:7:5", + "typeDescriptions": {} + } + }, + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7261:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7252:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 771, + "nodeType": "Block", + "src": "7350:84:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "7402:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 768, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7411:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 766, + "name": "ERC721InsufficientApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "7375:26:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) pure" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7375:44:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 770, + "nodeType": "RevertStatement", + "src": "7368:51:5" + } + ] + }, + "id": 772, + "nodeType": "IfStatement", + "src": "7248:186:5", + "trueBody": { + "id": 765, + "nodeType": "Block", + "src": "7273:71:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 762, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7321:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 761, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "7298:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7298:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 764, + "nodeType": "RevertStatement", + "src": "7291:38:5" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 740, + "nodeType": "StructuredDocumentation", + "src": "6654:423:5", + "text": " @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n the `spender` for the specific `tokenId`.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkAuthorized", + "nameLocation": "7091:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "owner", + "nameLocation": "7116:5:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7108:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7108:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 744, + "mutability": "mutable", + "name": "spender", + "nameLocation": "7131:7:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7123:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7148:7:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7140:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7140:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7107:49:5" + }, + "returnParameters": { + "id": 748, + "nodeType": "ParameterList", + "parameters": [], + "src": "7179:0:5" + }, + "scope": 1325, + "src": "7082:368:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 791, + "nodeType": "Block", + "src": "8167:78:5", + "statements": [ + { + "id": 790, + "nodeType": "UncheckedBlock", + "src": "8177:62:5", + "statements": [ + { + "expression": { + "id": 788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 784, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "8201:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 786, + "indexExpression": { + "id": 785, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "8211:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8201:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 787, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "8223:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "8201:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 789, + "nodeType": "ExpressionStatement", + "src": "8201:27:5" + } + ] + } + ] + }, + "documentation": { + "id": 777, + "nodeType": "StructuredDocumentation", + "src": "7456:631:5", + "text": " @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another." + }, + "id": 792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_increaseBalance", + "nameLocation": "8101:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "account", + "nameLocation": "8126:7:5", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "8118:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8118:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 781, + "mutability": "mutable", + "name": "value", + "nameLocation": "8143:5:5", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "8135:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 780, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "8135:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "8117:32:5" + }, + "returnParameters": { + "id": 783, + "nodeType": "ParameterList", + "parameters": [], + "src": "8167:0:5" + }, + "scope": 1325, + "src": "8092:153:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "8933:700:5", + "statements": [ + { + "assignments": [ + 805 + ], + "declarations": [ + { + "constant": false, + "id": 805, + "mutability": "mutable", + "name": "from", + "nameLocation": "8951:4:5", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "8943:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8943:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 809, + "initialValue": { + "arguments": [ + { + "id": 807, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "8967:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 806, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "8958:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8958:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8943:32:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 810, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "9035:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9051:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9043:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 811, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9043:7:5", + "typeDescriptions": {} + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9043:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9035:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 823, + "nodeType": "IfStatement", + "src": "9031:86:5", + "trueBody": { + "id": 822, + "nodeType": "Block", + "src": "9055:62:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 817, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9086:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 818, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "9092:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 819, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9098:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 816, + "name": "_checkAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "9069:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) view" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9069:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "9069:37:5" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 824, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9161:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9177:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9169:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 825, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9169:7:5", + "typeDescriptions": {} + } + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9169:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9161:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 851, + "nodeType": "IfStatement", + "src": "9157:256:5", + "trueBody": { + "id": 850, + "nodeType": "Block", + "src": "9181:232:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9294:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9286:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9286:7:5", + "typeDescriptions": {} + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9286:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 835, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9315:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9307:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9307:7:5", + "typeDescriptions": {} + } + }, + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9307:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "66616c7365", + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9319:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 830, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1194, + "src": "9277:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9277:48:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 842, + "nodeType": "ExpressionStatement", + "src": "9277:48:5" + }, + { + "id": 849, + "nodeType": "UncheckedBlock", + "src": "9340:63:5", + "statements": [ + { + "expression": { + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 843, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "9368:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 845, + "indexExpression": { + "id": 844, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9378:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9368:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9368:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 848, + "nodeType": "ExpressionStatement", + "src": "9368:20:5" + } + ] + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9427:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9441:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 853, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9433:7:5", + "typeDescriptions": {} + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9433:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9427:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 866, + "nodeType": "IfStatement", + "src": "9423:107:5", + "trueBody": { + "id": 865, + "nodeType": "Block", + "src": "9445:85:5", + "statements": [ + { + "id": 864, + "nodeType": "UncheckedBlock", + "src": "9459:61:5", + "statements": [ + { + "expression": { + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 858, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "9487:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 860, + "indexExpression": { + "id": 859, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9497:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9487:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9504:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9487:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 863, + "nodeType": "ExpressionStatement", + "src": "9487:18:5" + } + ] + } + ] + } + }, + { + "expression": { + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 867, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "9540:7:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 869, + "indexExpression": { + "id": 868, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9548:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9540:16:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 870, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9559:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9540:21:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 872, + "nodeType": "ExpressionStatement", + "src": "9540:21:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 874, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9586:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 875, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9592:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 876, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9596:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 873, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "9577:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9577:27:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 878, + "nodeType": "EmitStatement", + "src": "9572:32:5" + }, + { + "expression": { + "id": 879, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9622:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 803, + "id": 880, + "nodeType": "Return", + "src": "9615:11:5" + } + ] + }, + "documentation": { + "id": 793, + "nodeType": "StructuredDocumentation", + "src": "8251:582:5", + "text": " @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}." + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "8847:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 795, + "mutability": "mutable", + "name": "to", + "nameLocation": "8863:2:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8855:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8855:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 797, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8875:7:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8867:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8867:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "auth", + "nameLocation": "8892:4:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8884:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8884:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8854:43:5" + }, + "returnParameters": { + "id": 803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 802, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8924:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8924:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8923:9:5" + }, + "scope": 1325, + "src": "8838:795:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 931, + "nodeType": "Block", + "src": "10008:274:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 890, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "10022:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10036:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10028:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10028:7:5", + "typeDescriptions": {} + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10028:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10022:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 904, + "nodeType": "IfStatement", + "src": "10018:87:5", + "trueBody": { + "id": 903, + "nodeType": "Block", + "src": "10040:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10091:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10083:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 897, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10083:7:5", + "typeDescriptions": {} + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10083:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 896, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "10061:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10061:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 902, + "nodeType": "RevertStatement", + "src": "10054:40:5" + } + ] + } + }, + { + "assignments": [ + 906 + ], + "declarations": [ + { + "constant": false, + "id": 906, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "10122:13:5", + "nodeType": "VariableDeclaration", + "scope": 931, + "src": "10114:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10114:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 915, + "initialValue": { + "arguments": [ + { + "id": 908, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "10146:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 909, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "10150:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10159:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10159:7:5", + "typeDescriptions": {} + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10159:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 907, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "10138:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10138:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10114:56:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 916, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 906, + "src": "10184:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10209:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10201:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10201:7:5", + "typeDescriptions": {} + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10201:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10184:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 930, + "nodeType": "IfStatement", + "src": "10180:96:5", + "trueBody": { + "id": 929, + "nodeType": "Block", + "src": "10213:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10262:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10254:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10254:7:5", + "typeDescriptions": {} + } + }, + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10254:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 922, + "name": "ERC721InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "10234:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10234:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 928, + "nodeType": "RevertStatement", + "src": "10227:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "9639:311:5", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 932, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "9964:5:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "to", + "nameLocation": "9978:2:5", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "9970:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 884, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9970:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "9990:7:5", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "9982:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9982:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9969:29:5" + }, + "returnParameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [], + "src": "10008:0:5" + }, + "scope": 1325, + "src": "9955:327:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 946, + "nodeType": "Block", + "src": "10690:43:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 941, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "10710:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 942, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "10714:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10723:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 940, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 973, + "src": "10700:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10700:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 945, + "nodeType": "ExpressionStatement", + "src": "10700:26:5" + } + ] + }, + "documentation": { + "id": 933, + "nodeType": "StructuredDocumentation", + "src": "10288:340:5", + "text": " @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 947, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "10642:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "to", + "nameLocation": "10660:2:5", + "nodeType": "VariableDeclaration", + "scope": 947, + "src": "10652:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 934, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10652:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10672:7:5", + "nodeType": "VariableDeclaration", + "scope": 947, + "src": "10664:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10664:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10651:29:5" + }, + "returnParameters": { + "id": 939, + "nodeType": "ParameterList", + "parameters": [], + "src": "10690:0:5" + }, + "scope": 1325, + "src": "10633:100:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 972, + "nodeType": "Block", + "src": "11038:98:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 958, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "11054:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 959, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "11058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 957, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "11048:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11048:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 961, + "nodeType": "ExpressionStatement", + "src": "11048:18:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11099:7:5", + "typeDescriptions": {} + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 967, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "11111:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 968, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "11115:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 969, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 954, + "src": "11124:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 962, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "11076:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11076:53:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "11076:53:5" + } + ] + }, + "documentation": { + "id": 948, + "nodeType": "StructuredDocumentation", + "src": "10739:210:5", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 973, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "10963:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 950, + "mutability": "mutable", + "name": "to", + "nameLocation": "10981:2:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "10973:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 949, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10973:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 952, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10993:7:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "10985:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10985:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 954, + "mutability": "mutable", + "name": "data", + "nameLocation": "11015:4:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "11002:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 953, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11002:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "10972:48:5" + }, + "returnParameters": { + "id": 956, + "nodeType": "ParameterList", + "parameters": [], + "src": "11038:0:5" + }, + "scope": 1325, + "src": "10954:182:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1005, + "nodeType": "Block", + "src": "11503:186:5", + "statements": [ + { + "assignments": [ + 980 + ], + "declarations": [ + { + "constant": false, + "id": 980, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "11521:13:5", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "11513:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11513:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 992, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11553:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11545:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11545:7:5", + "typeDescriptions": {} + } + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11545:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 986, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 976, + "src": "11557:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11574:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11566:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11566:7:5", + "typeDescriptions": {} + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11566:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 981, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "11537:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11537:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11513:64:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 993, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 980, + "src": "11591:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11616:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11608:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 994, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11608:7:5", + "typeDescriptions": {} + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11608:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11591:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1004, + "nodeType": "IfStatement", + "src": "11587:96:5", + "trueBody": { + "id": 1003, + "nodeType": "Block", + "src": "11620:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1000, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 976, + "src": "11664:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 999, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "11641:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11641:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1002, + "nodeType": "RevertStatement", + "src": "11634:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 974, + "nodeType": "StructuredDocumentation", + "src": "11142:315:5", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 1006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "11471:5:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 976, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "11485:7:5", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "11477:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11477:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11476:17:5" + }, + "returnParameters": { + "id": 978, + "nodeType": "ParameterList", + "parameters": [], + "src": "11503:0:5" + }, + "scope": 1325, + "src": "11462:227:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1065, + "nodeType": "Block", + "src": "12084:389:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1016, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12098:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12112:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12104:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12104:7:5", + "typeDescriptions": {} + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12104:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12098:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1030, + "nodeType": "IfStatement", + "src": "12094:87:5", + "trueBody": { + "id": 1029, + "nodeType": "Block", + "src": "12116:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12167:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12159:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12159:7:5", + "typeDescriptions": {} + } + }, + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12159:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1022, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "12137:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12137:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1028, + "nodeType": "RevertStatement", + "src": "12130:40:5" + } + ] + } + }, + { + "assignments": [ + 1032 + ], + "declarations": [ + { + "constant": false, + "id": 1032, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "12198:13:5", + "nodeType": "VariableDeclaration", + "scope": 1065, + "src": "12190:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12190:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1041, + "initialValue": { + "arguments": [ + { + "id": 1034, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12222:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1035, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12226:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12243:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12235:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12235:7:5", + "typeDescriptions": {} + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12235:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1033, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "12214:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12214:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12190:56:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1042, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12260:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12285:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12277:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12277:7:5", + "typeDescriptions": {} + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12277:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12260:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1053, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12362:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1054, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1009, + "src": "12379:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12362:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1063, + "nodeType": "IfStatement", + "src": "12358:109:5", + "trueBody": { + "id": 1062, + "nodeType": "Block", + "src": "12385:82:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1057, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1009, + "src": "12427:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1058, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1059, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12442:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1056, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "12406:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address) pure" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12406:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1061, + "nodeType": "RevertStatement", + "src": "12399:57:5" + } + ] + } + }, + "id": 1064, + "nodeType": "IfStatement", + "src": "12256:211:5", + "trueBody": { + "id": 1052, + "nodeType": "Block", + "src": "12289:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1049, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12333:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1048, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "12310:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12310:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1051, + "nodeType": "RevertStatement", + "src": "12303:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1007, + "nodeType": "StructuredDocumentation", + "src": "11695:313:5", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 1066, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "12022:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1009, + "mutability": "mutable", + "name": "from", + "nameLocation": "12040:4:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12032:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1008, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12032:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1011, + "mutability": "mutable", + "name": "to", + "nameLocation": "12054:2:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12046:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12046:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1013, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12066:7:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12058:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12031:43:5" + }, + "returnParameters": { + "id": 1015, + "nodeType": "ParameterList", + "parameters": [], + "src": "12084:0:5" + }, + "scope": 1325, + "src": "12013:460:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1083, + "nodeType": "Block", + "src": "13481:53:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1077, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "13505:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1071, + "src": "13511:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1079, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1073, + "src": "13515:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13524:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1076, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1084, + 1110 + ], + "referencedDeclaration": 1110, + "src": "13491:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13491:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1082, + "nodeType": "ExpressionStatement", + "src": "13491:36:5" + } + ] + }, + "documentation": { + "id": 1067, + "nodeType": "StructuredDocumentation", + "src": "12479:922:5", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1084, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "13415:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "from", + "nameLocation": "13437:4:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13429:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1068, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13429:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1071, + "mutability": "mutable", + "name": "to", + "nameLocation": "13451:2:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13443:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13443:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1073, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13463:7:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13455:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13455:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13428:43:5" + }, + "returnParameters": { + "id": 1075, + "nodeType": "ParameterList", + "parameters": [], + "src": "13481:0:5" + }, + "scope": 1325, + "src": "13406:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "13873:102:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1097, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13893:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1098, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13899:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1099, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "13903:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1096, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "13883:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13883:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1101, + "nodeType": "ExpressionStatement", + "src": "13883:28:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1103, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13944:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1104, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13950:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1105, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "13954:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1106, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "13963:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1102, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "13921:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13921:47:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1108, + "nodeType": "ExpressionStatement", + "src": "13921:47:5" + } + ] + }, + "documentation": { + "id": 1085, + "nodeType": "StructuredDocumentation", + "src": "13540:226:5", + "text": " @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "13780:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1087, + "mutability": "mutable", + "name": "from", + "nameLocation": "13802:4:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13794:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13794:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "to", + "nameLocation": "13816:2:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13808:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13808:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13828:7:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13820:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13820:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "data", + "nameLocation": "13850:4:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13837:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1092, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13837:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13793:62:5" + }, + "returnParameters": { + "id": 1095, + "nodeType": "ParameterList", + "parameters": [], + "src": "13873:0:5" + }, + "scope": 1325, + "src": "13771:204:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1127, + "nodeType": "Block", + "src": "14488:50:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1121, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "14507:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1122, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "14511:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1123, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "14520:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14526:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1120, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1194, + "src": "14498:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14498:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1126, + "nodeType": "ExpressionStatement", + "src": "14498:33:5" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "13981:432:5", + "text": " @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 1128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "14427:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "to", + "nameLocation": "14444:2:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14436:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14436:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14456:7:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14448:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14448:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "auth", + "nameLocation": "14473:4:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14465:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14465:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14435:43:5" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [], + "src": "14488:0:5" + }, + "scope": 1325, + "src": "14418:120:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1193, + "nodeType": "Block", + "src": "14814:568:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1140, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "14880:9:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1141, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "14893:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14909:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14901:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14901:7:5", + "typeDescriptions": {} + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14901:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14893:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14880:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1186, + "nodeType": "IfStatement", + "src": "14876:460:5", + "trueBody": { + "id": 1185, + "nodeType": "Block", + "src": "14913:423:5", + "statements": [ + { + "assignments": [ + 1149 + ], + "declarations": [ + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "owner", + "nameLocation": "14935:5:5", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "14927:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14927:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1153, + "initialValue": { + "arguments": [ + { + "id": 1151, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "14957:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1150, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "14943:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14943:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14927:38:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1154, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15093:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15109:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15101:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15101:7:5", + "typeDescriptions": {} + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15101:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15093:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15115:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1161, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15124:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15115:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15093:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15132:30:5", + "subExpression": { + "arguments": [ + { + "id": 1165, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15150:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1166, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15157:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1164, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "15133:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15133:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15093:69:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1175, + "nodeType": "IfStatement", + "src": "15089:142:5", + "trueBody": { + "id": 1174, + "nodeType": "Block", + "src": "15164:67:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1171, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15211:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1170, + "name": "ERC721InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 263, + "src": "15189:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15189:27:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1173, + "nodeType": "RevertStatement", + "src": "15182:34:5" + } + ] + } + }, + { + "condition": { + "id": 1176, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "15249:9:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1184, + "nodeType": "IfStatement", + "src": "15245:81:5", + "trueBody": { + "id": 1183, + "nodeType": "Block", + "src": "15260:66:5", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 1178, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15292:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1179, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "15299:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1180, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "15303:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1177, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "15283:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15283:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1182, + "nodeType": "EmitStatement", + "src": "15278:33:5" + } + ] + } + } + ] + } + }, + { + "expression": { + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1187, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "15346:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1189, + "indexExpression": { + "id": 1188, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "15362:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15346:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1190, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "15373:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15346:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "15346:29:5" + } + ] + }, + "documentation": { + "id": 1129, + "nodeType": "StructuredDocumentation", + "src": "14544:171:5", + "text": " @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers." + }, + "id": 1194, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "14729:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "to", + "nameLocation": "14746:2:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14738:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14738:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1133, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14758:7:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14750:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14750:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1135, + "mutability": "mutable", + "name": "auth", + "nameLocation": "14775:4:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14767:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14767:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1137, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "14786:9:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14781:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1136, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14781:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14737:59:5" + }, + "returnParameters": { + "id": 1139, + "nodeType": "ParameterList", + "parameters": [], + "src": "14814:0:5" + }, + "scope": 1325, + "src": "14720:662:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1230, + "nodeType": "Block", + "src": "15684:219:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1204, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15698:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15718:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15710:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15710:7:5", + "typeDescriptions": {} + } + }, + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15710:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15698:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1215, + "nodeType": "IfStatement", + "src": "15694:91:5", + "trueBody": { + "id": 1214, + "nodeType": "Block", + "src": "15722:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1211, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15765:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1210, + "name": "ERC721InvalidOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "15743:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15743:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1213, + "nodeType": "RevertStatement", + "src": "15736:38:5" + } + ] + } + }, + { + "expression": { + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1216, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "15794:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1219, + "indexExpression": { + "id": 1217, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "15813:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15794:25:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1220, + "indexExpression": { + "id": 1218, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15820:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15794:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1221, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "15832:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15794:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1223, + "nodeType": "ExpressionStatement", + "src": "15794:46:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1225, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "15870:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15877:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1227, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "15887:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1224, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1359, + "src": "15855:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15855:41:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1229, + "nodeType": "EmitStatement", + "src": "15850:46:5" + } + ] + }, + "documentation": { + "id": 1195, + "nodeType": "StructuredDocumentation", + "src": "15388:198:5", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event." + }, + "id": 1231, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "15600:18:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "owner", + "nameLocation": "15627:5:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15619:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15619:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "mutability": "mutable", + "name": "operator", + "nameLocation": "15642:8:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15634:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15634:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "mutability": "mutable", + "name": "approved", + "nameLocation": "15657:8:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15652:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1200, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15652:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15618:48:5" + }, + "returnParameters": { + "id": 1203, + "nodeType": "ParameterList", + "parameters": [], + "src": "15684:0:5" + }, + "scope": 1325, + "src": "15591:312:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "16210:169:5", + "statements": [ + { + "assignments": [ + 1240 + ], + "declarations": [ + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "owner", + "nameLocation": "16228:5:5", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "16220:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16220:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1244, + "initialValue": { + "arguments": [ + { + "id": 1242, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "16245:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1241, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "16236:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16236:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16220:33:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1245, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "16267:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16284:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16276:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16276:7:5", + "typeDescriptions": {} + } + }, + "id": 1249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16276:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16267:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1256, + "nodeType": "IfStatement", + "src": "16263:88:5", + "trueBody": { + "id": 1255, + "nodeType": "Block", + "src": "16288:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1252, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "16332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1251, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "16309:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16309:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1254, + "nodeType": "RevertStatement", + "src": "16302:38:5" + } + ] + } + }, + { + "expression": { + "id": 1257, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "16367:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1238, + "id": 1258, + "nodeType": "Return", + "src": "16360:12:5" + } + ] + }, + "documentation": { + "id": 1232, + "nodeType": "StructuredDocumentation", + "src": "15909:224:5", + "text": " @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}." + }, + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireOwned", + "nameLocation": "16147:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1234, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16169:7:5", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "16161:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16161:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16160:17:5" + }, + "returnParameters": { + "id": 1238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "16201:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16201:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16200:9:5" + }, + "scope": 1325, + "src": "16138:241:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1323, + "nodeType": "Block", + "src": "17020:680:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1272, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17034:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17037:4:5", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "17034:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17042:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17034:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17051:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17034:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1322, + "nodeType": "IfStatement", + "src": "17030:664:5", + "trueBody": { + "id": 1321, + "nodeType": "Block", + "src": "17054:640:5", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1301, + "nodeType": "Block", + "src": "17168:162:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1290, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "17190:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 1291, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "17200:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$1460_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17216:16:5", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1459, + "src": "17200:32:5", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17233:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "17200:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "17190:51:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1300, + "nodeType": "IfStatement", + "src": "17186:130:5", + "trueBody": { + "id": 1299, + "nodeType": "Block", + "src": "17243:73:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1296, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17294:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1295, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "17272:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17272:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1298, + "nodeType": "RevertStatement", + "src": "17265:32:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1302, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "retval", + "nameLocation": "17160:6:5", + "nodeType": "VariableDeclaration", + "scope": 1302, + "src": "17153:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1287, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "17153:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "17152:15:5" + }, + "src": "17144:186:5" + }, + { + "block": { + "id": 1318, + "nodeType": "Block", + "src": "17359:325:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1306, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1304, + "src": "17381:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17388:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17381:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17398:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17381:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1316, + "nodeType": "Block", + "src": "17480:190:5", + "statements": [ + { + "AST": { + "nativeSrc": "17566:86:5", + "nodeType": "YulBlock", + "src": "17566:86:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17603:2:5", + "nodeType": "YulLiteral", + "src": "17603:2:5", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "17607:6:5", + "nodeType": "YulIdentifier", + "src": "17607:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17599:3:5", + "nodeType": "YulIdentifier", + "src": "17599:3:5" + }, + "nativeSrc": "17599:15:5", + "nodeType": "YulFunctionCall", + "src": "17599:15:5" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "17622:6:5", + "nodeType": "YulIdentifier", + "src": "17622:6:5" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17616:5:5", + "nodeType": "YulIdentifier", + "src": "17616:5:5" + }, + "nativeSrc": "17616:13:5", + "nodeType": "YulFunctionCall", + "src": "17616:13:5" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17592:6:5", + "nodeType": "YulIdentifier", + "src": "17592:6:5" + }, + "nativeSrc": "17592:38:5", + "nodeType": "YulFunctionCall", + "src": "17592:38:5" + }, + "nativeSrc": "17592:38:5", + "nodeType": "YulExpressionStatement", + "src": "17592:38:5" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1304, + "isOffset": false, + "isSlot": false, + "src": "17607:6:5", + "valueSize": 1 + }, + { + "declaration": 1304, + "isOffset": false, + "isSlot": false, + "src": "17622:6:5", + "valueSize": 1 + } + ], + "id": 1315, + "nodeType": "InlineAssembly", + "src": "17557:95:5" + } + ] + }, + "id": 1317, + "nodeType": "IfStatement", + "src": "17377:293:5", + "trueBody": { + "id": 1314, + "nodeType": "Block", + "src": "17401:73:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1311, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17452:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1310, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "17430:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17430:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1313, + "nodeType": "RevertStatement", + "src": "17423:32:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1319, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1304, + "mutability": "mutable", + "name": "reason", + "nameLocation": "17351:6:5", + "nodeType": "VariableDeclaration", + "scope": 1319, + "src": "17338:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17338:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "17337:21:5" + }, + "src": "17331:353:5" + } + ], + "externalCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1281, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "17109:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17109:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1283, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "17123:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1284, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "17129:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "17138:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1278, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17088:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1277, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "17072:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$1460_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17072:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$1460", + "typeString": "contract IERC721Receiver" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17092:16:5", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1459, + "src": "17072:36:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17072:71:5", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1320, + "nodeType": "TryStatement", + "src": "17068:616:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1261, + "nodeType": "StructuredDocumentation", + "src": "16385:528:5", + "text": " @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call" + }, + "id": 1324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nameLocation": "16927:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "from", + "nameLocation": "16958:4:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16950:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16950:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1265, + "mutability": "mutable", + "name": "to", + "nameLocation": "16972:2:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16964:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16964:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1267, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16984:7:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16976:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16976:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1269, + "mutability": "mutable", + "name": "data", + "nameLocation": "17006:4:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16993:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1268, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16993:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "16949:62:5" + }, + "returnParameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [], + "src": "17020:0:5" + }, + "scope": 1325, + "src": "16918:782:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1326, + "src": "776:16926:5", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "107:17596:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ], + "IERC721": [ + 1442 + ] + }, + "id": 1443, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1327, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 1329, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1443, + "sourceUnit": 1936, + "src": "134:62:6", + "symbolAliases": [ + { + "foreign": { + "id": 1328, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "142:7:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1331, + "name": "IERC165", + "nameLocations": [ + "287:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "287:7:6" + }, + "id": 1332, + "nodeType": "InheritanceSpecifier", + "src": "287:7:6" + } + ], + "canonicalName": "IERC721", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1330, + "nodeType": "StructuredDocumentation", + "src": "198:67:6", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 1442, + "linearizedBaseContracts": [ + 1442, + 1935 + ], + "name": "IERC721", + "nameLocation": "276:7:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1333, + "nodeType": "StructuredDocumentation", + "src": "301:88:6", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 1341, + "name": "Transfer", + "nameLocation": "400:8:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1335, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "425:4:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "409:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "409:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1337, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "447:2:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "431:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "431:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1339, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "467:7:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "451:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "451:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "408:67:6" + }, + "src": "394:82:6" + }, + { + "anonymous": false, + "documentation": { + "id": 1342, + "nodeType": "StructuredDocumentation", + "src": "482:94:6", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 1350, + "name": "Approval", + "nameLocation": "587:8:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1344, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "612:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "596:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "596:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1346, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nameLocation": "635:8:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "619:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "619:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1348, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "661:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "645:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "595:74:6" + }, + "src": "581:89:6" + }, + { + "anonymous": false, + "documentation": { + "id": 1351, + "nodeType": "StructuredDocumentation", + "src": "676:117:6", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 1359, + "name": "ApprovalForAll", + "nameLocation": "804:14:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1353, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "835:5:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "819:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "819:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1355, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "858:8:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "842:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "842:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "873:8:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "868:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1356, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "868:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "818:64:6" + }, + "src": "798:85:6" + }, + { + "documentation": { + "id": 1360, + "nodeType": "StructuredDocumentation", + "src": "889:76:6", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 1367, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "979:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "owner", + "nameLocation": "997:5:6", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "989:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "989:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "988:15:6" + }, + "returnParameters": { + "id": 1366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1035:7:6", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "1027:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1027:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1026:17:6" + }, + "scope": 1442, + "src": "970:74:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1368, + "nodeType": "StructuredDocumentation", + "src": "1050:131:6", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 1375, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1195:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1370, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1211:7:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "1203:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1203:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1202:17:6" + }, + "returnParameters": { + "id": 1374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1373, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1251:5:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "1243:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1243:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1242:15:6" + }, + "scope": 1442, + "src": "1186:72:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1376, + "nodeType": "StructuredDocumentation", + "src": "1264:565:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 1387, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1843:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1378, + "mutability": "mutable", + "name": "from", + "nameLocation": "1868:4:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1860:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1860:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1380, + "mutability": "mutable", + "name": "to", + "nameLocation": "1882:2:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1874:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1874:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1382, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1894:7:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1886:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1886:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "data", + "nameLocation": "1918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1903:19:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1383, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1903:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1859:64:6" + }, + "returnParameters": { + "id": 1386, + "nodeType": "ParameterList", + "parameters": [], + "src": "1932:0:6" + }, + "scope": 1442, + "src": "1834:99:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1388, + "nodeType": "StructuredDocumentation", + "src": "1939:705:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 1397, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "2658:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "mutability": "mutable", + "name": "from", + "nameLocation": "2683:4:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2675:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2675:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "mutability": "mutable", + "name": "to", + "nameLocation": "2697:2:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2689:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2689:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2709:7:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2701:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2701:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2674:43:6" + }, + "returnParameters": { + "id": 1396, + "nodeType": "ParameterList", + "parameters": [], + "src": "2726:0:6" + }, + "scope": 1442, + "src": "2649:78:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1398, + "nodeType": "StructuredDocumentation", + "src": "2733:732:6", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 1407, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "3479:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "from", + "nameLocation": "3500:4:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3492:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3492:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1402, + "mutability": "mutable", + "name": "to", + "nameLocation": "3514:2:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3506:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3506:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1404, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3526:7:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3518:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3518:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3491:43:6" + }, + "returnParameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [], + "src": "3543:0:6" + }, + "scope": 1442, + "src": "3470:74:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1408, + "nodeType": "StructuredDocumentation", + "src": "3550:452:6", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 1415, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4016:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1410, + "mutability": "mutable", + "name": "to", + "nameLocation": "4032:2:6", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "4024:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4024:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1412, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4044:7:6", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "4036:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4036:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4023:29:6" + }, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "4061:0:6" + }, + "scope": 1442, + "src": "4007:55:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1416, + "nodeType": "StructuredDocumentation", + "src": "4068:315:6", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 1423, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4397:17:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1418, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4423:8:6", + "nodeType": "VariableDeclaration", + "scope": 1423, + "src": "4415:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4415:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "approved", + "nameLocation": "4438:8:6", + "nodeType": "VariableDeclaration", + "scope": 1423, + "src": "4433:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1419, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4433:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4414:33:6" + }, + "returnParameters": { + "id": 1422, + "nodeType": "ParameterList", + "parameters": [], + "src": "4456:0:6" + }, + "scope": 1442, + "src": "4388:69:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1424, + "nodeType": "StructuredDocumentation", + "src": "4463:139:6", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 1431, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4616:11:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1426, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4636:7:6", + "nodeType": "VariableDeclaration", + "scope": 1431, + "src": "4628:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4628:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4627:17:6" + }, + "returnParameters": { + "id": 1430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1429, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4676:8:6", + "nodeType": "VariableDeclaration", + "scope": 1431, + "src": "4668:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4668:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4667:18:6" + }, + "scope": 1442, + "src": "4607:79:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "4692:138:6", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 1441, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4844:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1434, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4869:5:6", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4861:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4861:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1436, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4884:8:6", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4876:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4876:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4860:33:6" + }, + "returnParameters": { + "id": 1440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4917:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1438, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4917:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4916:6:6" + }, + "scope": 1442, + "src": "4835:88:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1443, + "src": "266:4659:6", + "usedErrors": [], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "108:4818:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "exportedSymbols": { + "IERC721Receiver": [ + 1460 + ] + }, + "id": 1461, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1444, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "116:24:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1445, + "nodeType": "StructuredDocumentation", + "src": "142:152:7", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 1460, + "linearizedBaseContracts": [ + 1460 + ], + "name": "IERC721Receiver", + "nameLocation": "305:15:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1446, + "nodeType": "StructuredDocumentation", + "src": "327:500:7", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 1459, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "841:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "operator", + "nameLocation": "875:8:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "867:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "867:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1450, + "mutability": "mutable", + "name": "from", + "nameLocation": "901:4:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "893:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1449, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "893:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "923:7:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "915:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "915:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1454, + "mutability": "mutable", + "name": "data", + "nameLocation": "955:4:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "940:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1453, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "940:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "857:108:7" + }, + "returnParameters": { + "id": 1458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "984:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1456, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "984:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "983:8:7" + }, + "scope": 1460, + "src": "832:160:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1461, + "src": "295:699:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "116:879:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "exportedSymbols": { + "ERC721": [ + 1325 + ], + "ERC721URIStorage": [ + 1586 + ], + "IERC165": [ + 1935 + ], + "IERC4906": [ + 175 + ], + "Strings": [ + 1899 + ] + }, + "id": 1587, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1462, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "128:24:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "../ERC721.sol", + "id": 1464, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 1326, + "src": "154:37:8", + "symbolAliases": [ + { + "foreign": { + "id": 1463, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1325, + "src": "162:6:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../../utils/Strings.sol", + "id": 1466, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 1900, + "src": "192:51:8", + "symbolAliases": [ + { + "foreign": { + "id": 1465, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "200:7:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC4906.sol", + "file": "../../../interfaces/IERC4906.sol", + "id": 1468, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 176, + "src": "244:58:8", + "symbolAliases": [ + { + "foreign": { + "id": 1467, + "name": "IERC4906", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 175, + "src": "252:8:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "file": "../../../interfaces/IERC165.sol", + "id": 1470, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 152, + "src": "303:56:8", + "symbolAliases": [ + { + "foreign": { + "id": 1469, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "311:7:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1472, + "name": "IERC4906", + "nameLocations": [ + "469:8:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "469:8:8" + }, + "id": 1473, + "nodeType": "InheritanceSpecifier", + "src": "469:8:8" + }, + { + "baseName": { + "id": 1474, + "name": "ERC721", + "nameLocations": [ + "479:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "479:6:8" + }, + "id": 1475, + "nodeType": "InheritanceSpecifier", + "src": "479:6:8" + } + ], + "canonicalName": "ERC721URIStorage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1471, + "nodeType": "StructuredDocumentation", + "src": "361:69:8", + "text": " @dev ERC721 token with storage based token URI management." + }, + "fullyImplemented": true, + "id": 1586, + "linearizedBaseContracts": [ + 1586, + 1325, + 269, + 1614, + 175, + 1442, + 1923, + 1935, + 1644 + ], + "name": "ERC721URIStorage", + "nameLocation": "449:16:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1478, + "libraryName": { + "id": 1476, + "name": "Strings", + "nameLocations": [ + "498:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1899, + "src": "498:7:8" + }, + "nodeType": "UsingForDirective", + "src": "492:26:8", + "typeName": { + "id": 1477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1484, + "mutability": "constant", + "name": "ERC4906_INTERFACE_ID", + "nameLocation": "730:20:8", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "706:65:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1479, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "706:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "arguments": [ + { + "hexValue": "30783439303634393036", + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "760:10:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1225148678_by_1", + "typeString": "int_const 1225148678" + }, + "value": "0x49064906" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1225148678_by_1", + "typeString": "int_const 1225148678" + } + ], + "id": 1481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "753:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 1480, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "753:6:8", + "typeDescriptions": {} + } + }, + "id": 1483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "753:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1488, + "mutability": "mutable", + "name": "_tokenURIs", + "nameLocation": "860:10:8", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "817:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 1487, + "keyName": "tokenId", + "keyNameLocation": "833:7:8", + "keyType": { + "id": 1485, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "825:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "817:34:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1486, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "844:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "baseFunctions": [ + 417, + 1934 + ], + "body": { + "id": 1508, + "nodeType": "Block", + "src": "1045:99:8", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1499, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "1062:11:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1500, + "name": "ERC4906_INTERFACE_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "1077:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1062:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1504, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "1125:11:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1502, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1101:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$1586_$", + "typeString": "type(contract super ERC721URIStorage)" + } + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1107:17:8", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 417, + "src": "1101:23:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1101:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1062:75:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1498, + "id": 1507, + "nodeType": "Return", + "src": "1055:82:8" + } + ] + }, + "documentation": { + "id": 1489, + "nodeType": "StructuredDocumentation", + "src": "877:55:8", + "text": " @dev See {IERC165-supportsInterface}" + }, + "functionSelector": "01ffc9a7", + "id": 1509, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "946:17:8", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1495, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1493, + "name": "ERC721", + "nameLocations": [ + "1013:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1013:6:8" + }, + { + "id": 1494, + "name": "IERC165", + "nameLocations": [ + "1021:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "1021:7:8" + } + ], + "src": "1004:25:8" + }, + "parameters": { + "id": 1492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1491, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "971:11:8", + "nodeType": "VariableDeclaration", + "scope": 1509, + "src": "964:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1490, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "964:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "963:20:8" + }, + "returnParameters": { + "id": 1498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1497, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1509, + "src": "1039:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1496, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1039:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1038:6:8" + }, + "scope": 1586, + "src": "937:207:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 512 + ], + "body": { + "id": 1565, + "nodeType": "Block", + "src": "1298:505:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1519, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "1322:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1518, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "1308:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1308:22:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1521, + "nodeType": "ExpressionStatement", + "src": "1308:22:8" + }, + { + "assignments": [ + 1523 + ], + "declarations": [ + { + "constant": false, + "id": 1523, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "1355:9:8", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "1341:23:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1522, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1341:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1527, + "initialValue": { + "baseExpression": { + "id": 1524, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1367:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1526, + "indexExpression": { + "id": 1525, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "1378:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1367:19:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1341:45:8" + }, + { + "assignments": [ + 1529 + ], + "declarations": [ + { + "constant": false, + "id": 1529, + "mutability": "mutable", + "name": "base", + "nameLocation": "1410:4:8", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "1396:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1528, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1532, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1530, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "1417:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1417:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1396:31:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1535, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1506:4:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1500:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1533, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1500:5:8", + "typeDescriptions": {} + } + }, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1500:11:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1512:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1500:18:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1522:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1500:23:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1543, + "nodeType": "IfStatement", + "src": "1496:70:8", + "trueBody": { + "id": 1542, + "nodeType": "Block", + "src": "1525:41:8", + "statements": [ + { + "expression": { + "id": 1540, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "1546:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1517, + "id": 1541, + "nodeType": "Return", + "src": "1539:16:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1546, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "1671:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1665:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1544, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1665:5:8", + "typeDescriptions": {} + } + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1665:16:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1682:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1665:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1691:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1665:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "1661:95:8", + "trueBody": { + "id": 1558, + "nodeType": "Block", + "src": "1694:62:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1554, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1729:4:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 1555, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "1735:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 1552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1715:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1551, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1715:6:8", + "typeDescriptions": {} + } + }, + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1722:6:8", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1715:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1715:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1517, + "id": 1557, + "nodeType": "Return", + "src": "1708:37:8" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1562, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "1788:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1560, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1773:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$1586_$", + "typeString": "type(contract super ERC721URIStorage)" + } + }, + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1779:8:8", + "memberName": "tokenURI", + "nodeType": "MemberAccess", + "referencedDeclaration": 512, + "src": "1773:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) view returns (string memory)" + } + }, + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1773:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1517, + "id": 1564, + "nodeType": "Return", + "src": "1766:30:8" + } + ] + }, + "documentation": { + "id": 1510, + "nodeType": "StructuredDocumentation", + "src": "1150:55:8", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 1566, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "1219:8:8", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1514, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1265:8:8" + }, + "parameters": { + "id": 1513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1512, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1236:7:8", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "1228:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1228:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1227:17:8" + }, + "returnParameters": { + "id": 1517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "1283:13:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1515, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1283:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1282:15:8" + }, + "scope": 1586, + "src": "1210:593:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1584, + "nodeType": "Block", + "src": "2003:86:8", + "statements": [ + { + "expression": { + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1574, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "2013:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1576, + "indexExpression": { + "id": 1575, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1569, + "src": "2024:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2013:19:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1577, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "2035:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2013:31:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1579, + "nodeType": "ExpressionStatement", + "src": "2013:31:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1581, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1569, + "src": "2074:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1580, + "name": "MetadataUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2059:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2059:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1583, + "nodeType": "EmitStatement", + "src": "2054:28:8" + } + ] + }, + "documentation": { + "id": 1567, + "nodeType": "StructuredDocumentation", + "src": "1809:108:8", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Emits {MetadataUpdate}." + }, + "id": 1585, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nameLocation": "1931:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1952:7:8", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "1944:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1944:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1571, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "1975:9:8", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "1961:23:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1570, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1961:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1943:42:8" + }, + "returnParameters": { + "id": 1573, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:8" + }, + "scope": 1586, + "src": "1922:167:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1587, + "src": "431:1660:8", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 167, + 174, + 1341, + 1350, + 1359 + ] + } + ], + "src": "128:1964:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "exportedSymbols": { + "IERC721": [ + 1442 + ], + "IERC721Metadata": [ + 1614 + ] + }, + "id": 1615, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1588, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "127:24:9" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../IERC721.sol", + "id": 1590, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1615, + "sourceUnit": 1443, + "src": "153:39:9", + "symbolAliases": [ + { + "foreign": { + "id": 1589, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "161:7:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1592, + "name": "IERC721", + "nameLocations": [ + "357:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "357:7:9" + }, + "id": 1593, + "nodeType": "InheritanceSpecifier", + "src": "357:7:9" + } + ], + "canonicalName": "IERC721Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1591, + "nodeType": "StructuredDocumentation", + "src": "194:133:9", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 1614, + "linearizedBaseContracts": [ + 1614, + 1442, + 1935 + ], + "name": "IERC721Metadata", + "nameLocation": "338:15:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1594, + "nodeType": "StructuredDocumentation", + "src": "371:58:9", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 1599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "443:4:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:9" + }, + "returnParameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "473:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1596, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "473:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "472:15:9" + }, + "scope": 1614, + "src": "434:54:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1600, + "nodeType": "StructuredDocumentation", + "src": "494:60:9", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 1605, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "568:6:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [], + "src": "574:2:9" + }, + "returnParameters": { + "id": 1604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1603, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1605, + "src": "600:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "600:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "599:15:9" + }, + "scope": 1614, + "src": "559:56:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1606, + "nodeType": "StructuredDocumentation", + "src": "621:90:9", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 1613, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "725:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1608, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "742:7:9", + "nodeType": "VariableDeclaration", + "scope": 1613, + "src": "734:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1607, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "733:17:9" + }, + "returnParameters": { + "id": 1612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1611, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1613, + "src": "774:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1610, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "774:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "773:15:9" + }, + "scope": 1614, + "src": "716:73:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1615, + "src": "328:463:9", + "usedErrors": [], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "127:665:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 1644 + ] + }, + "id": 1645, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1616, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:10" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1617, + "nodeType": "StructuredDocumentation", + "src": "127:496:10", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 1644, + "linearizedBaseContracts": [ + 1644 + ], + "name": "Context", + "nameLocation": "642:7:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1625, + "nodeType": "Block", + "src": "718:34:10", + "statements": [ + { + "expression": { + "expression": { + "id": 1622, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:10", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1621, + "id": 1624, + "nodeType": "Return", + "src": "728:17:10" + } + ] + }, + "id": 1626, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1618, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:10" + }, + "returnParameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1620, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1626, + "src": "709:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:10" + }, + "scope": 1644, + "src": "656:96:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1634, + "nodeType": "Block", + "src": "825:32:10", + "statements": [ + { + "expression": { + "expression": { + "id": 1631, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:10", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1630, + "id": 1633, + "nodeType": "Return", + "src": "835:15:10" + } + ] + }, + "id": 1635, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1627, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:10" + }, + "returnParameters": { + "id": 1630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1629, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1635, + "src": "809:14:10", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1628, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:10" + }, + "scope": 1644, + "src": "758:99:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1642, + "nodeType": "Block", + "src": "935:25:10", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1639, + "id": 1641, + "nodeType": "Return", + "src": "945:8:10" + } + ] + }, + "id": 1643, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1636, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:10" + }, + "returnParameters": { + "id": 1639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1638, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "926:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1637, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:10" + }, + "scope": 1644, + "src": "863:97:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1645, + "src": "624:338:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 2989 + ], + "SignedMath": [ + 3094 + ], + "Strings": [ + 1899 + ] + }, + "id": 1900, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1646, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:11" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 1648, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1900, + "sourceUnit": 2990, + "src": "127:37:11", + "symbolAliases": [ + { + "foreign": { + "id": 1647, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2989, + "src": "135:4:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 1650, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1900, + "sourceUnit": 3095, + "src": "165:49:11", + "symbolAliases": [ + { + "foreign": { + "id": 1649, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3094, + "src": "173:10:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1651, + "nodeType": "StructuredDocumentation", + "src": "216:34:11", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 1899, + "linearizedBaseContracts": [ + 1899 + ], + "name": "Strings", + "nameLocation": "259:7:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 1654, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "298:10:11", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "273:56:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 1652, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "273:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 1653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:18:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 1657, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "358:14:11", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "335:42:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1655, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "335:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 1658, + "nodeType": "StructuredDocumentation", + "src": "384:81:11", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 1664, + "name": "StringsInsufficientHexLength", + "nameLocation": "476:28:11", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1660, + "mutability": "mutable", + "name": "value", + "nameLocation": "513:5:11", + "nodeType": "VariableDeclaration", + "scope": 1664, + "src": "505:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "505:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "length", + "nameLocation": "528:6:11", + "nodeType": "VariableDeclaration", + "scope": 1664, + "src": "520:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "504:31:11" + }, + "src": "470:66:11" + }, + { + "body": { + "id": 1711, + "nodeType": "Block", + "src": "708:627:11", + "statements": [ + { + "id": 1710, + "nodeType": "UncheckedBlock", + "src": "718:611:11", + "statements": [ + { + "assignments": [ + 1673 + ], + "declarations": [ + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "length", + "nameLocation": "750:6:11", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "742:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1680, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1676, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "770:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1674, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2989, + "src": "759:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$2989_$", + "typeString": "type(library Math)" + } + }, + "id": 1675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "764:5:11", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 2809, + "src": "759:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "759:17:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "779:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "759:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "742:38:11" + }, + { + "assignments": [ + 1682 + ], + "declarations": [ + { + "constant": false, + "id": 1682, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "808:6:11", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "794:20:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1681, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "794:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1687, + "initialValue": { + "arguments": [ + { + "id": 1685, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "828:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "817:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 1683, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "821:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 1686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "817:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "794:41:11" + }, + { + "assignments": [ + 1689 + ], + "declarations": [ + { + "constant": false, + "id": 1689, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "857:3:11", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "849:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "849:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1690, + "nodeType": "VariableDeclarationStatement", + "src": "849:11:11" + }, + { + "AST": { + "nativeSrc": "930:67:11", + "nodeType": "YulBlock", + "src": "930:67:11", + "statements": [ + { + "nativeSrc": "948:35:11", + "nodeType": "YulAssignment", + "src": "948:35:11", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "959:6:11", + "nodeType": "YulIdentifier", + "src": "959:6:11" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "971:2:11", + "nodeType": "YulLiteral", + "src": "971:2:11", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "975:6:11", + "nodeType": "YulIdentifier", + "src": "975:6:11" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "967:3:11", + "nodeType": "YulIdentifier", + "src": "967:3:11" + }, + "nativeSrc": "967:15:11", + "nodeType": "YulFunctionCall", + "src": "967:15:11" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "955:3:11", + "nodeType": "YulIdentifier", + "src": "955:3:11" + }, + "nativeSrc": "955:28:11", + "nodeType": "YulFunctionCall", + "src": "955:28:11" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "948:3:11", + "nodeType": "YulIdentifier", + "src": "948:3:11" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1682, + "isOffset": false, + "isSlot": false, + "src": "959:6:11", + "valueSize": 1 + }, + { + "declaration": 1673, + "isOffset": false, + "isSlot": false, + "src": "975:6:11", + "valueSize": 1 + }, + { + "declaration": 1689, + "isOffset": false, + "isSlot": false, + "src": "948:3:11", + "valueSize": 1 + } + ], + "id": 1691, + "nodeType": "InlineAssembly", + "src": "921:76:11" + }, + { + "body": { + "id": 1706, + "nodeType": "Block", + "src": "1023:269:11", + "statements": [ + { + "expression": { + "id": 1694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1041:5:11", + "subExpression": { + "id": 1693, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "1041:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1695, + "nodeType": "ExpressionStatement", + "src": "1041:5:11" + }, + { + "AST": { + "nativeSrc": "1124:86:11", + "nodeType": "YulBlock", + "src": "1124:86:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1154:3:11", + "nodeType": "YulIdentifier", + "src": "1154:3:11" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:11", + "nodeType": "YulIdentifier", + "src": "1168:5:11" + }, + { + "kind": "number", + "nativeSrc": "1175:2:11", + "nodeType": "YulLiteral", + "src": "1175:2:11", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1164:3:11", + "nodeType": "YulIdentifier", + "src": "1164:3:11" + }, + "nativeSrc": "1164:14:11", + "nodeType": "YulFunctionCall", + "src": "1164:14:11" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1180:10:11", + "nodeType": "YulIdentifier", + "src": "1180:10:11" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1159:4:11", + "nodeType": "YulIdentifier", + "src": "1159:4:11" + }, + "nativeSrc": "1159:32:11", + "nodeType": "YulFunctionCall", + "src": "1159:32:11" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1146:7:11", + "nodeType": "YulIdentifier", + "src": "1146:7:11" + }, + "nativeSrc": "1146:46:11", + "nodeType": "YulFunctionCall", + "src": "1146:46:11" + }, + "nativeSrc": "1146:46:11", + "nodeType": "YulExpressionStatement", + "src": "1146:46:11" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1654, + "isOffset": false, + "isSlot": false, + "src": "1180:10:11", + "valueSize": 1 + }, + { + "declaration": 1689, + "isOffset": false, + "isSlot": false, + "src": "1154:3:11", + "valueSize": 1 + }, + { + "declaration": 1667, + "isOffset": false, + "isSlot": false, + "src": "1168:5:11", + "valueSize": 1 + } + ], + "id": 1696, + "nodeType": "InlineAssembly", + "src": "1115:95:11" + }, + { + "expression": { + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1697, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "1227:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1236:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1227:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1700, + "nodeType": "ExpressionStatement", + "src": "1227:11:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1701, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "1260:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1260:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1705, + "nodeType": "IfStatement", + "src": "1256:21:11", + "trueBody": { + "id": 1704, + "nodeType": "Break", + "src": "1272:5:11" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1017:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 1707, + "nodeType": "WhileStatement", + "src": "1010:282:11" + }, + { + "expression": { + "id": 1708, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1682, + "src": "1312:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1671, + "id": 1709, + "nodeType": "Return", + "src": "1305:13:11" + } + ] + } + ] + }, + "documentation": { + "id": 1665, + "nodeType": "StructuredDocumentation", + "src": "542:90:11", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 1712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "646:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1667, + "mutability": "mutable", + "name": "value", + "nameLocation": "663:5:11", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "655:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "655:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "654:15:11" + }, + "returnParameters": { + "id": 1671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1670, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "693:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1669, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "693:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "692:15:11" + }, + "scope": 1899, + "src": "637:698:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1737, + "nodeType": "Block", + "src": "1511:92:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1723, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "1542:5:11", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1550:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1542:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1560:2:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1542:20:11", + "trueExpression": { + "hexValue": "2d", + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1554:3:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 1732, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "1588:5:11", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 1730, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3094, + "src": "1573:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$3094_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 1731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1584:3:11", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 3093, + "src": "1573:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 1733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1573:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1729, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1712, + "src": "1564:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1564:31:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1528:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1720, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:11", + "typeDescriptions": {} + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1535:6:11", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1528:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1528:68:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1719, + "id": 1736, + "nodeType": "Return", + "src": "1521:75:11" + } + ] + }, + "documentation": { + "id": 1713, + "nodeType": "StructuredDocumentation", + "src": "1341:89:11", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 1738, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "1444:14:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "value", + "nameLocation": "1466:5:11", + "nodeType": "VariableDeclaration", + "scope": 1738, + "src": "1459:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 1714, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1459:6:11", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1458:14:11" + }, + "returnParameters": { + "id": 1719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1718, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1738, + "src": "1496:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1717, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1496:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1495:15:11" + }, + "scope": 1899, + "src": "1435:168:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1757, + "nodeType": "Block", + "src": "1782:100:11", + "statements": [ + { + "id": 1756, + "nodeType": "UncheckedBlock", + "src": "1792:84:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1747, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "1835:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "1854:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1748, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2989, + "src": "1842:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$2989_$", + "typeString": "type(library Math)" + } + }, + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1847:6:11", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2931, + "src": "1842:11:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1842:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1863:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1842:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1746, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1758, + 1841, + 1861 + ], + "referencedDeclaration": 1841, + "src": "1823:11:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1823:42:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1745, + "id": 1755, + "nodeType": "Return", + "src": "1816:49:11" + } + ] + } + ] + }, + "documentation": { + "id": 1739, + "nodeType": "StructuredDocumentation", + "src": "1609:94:11", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 1758, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1717:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1741, + "mutability": "mutable", + "name": "value", + "nameLocation": "1737:5:11", + "nodeType": "VariableDeclaration", + "scope": 1758, + "src": "1729:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1728:15:11" + }, + "returnParameters": { + "id": 1745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1758, + "src": "1767:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1767:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1766:15:11" + }, + "scope": 1899, + "src": "1708:174:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1840, + "nodeType": "Block", + "src": "2095:435:11", + "statements": [ + { + "assignments": [ + 1769 + ], + "declarations": [ + { + "constant": false, + "id": 1769, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2113:10:11", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "2105:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2105:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1771, + "initialValue": { + "id": 1770, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "2126:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2105:26:11" + }, + { + "assignments": [ + 1773 + ], + "declarations": [ + { + "constant": false, + "id": 1773, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2154:6:11", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "2141:19:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1772, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2141:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1782, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1777, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "2177:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2173:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2186:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2173:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2163:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 1774, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2167:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2163:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2141:47:11" + }, + { + "expression": { + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1783, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2198:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1785, + "indexExpression": { + "hexValue": "30", + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2205:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2198:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2210:3:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2198:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1788, + "nodeType": "ExpressionStatement", + "src": "2198:15:11" + }, + { + "expression": { + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1789, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2223:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1791, + "indexExpression": { + "hexValue": "31", + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2230:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2223:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2235:3:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2223:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1794, + "nodeType": "ExpressionStatement", + "src": "2223:15:11" + }, + { + "body": { + "id": 1823, + "nodeType": "Block", + "src": "2293:95:11", + "statements": [ + { + "expression": { + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1809, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2307:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1811, + "indexExpression": { + "id": 1810, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1796, + "src": "2314:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2307:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 1812, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1654, + "src": "2319:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 1816, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1813, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "2330:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 1814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2343:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2330:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2319:28:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2307:40:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1818, + "nodeType": "ExpressionStatement", + "src": "2307:40:11" + }, + { + "expression": { + "id": 1821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1819, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "2361:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2376:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2361:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1822, + "nodeType": "ExpressionStatement", + "src": "2361:16:11" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1803, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1796, + "src": "2281:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2285:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2281:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1824, + "initializationExpression": { + "assignments": [ + 1796 + ], + "declarations": [ + { + "constant": false, + "id": 1796, + "mutability": "mutable", + "name": "i", + "nameLocation": "2261:1:11", + "nodeType": "VariableDeclaration", + "scope": 1824, + "src": "2253:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1802, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2265:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1798, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "2269:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2265:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2278:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2265:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2253:26:11" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 1807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2288:3:11", + "subExpression": { + "id": 1806, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1796, + "src": "2290:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1808, + "nodeType": "ExpressionStatement", + "src": "2288:3:11" + }, + "nodeType": "ForStatement", + "src": "2248:140:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1825, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "2401:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2401:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1834, + "nodeType": "IfStatement", + "src": "2397:96:11", + "trueBody": { + "id": 1833, + "nodeType": "Block", + "src": "2418:75:11", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1829, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "2468:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1830, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "2475:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1828, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1664, + "src": "2439:28:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2439:43:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1832, + "nodeType": "RevertStatement", + "src": "2432:50:11" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1837, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2516:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2509:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1835, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2509:6:11", + "typeDescriptions": {} + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2509:14:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1767, + "id": 1839, + "nodeType": "Return", + "src": "2502:21:11" + } + ] + }, + "documentation": { + "id": 1759, + "nodeType": "StructuredDocumentation", + "src": "1888:112:11", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 1841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2014:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1761, + "mutability": "mutable", + "name": "value", + "nameLocation": "2034:5:11", + "nodeType": "VariableDeclaration", + "scope": 1841, + "src": "2026:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2026:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1763, + "mutability": "mutable", + "name": "length", + "nameLocation": "2049:6:11", + "nodeType": "VariableDeclaration", + "scope": 1841, + "src": "2041:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2041:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:31:11" + }, + "returnParameters": { + "id": 1767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1766, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1841, + "src": "2080:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1765, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2080:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2079:15:11" + }, + "scope": 1899, + "src": "2005:525:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1860, + "nodeType": "Block", + "src": "2762:75:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1854, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1844, + "src": "2807:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2799:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1852, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2799:7:11", + "typeDescriptions": {} + } + }, + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2799:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2791:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:11", + "typeDescriptions": {} + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2791:22:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1857, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "2815:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1849, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1758, + 1841, + 1861 + ], + "referencedDeclaration": 1841, + "src": "2779:11:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2779:51:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1848, + "id": 1859, + "nodeType": "Return", + "src": "2772:58:11" + } + ] + }, + "documentation": { + "id": 1842, + "nodeType": "StructuredDocumentation", + "src": "2536:148:11", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 1861, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2698:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1844, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2718:4:11", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "2710:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1843, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2709:14:11" + }, + "returnParameters": { + "id": 1848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1847, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "2747:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1846, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2747:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2746:15:11" + }, + "scope": 1899, + "src": "2689:148:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1897, + "nodeType": "Block", + "src": "2992:104:11", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1873, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1864, + "src": "3015:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3009:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1871, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3009:5:11", + "typeDescriptions": {} + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3009:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3009:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1878, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "3034:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3028:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1876, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3028:5:11", + "typeDescriptions": {} + } + }, + "id": 1879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3028:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3037:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3028:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3009:34:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1885, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1864, + "src": "3063:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3057:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1883, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3057:5:11", + "typeDescriptions": {} + } + }, + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3057:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1882, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3047:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3047:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1891, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "3086:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3080:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1889, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3080:5:11", + "typeDescriptions": {} + } + }, + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3080:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1888, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3070:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3070:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3047:42:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3009:80:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1870, + "id": 1896, + "nodeType": "Return", + "src": "3002:87:11" + } + ] + }, + "documentation": { + "id": 1862, + "nodeType": "StructuredDocumentation", + "src": "2843:66:11", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 1898, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "2923:5:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1864, + "mutability": "mutable", + "name": "a", + "nameLocation": "2943:1:11", + "nodeType": "VariableDeclaration", + "scope": 1898, + "src": "2929:15:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1863, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2929:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1866, + "mutability": "mutable", + "name": "b", + "nameLocation": "2960:1:11", + "nodeType": "VariableDeclaration", + "scope": 1898, + "src": "2946:15:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1865, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2946:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2928:34:11" + }, + "returnParameters": { + "id": 1870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1898, + "src": "2986:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2986:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2985:6:11" + }, + "scope": 1899, + "src": "2914:182:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1900, + "src": "251:2847:11", + "usedErrors": [ + 1664 + ], + "usedEvents": [] + } + ], + "src": "101:2998:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 1923 + ], + "IERC165": [ + 1935 + ] + }, + "id": 1924, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1901, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 1903, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1924, + "sourceUnit": 1936, + "src": "140:38:12", + "symbolAliases": [ + { + "foreign": { + "id": 1902, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "148:7:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1905, + "name": "IERC165", + "nameLocations": [ + "687:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "687:7:12" + }, + "id": 1906, + "nodeType": "InheritanceSpecifier", + "src": "687:7:12" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1904, + "nodeType": "StructuredDocumentation", + "src": "180:478:12", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 1923, + "linearizedBaseContracts": [ + 1923, + 1935 + ], + "name": "ERC165", + "nameLocation": "677:6:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1934 + ], + "body": { + "id": 1921, + "nodeType": "Block", + "src": "844:64:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1914, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1909, + "src": "861:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1916, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "881:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$1935_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$1935_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 1915, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "876:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "876:13:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$1935", + "typeString": "type(contract IERC165)" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "890:11:12", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "876:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "861:40:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1913, + "id": 1920, + "nodeType": "Return", + "src": "854:47:12" + } + ] + }, + "documentation": { + "id": 1907, + "nodeType": "StructuredDocumentation", + "src": "701:56:12", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "771:17:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1909, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "796:11:12", + "nodeType": "VariableDeclaration", + "scope": 1922, + "src": "789:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1908, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "789:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "788:20:12" + }, + "returnParameters": { + "id": 1913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1912, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1922, + "src": "838:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1911, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "837:6:12" + }, + "scope": 1923, + "src": "762:146:12", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 1924, + "src": "659:251:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:797:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ] + }, + "id": 1936, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1925, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:13" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1926, + "nodeType": "StructuredDocumentation", + "src": "141:279:13", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 1935, + "linearizedBaseContracts": [ + 1935 + ], + "name": "IERC165", + "nameLocation": "431:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1927, + "nodeType": "StructuredDocumentation", + "src": "445:340:13", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 1934, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1929, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:13", + "nodeType": "VariableDeclaration", + "scope": 1934, + "src": "817:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1928, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "817:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "816:20:13" + }, + "returnParameters": { + "id": 1933, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1932, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1934, + "src": "860:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1931, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:13" + }, + "scope": 1935, + "src": "790:76:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1936, + "src": "421:447:13", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 2989 + ] + }, + "id": 2990, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1937, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:14" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1938, + "nodeType": "StructuredDocumentation", + "src": "129:73:14", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 2989, + "linearizedBaseContracts": [ + 2989 + ], + "name": "Math", + "nameLocation": "211:4:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1939, + "nodeType": "StructuredDocumentation", + "src": "222:50:14", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 1941, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1940, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:14" + }, + "src": "277:29:14" + }, + { + "canonicalName": "Math.Rounding", + "id": 1946, + "members": [ + { + "id": 1942, + "name": "Floor", + "nameLocation": "336:5:14", + "nodeType": "EnumValue", + "src": "336:5:14" + }, + { + "id": 1943, + "name": "Ceil", + "nameLocation": "379:4:14", + "nodeType": "EnumValue", + "src": "379:4:14" + }, + { + "id": 1944, + "name": "Trunc", + "nameLocation": "421:5:14", + "nodeType": "EnumValue", + "src": "421:5:14" + }, + { + "id": 1945, + "name": "Expand", + "nameLocation": "451:6:14", + "nodeType": "EnumValue", + "src": "451:6:14" + } + ], + "name": "Rounding", + "nameLocation": "317:8:14", + "nodeType": "EnumDefinition", + "src": "312:169:14" + }, + { + "body": { + "id": 1977, + "nodeType": "Block", + "src": "661:140:14", + "statements": [ + { + "id": 1976, + "nodeType": "UncheckedBlock", + "src": "671:124:14", + "statements": [ + { + "assignments": [ + 1959 + ], + "declarations": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:14", + "nodeType": "VariableDeclaration", + "scope": 1976, + "src": "695:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1963, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1960, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "707:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1961, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "711:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1964, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "730:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1965, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "734:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1971, + "nodeType": "IfStatement", + "src": "726:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "745:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "752:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 1969, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "744:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 1957, + "id": 1970, + "nodeType": "Return", + "src": "737:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "782:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1974, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "775:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 1957, + "id": 1975, + "nodeType": "Return", + "src": "768:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 1947, + "nodeType": "StructuredDocumentation", + "src": "487:93:14", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + }, + "id": 1978, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "594:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:14", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1951, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:14", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "612:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:14" + }, + "returnParameters": { + "id": 1957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "646:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1953, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "646:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1956, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "652:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "652:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:15:14" + }, + "scope": 2989, + "src": "585:216:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2005, + "nodeType": "Block", + "src": "984:113:14", + "statements": [ + { + "id": 2004, + "nodeType": "UncheckedBlock", + "src": "994:97:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1990, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "1022:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1991, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "1026:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1997, + "nodeType": "IfStatement", + "src": "1018:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 1995, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 1989, + "id": 1996, + "nodeType": "Return", + "src": "1029:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1999, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "1074:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2000, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "1078:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2002, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 1989, + "id": 2003, + "nodeType": "Return", + "src": "1060:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 1979, + "nodeType": "StructuredDocumentation", + "src": "807:96:14", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + }, + "id": 2006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "917:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "a", + "nameLocation": "932:1:14", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "924:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "924:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "b", + "nameLocation": "943:1:14", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "935:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "935:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "923:22:14" + }, + "returnParameters": { + "id": 1989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1986, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1985, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1988, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "975:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "968:15:14" + }, + "scope": 2989, + "src": "908:189:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2047, + "nodeType": "Block", + "src": "1283:417:14", + "statements": [ + { + "id": 2046, + "nodeType": "UncheckedBlock", + "src": "1293:401:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2018, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "1551:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2025, + "nodeType": "IfStatement", + "src": "1547:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2023, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2017, + "id": 2024, + "nodeType": "Return", + "src": "1559:16:14" + } + }, + { + "assignments": [ + 2027 + ], + "declarations": [ + { + "constant": false, + "id": 2027, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:14", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "1589:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2028, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "1601:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2011, + "src": "1605:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2032, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "1624:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2033, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "1628:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2035, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2011, + "src": "1633:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2041, + "nodeType": "IfStatement", + "src": "1620:33:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2039, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2017, + "id": 2040, + "nodeType": "Return", + "src": "1636:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1675:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2043, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "1681:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2044, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1674:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2017, + "id": 2045, + "nodeType": "Return", + "src": "1667:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 2007, + "nodeType": "StructuredDocumentation", + "src": "1103:99:14", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + }, + "id": 2048, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1216:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "a", + "nameLocation": "1231:1:14", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1223:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2011, + "mutability": "mutable", + "name": "b", + "nameLocation": "1242:1:14", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1234:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1222:22:14" + }, + "returnParameters": { + "id": 2017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2014, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1268:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2016, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1274:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1267:15:14" + }, + "scope": 2989, + "src": "1207:493:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2075, + "nodeType": "Block", + "src": "1887:114:14", + "statements": [ + { + "id": 2074, + "nodeType": "UncheckedBlock", + "src": "1897:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2060, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2053, + "src": "1925:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1930:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1925:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2067, + "nodeType": "IfStatement", + "src": "1921:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1941:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2065, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1940:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2059, + "id": 2066, + "nodeType": "Return", + "src": "1933:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2069, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2051, + "src": "1978:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2070, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2053, + "src": "1982:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2072, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1971:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2059, + "id": 2073, + "nodeType": "Return", + "src": "1964:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2049, + "nodeType": "StructuredDocumentation", + "src": "1706:100:14", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + }, + "id": 2076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1820:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2051, + "mutability": "mutable", + "name": "a", + "nameLocation": "1835:1:14", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1827:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1827:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2053, + "mutability": "mutable", + "name": "b", + "nameLocation": "1846:1:14", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1838:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1826:22:14" + }, + "returnParameters": { + "id": 2059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2056, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1872:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2055, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2058, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1878:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1878:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1871:15:14" + }, + "scope": 2989, + "src": "1811:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2103, + "nodeType": "Block", + "src": "2198:114:14", + "statements": [ + { + "id": 2102, + "nodeType": "UncheckedBlock", + "src": "2208:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2088, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2081, + "src": "2236:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2236:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2095, + "nodeType": "IfStatement", + "src": "2232:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2093, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2251:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2087, + "id": 2094, + "nodeType": "Return", + "src": "2244:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2097, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "2289:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 2098, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2081, + "src": "2293:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2289:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2100, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2282:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2087, + "id": 2101, + "nodeType": "Return", + "src": "2275:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2077, + "nodeType": "StructuredDocumentation", + "src": "2007:110:14", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 2104, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2082, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2079, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:14", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2138:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2078, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2081, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:14", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2149:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2080, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:14" + }, + "returnParameters": { + "id": 2087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2183:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2083, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2086, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2189:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:14" + }, + "scope": 2989, + "src": "2122:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2121, + "nodeType": "Block", + "src": "2449:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2114, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "2466:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2115, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "2470:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2118, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "2478:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:14", + "trueExpression": { + "id": 2117, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "2474:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2113, + "id": 2120, + "nodeType": "Return", + "src": "2459:20:14" + } + ] + }, + "documentation": { + "id": 2105, + "nodeType": "StructuredDocumentation", + "src": "2318:59:14", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2122, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:14", + "nodeType": "VariableDeclaration", + "scope": 2122, + "src": "2395:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:14", + "nodeType": "VariableDeclaration", + "scope": 2122, + "src": "2406:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:14" + }, + "returnParameters": { + "id": 2113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2122, + "src": "2440:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:14" + }, + "scope": 2989, + "src": "2382:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2139, + "nodeType": "Block", + "src": "2624:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2132, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2125, + "src": "2641:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2133, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "2645:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2136, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "2653:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:14", + "trueExpression": { + "id": 2135, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2125, + "src": "2649:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2131, + "id": 2138, + "nodeType": "Return", + "src": "2634:20:14" + } + ] + }, + "documentation": { + "id": 2123, + "nodeType": "StructuredDocumentation", + "src": "2492:60:14", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2140, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2125, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:14", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2570:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2127, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:14", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2581:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:14" + }, + "returnParameters": { + "id": 2131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2615:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:14" + }, + "scope": 2989, + "src": "2557:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2162, + "nodeType": "Block", + "src": "2845:82:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2150, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "2900:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2151, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "2904:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2153, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2154, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "2910:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2155, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "2914:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2910:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2157, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2909:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2899:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2149, + "id": 2161, + "nodeType": "Return", + "src": "2892:28:14" + } + ] + }, + "documentation": { + "id": 2141, + "nodeType": "StructuredDocumentation", + "src": "2667:102:14", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2163, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2143, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:14", + "nodeType": "VariableDeclaration", + "scope": 2163, + "src": "2791:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:14", + "nodeType": "VariableDeclaration", + "scope": 2163, + "src": "2802:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:14" + }, + "returnParameters": { + "id": 2149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2163, + "src": "2836:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2147, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:14" + }, + "scope": 2989, + "src": "2774:153:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2196, + "nodeType": "Block", + "src": "3219:260:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2173, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2168, + "src": "3233:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2181, + "nodeType": "IfStatement", + "src": "3229:127:14", + "trueBody": { + "id": 2180, + "nodeType": "Block", + "src": "3241:115:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2176, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3340:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2177, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2168, + "src": "3344:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2172, + "id": 2179, + "nodeType": "Return", + "src": "3333:12:14" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2182, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2186, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3458:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2189, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3457:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2190, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2168, + "src": "3467:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3457:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:14", + "trueExpression": { + "hexValue": "30", + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2172, + "id": 2195, + "nodeType": "Return", + "src": "3437:35:14" + } + ] + }, + "documentation": { + "id": 2164, + "nodeType": "StructuredDocumentation", + "src": "2933:210:14", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 2197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2166, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:14", + "nodeType": "VariableDeclaration", + "scope": 2197, + "src": "3165:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2168, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:14", + "nodeType": "VariableDeclaration", + "scope": 2197, + "src": "3176:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:14" + }, + "returnParameters": { + "id": 2172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2171, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2197, + "src": "3210:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2170, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:14" + }, + "scope": 2989, + "src": "3148:331:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2322, + "nodeType": "Block", + "src": "3901:4018:14", + "statements": [ + { + "id": 2321, + "nodeType": "UncheckedBlock", + "src": "3911:4002:14", + "statements": [ + { + "assignments": [ + 2210 + ], + "declarations": [ + { + "constant": false, + "id": 2210, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "4232:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2214, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2211, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2200, + "src": "4248:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2212, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2202, + "src": "4252:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:14" + }, + { + "assignments": [ + 2216 + ], + "declarations": [ + { + "constant": false, + "id": 2216, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "4320:5:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "4312:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4312:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2217, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:14" + }, + { + "AST": { + "nativeSrc": "4392:122:14", + "nodeType": "YulBlock", + "src": "4392:122:14", + "statements": [ + { + "nativeSrc": "4410:30:14", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:14", + "nodeType": "YulIdentifier", + "src": "4427:1:14" + }, + { + "name": "y", + "nativeSrc": "4430:1:14", + "nodeType": "YulIdentifier", + "src": "4430:1:14" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:14", + "nodeType": "YulLiteral", + "src": "4437:1:14", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:14", + "nodeType": "YulIdentifier", + "src": "4433:3:14" + }, + "nativeSrc": "4433:6:14", + "nodeType": "YulFunctionCall", + "src": "4433:6:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:14", + "nodeType": "YulIdentifier", + "src": "4420:6:14" + }, + "nativeSrc": "4420:20:14", + "nodeType": "YulFunctionCall", + "src": "4420:20:14" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:14", + "nodeType": "YulTypedName", + "src": "4414:2:14", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:14", + "nodeType": "YulAssignment", + "src": "4457:43:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:14", + "nodeType": "YulIdentifier", + "src": "4474:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:14", + "nodeType": "YulIdentifier", + "src": "4478:5:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:14", + "nodeType": "YulIdentifier", + "src": "4470:3:14" + }, + "nativeSrc": "4470:14:14", + "nodeType": "YulFunctionCall", + "src": "4470:14:14" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:14", + "nodeType": "YulIdentifier", + "src": "4489:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:14", + "nodeType": "YulIdentifier", + "src": "4493:5:14" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:14", + "nodeType": "YulIdentifier", + "src": "4486:2:14" + }, + "nativeSrc": "4486:13:14", + "nodeType": "YulFunctionCall", + "src": "4486:13:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:14", + "nodeType": "YulIdentifier", + "src": "4466:3:14" + }, + "nativeSrc": "4466:34:14", + "nodeType": "YulFunctionCall", + "src": "4466:34:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:14", + "nodeType": "YulIdentifier", + "src": "4457:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "4478:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "4493:5:14", + "valueSize": 1 + }, + { + "declaration": 2216, + "isOffset": false, + "isSlot": false, + "src": "4457:5:14", + "valueSize": 1 + }, + { + "declaration": 2200, + "isOffset": false, + "isSlot": false, + "src": "4427:1:14", + "valueSize": 1 + }, + { + "declaration": 2202, + "isOffset": false, + "isSlot": false, + "src": "4430:1:14", + "valueSize": 1 + } + ], + "id": 2218, + "nodeType": "InlineAssembly", + "src": "4383:131:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2219, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2216, + "src": "4595:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2227, + "nodeType": "IfStatement", + "src": "4591:368:14", + "trueBody": { + "id": 2226, + "nodeType": "Block", + "src": "4607:352:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2222, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "4925:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2223, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "4933:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4925:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2208, + "id": 2225, + "nodeType": "Return", + "src": "4918:26:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2228, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "5065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2229, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2216, + "src": "5080:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2235, + "nodeType": "IfStatement", + "src": "5061:88:14", + "trueBody": { + "id": 2234, + "nodeType": "Block", + "src": "5087:62:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2231, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "5112:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "RevertStatement", + "src": "5105:29:14" + } + ] + } + }, + { + "assignments": [ + 2237 + ], + "declarations": [ + { + "constant": false, + "id": 2237, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "5404:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2238, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:14" + }, + { + "AST": { + "nativeSrc": "5444:291:14", + "nodeType": "YulBlock", + "src": "5444:291:14", + "statements": [ + { + "nativeSrc": "5513:38:14", + "nodeType": "YulAssignment", + "src": "5513:38:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:14", + "nodeType": "YulIdentifier", + "src": "5533:1:14" + }, + { + "name": "y", + "nativeSrc": "5536:1:14", + "nodeType": "YulIdentifier", + "src": "5536:1:14" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:14", + "nodeType": "YulIdentifier", + "src": "5539:11:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:14", + "nodeType": "YulIdentifier", + "src": "5526:6:14" + }, + "nativeSrc": "5526:25:14", + "nodeType": "YulFunctionCall", + "src": "5526:25:14" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:14", + "nodeType": "YulIdentifier", + "src": "5513:9:14" + } + ] + }, + { + "nativeSrc": "5633:41:14", + "nodeType": "YulAssignment", + "src": "5633:41:14", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:14", + "nodeType": "YulIdentifier", + "src": "5646:5:14" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:14", + "nodeType": "YulIdentifier", + "src": "5656:9:14" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:14", + "nodeType": "YulIdentifier", + "src": "5667:5:14" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:14", + "nodeType": "YulIdentifier", + "src": "5653:2:14" + }, + "nativeSrc": "5653:20:14", + "nodeType": "YulFunctionCall", + "src": "5653:20:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:14", + "nodeType": "YulIdentifier", + "src": "5642:3:14" + }, + "nativeSrc": "5642:32:14", + "nodeType": "YulFunctionCall", + "src": "5642:32:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:14", + "nodeType": "YulIdentifier", + "src": "5633:5:14" + } + ] + }, + { + "nativeSrc": "5691:30:14", + "nodeType": "YulAssignment", + "src": "5691:30:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:14", + "nodeType": "YulIdentifier", + "src": "5704:5:14" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:14", + "nodeType": "YulIdentifier", + "src": "5711:9:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:14", + "nodeType": "YulIdentifier", + "src": "5700:3:14" + }, + "nativeSrc": "5700:21:14", + "nodeType": "YulFunctionCall", + "src": "5700:21:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:14", + "nodeType": "YulIdentifier", + "src": "5691:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2204, + "isOffset": false, + "isSlot": false, + "src": "5539:11:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "5667:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "5691:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "5704:5:14", + "valueSize": 1 + }, + { + "declaration": 2216, + "isOffset": false, + "isSlot": false, + "src": "5633:5:14", + "valueSize": 1 + }, + { + "declaration": 2216, + "isOffset": false, + "isSlot": false, + "src": "5646:5:14", + "valueSize": 1 + }, + { + "declaration": 2237, + "isOffset": false, + "isSlot": false, + "src": "5513:9:14", + "valueSize": 1 + }, + { + "declaration": 2237, + "isOffset": false, + "isSlot": false, + "src": "5656:9:14", + "valueSize": 1 + }, + { + "declaration": 2237, + "isOffset": false, + "isSlot": false, + "src": "5711:9:14", + "valueSize": 1 + }, + { + "declaration": 2200, + "isOffset": false, + "isSlot": false, + "src": "5533:1:14", + "valueSize": 1 + }, + { + "declaration": 2202, + "isOffset": false, + "isSlot": false, + "src": "5536:1:14", + "valueSize": 1 + } + ], + "id": 2239, + "nodeType": "InlineAssembly", + "src": "5435:300:14" + }, + { + "assignments": [ + 2241 + ], + "declarations": [ + { + "constant": false, + "id": 2241, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "5939:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2248, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2242, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "5954:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 2243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2244, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "5973:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2246, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5954:31:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:14" + }, + { + "AST": { + "nativeSrc": "6008:362:14", + "nodeType": "YulBlock", + "src": "6008:362:14", + "statements": [ + { + "nativeSrc": "6073:37:14", + "nodeType": "YulAssignment", + "src": "6073:37:14", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:14", + "nodeType": "YulIdentifier", + "src": "6092:11:14" + }, + { + "name": "twos", + "nativeSrc": "6105:4:14", + "nodeType": "YulIdentifier", + "src": "6105:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:14", + "nodeType": "YulIdentifier", + "src": "6088:3:14" + }, + "nativeSrc": "6088:22:14", + "nodeType": "YulFunctionCall", + "src": "6088:22:14" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:14", + "nodeType": "YulIdentifier", + "src": "6073:11:14" + } + ] + }, + { + "nativeSrc": "6177:25:14", + "nodeType": "YulAssignment", + "src": "6177:25:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:14", + "nodeType": "YulIdentifier", + "src": "6190:5:14" + }, + { + "name": "twos", + "nativeSrc": "6197:4:14", + "nodeType": "YulIdentifier", + "src": "6197:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:14", + "nodeType": "YulIdentifier", + "src": "6186:3:14" + }, + "nativeSrc": "6186:16:14", + "nodeType": "YulFunctionCall", + "src": "6186:16:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:14", + "nodeType": "YulIdentifier", + "src": "6177:5:14" + } + ] + }, + { + "nativeSrc": "6317:39:14", + "nodeType": "YulAssignment", + "src": "6317:39:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:14", + "nodeType": "YulLiteral", + "src": "6337:1:14", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:14", + "nodeType": "YulIdentifier", + "src": "6340:4:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:14", + "nodeType": "YulIdentifier", + "src": "6333:3:14" + }, + "nativeSrc": "6333:12:14", + "nodeType": "YulFunctionCall", + "src": "6333:12:14" + }, + { + "name": "twos", + "nativeSrc": "6347:4:14", + "nodeType": "YulIdentifier", + "src": "6347:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:14", + "nodeType": "YulIdentifier", + "src": "6329:3:14" + }, + "nativeSrc": "6329:23:14", + "nodeType": "YulFunctionCall", + "src": "6329:23:14" + }, + { + "kind": "number", + "nativeSrc": "6354:1:14", + "nodeType": "YulLiteral", + "src": "6354:1:14", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:14", + "nodeType": "YulIdentifier", + "src": "6325:3:14" + }, + "nativeSrc": "6325:31:14", + "nodeType": "YulFunctionCall", + "src": "6325:31:14" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:14", + "nodeType": "YulIdentifier", + "src": "6317:4:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2204, + "isOffset": false, + "isSlot": false, + "src": "6073:11:14", + "valueSize": 1 + }, + { + "declaration": 2204, + "isOffset": false, + "isSlot": false, + "src": "6092:11:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "6177:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "6190:5:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6105:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6197:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6317:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6340:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6347:4:14", + "valueSize": 1 + } + ], + "id": 2249, + "nodeType": "InlineAssembly", + "src": "5999:371:14" + }, + { + "expression": { + "id": 2254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2250, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "6436:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2251, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2216, + "src": "6445:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2252, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "6453:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2255, + "nodeType": "ExpressionStatement", + "src": "6436:21:14" + }, + { + "assignments": [ + 2257 + ], + "declarations": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "6775:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2256, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2264, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2259, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "6798:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2261, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:14" + }, + { + "expression": { + "id": 2271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2265, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7031:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7042:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2267, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7046:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2268, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7060:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7046:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7042:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7031:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2272, + "nodeType": "ExpressionStatement", + "src": "7031:36:14" + }, + { + "expression": { + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2273, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7100:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7111:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2275, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7115:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2276, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7129:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7115:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7111:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7100:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2280, + "nodeType": "ExpressionStatement", + "src": "7100:36:14" + }, + { + "expression": { + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2281, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7170:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2283, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7185:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2284, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7199:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7181:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7170:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2288, + "nodeType": "ExpressionStatement", + "src": "7170:36:14" + }, + { + "expression": { + "id": 2295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2289, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7240:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2291, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7255:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2292, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7269:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2296, + "nodeType": "ExpressionStatement", + "src": "7240:36:14" + }, + { + "expression": { + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2297, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7310:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2299, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7325:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2300, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7339:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2304, + "nodeType": "ExpressionStatement", + "src": "7310:36:14" + }, + { + "expression": { + "id": 2311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2305, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7381:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2307, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7396:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2308, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7410:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2312, + "nodeType": "ExpressionStatement", + "src": "7381:36:14" + }, + { + "expression": { + "id": 2317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2313, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "7851:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2314, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "7860:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2315, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7868:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2318, + "nodeType": "ExpressionStatement", + "src": "7851:24:14" + }, + { + "expression": { + "id": 2319, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "7896:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2208, + "id": 2320, + "nodeType": "Return", + "src": "7889:13:14" + } + ] + } + ] + }, + "documentation": { + "id": 2198, + "nodeType": "StructuredDocumentation", + "src": "3485:313:14", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 2323, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2200, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3819:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3819:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2202, + "mutability": "mutable", + "name": "y", + "nameLocation": "3838:1:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3830:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3830:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2204, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "3849:11:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3841:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3841:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3818:43:14" + }, + "returnParameters": { + "id": 2208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2207, + "mutability": "mutable", + "name": "result", + "nameLocation": "3893:6:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3885:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2206, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3885:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3884:16:14" + }, + "scope": 2989, + "src": "3803:4116:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2365, + "nodeType": "Block", + "src": "8161:192:14", + "statements": [ + { + "assignments": [ + 2339 + ], + "declarations": [ + { + "constant": false, + "id": 2339, + "mutability": "mutable", + "name": "result", + "nameLocation": "8179:6:14", + "nodeType": "VariableDeclaration", + "scope": 2365, + "src": "8171:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2345, + "initialValue": { + "arguments": [ + { + "id": 2341, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "8195:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2342, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2328, + "src": "8198:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2343, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "8201:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2340, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2323, + 2366 + ], + "referencedDeclaration": 2323, + "src": "8188:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8188:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8171:42:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2347, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "8244:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2346, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "8227:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8227:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2350, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "8264:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2351, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2328, + "src": "8267:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2352, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "8270:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2349, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "8257:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8257:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8285:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8257:29:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8227:59:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2362, + "nodeType": "IfStatement", + "src": "8223:101:14", + "trueBody": { + "id": 2361, + "nodeType": "Block", + "src": "8288:36:14", + "statements": [ + { + "expression": { + "id": 2359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2357, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "8302:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8312:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8302:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2360, + "nodeType": "ExpressionStatement", + "src": "8302:11:14" + } + ] + } + }, + { + "expression": { + "id": 2363, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "8340:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2337, + "id": 2364, + "nodeType": "Return", + "src": "8333:13:14" + } + ] + }, + "documentation": { + "id": 2324, + "nodeType": "StructuredDocumentation", + "src": "7925:121:14", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 2366, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "8060:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2326, + "mutability": "mutable", + "name": "x", + "nameLocation": "8075:1:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8067:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2325, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8067:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2328, + "mutability": "mutable", + "name": "y", + "nameLocation": "8086:1:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8078:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8078:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2330, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "8097:11:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8089:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2333, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8119:8:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8110:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2332, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2331, + "name": "Rounding", + "nameLocations": [ + "8110:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "8110:8:14" + }, + "referencedDeclaration": 1946, + "src": "8110:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8066:62:14" + }, + "returnParameters": { + "id": 2337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2336, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8152:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8152:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8151:9:14" + }, + "scope": 2989, + "src": "8051:302:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2477, + "nodeType": "Block", + "src": "8644:1585:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2374, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "8658:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8663:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8658:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2380, + "nodeType": "IfStatement", + "src": "8654:45:14", + "trueBody": { + "id": 2379, + "nodeType": "Block", + "src": "8666:33:14", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8687:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2373, + "id": 2378, + "nodeType": "Return", + "src": "8680:8:14" + } + ] + } + }, + { + "assignments": [ + 2382 + ], + "declarations": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "result", + "nameLocation": "9386:6:14", + "nodeType": "VariableDeclaration", + "scope": 2477, + "src": "9378:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9378:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2391, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9395:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2385, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9406:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2384, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2645, + 2680 + ], + "referencedDeclaration": 2645, + "src": "9401:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9401:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9412:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9401:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2389, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9400:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9395:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9378:36:14" + }, + { + "id": 2476, + "nodeType": "UncheckedBlock", + "src": "9815:408:14", + "statements": [ + { + "expression": { + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2392, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9839:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2393, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9849:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2394, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9858:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2395, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9862:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9858:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9849:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2398, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9848:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9873:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9848:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9839:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2402, + "nodeType": "ExpressionStatement", + "src": "9839:35:14" + }, + { + "expression": { + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2403, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9888:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2404, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9898:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2405, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9907:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2406, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9911:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9907:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9898:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2409, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9897:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9922:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9897:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9888:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2413, + "nodeType": "ExpressionStatement", + "src": "9888:35:14" + }, + { + "expression": { + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2414, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9937:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2415, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9947:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2416, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9956:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2417, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9960:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9956:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9947:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2420, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9946:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9971:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9946:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9937:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2424, + "nodeType": "ExpressionStatement", + "src": "9937:35:14" + }, + { + "expression": { + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2425, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2426, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9996:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2427, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10005:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2428, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10009:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10005:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9996:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2431, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9995:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10020:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9995:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9986:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2435, + "nodeType": "ExpressionStatement", + "src": "9986:35:14" + }, + { + "expression": { + "id": 2445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2436, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10035:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2437, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10045:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2438, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10054:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2439, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10054:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10045:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2442, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10044:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10069:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10044:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10035:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2446, + "nodeType": "ExpressionStatement", + "src": "10035:35:14" + }, + { + "expression": { + "id": 2456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2447, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10084:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2448, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10094:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2449, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10103:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2450, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10107:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10094:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10093:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10118:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10093:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10084:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2457, + "nodeType": "ExpressionStatement", + "src": "10084:35:14" + }, + { + "expression": { + "id": 2467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2458, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10133:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2459, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10143:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2460, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10152:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2461, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10156:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10152:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10143:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2464, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10142:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10142:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10133:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2468, + "nodeType": "ExpressionStatement", + "src": "10133:35:14" + }, + { + "expression": { + "arguments": [ + { + "id": 2470, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10193:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2471, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10201:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2472, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10201:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2140, + "src": "10189:3:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10189:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2373, + "id": 2475, + "nodeType": "Return", + "src": "10182:30:14" + } + ] + } + ] + }, + "documentation": { + "id": 2367, + "nodeType": "StructuredDocumentation", + "src": "8359:223:14", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 2478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8596:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2369, + "mutability": "mutable", + "name": "a", + "nameLocation": "8609:1:14", + "nodeType": "VariableDeclaration", + "scope": 2478, + "src": "8601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8600:11:14" + }, + "returnParameters": { + "id": 2373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2478, + "src": "8635:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8635:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8634:9:14" + }, + "scope": 2989, + "src": "8587:1642:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2512, + "nodeType": "Block", + "src": "10405:164:14", + "statements": [ + { + "id": 2511, + "nodeType": "UncheckedBlock", + "src": "10415:148:14", + "statements": [ + { + "assignments": [ + 2490 + ], + "declarations": [ + { + "constant": false, + "id": 2490, + "mutability": "mutable", + "name": "result", + "nameLocation": "10447:6:14", + "nodeType": "VariableDeclaration", + "scope": 2511, + "src": "10439:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10439:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2494, + "initialValue": { + "arguments": [ + { + "id": 2492, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "10461:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2491, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2478, + 2513 + ], + "referencedDeclaration": 2478, + "src": "10456:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10456:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10439:24:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2495, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "10484:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2497, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2484, + "src": "10511:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2496, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "10494:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10494:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2499, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "10524:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2500, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "10533:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2502, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "10542:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10494:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10494:57:14", + "trueExpression": { + "hexValue": "31", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10546:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2508, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10493:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "10484:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2488, + "id": 2510, + "nodeType": "Return", + "src": "10477:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 2479, + "nodeType": "StructuredDocumentation", + "src": "10235:89:14", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 2513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "10338:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2481, + "mutability": "mutable", + "name": "a", + "nameLocation": "10351:1:14", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "10343:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10343:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2484, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10363:8:14", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "10354:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2483, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2482, + "name": "Rounding", + "nameLocations": [ + "10354:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "10354:8:14" + }, + "referencedDeclaration": 1946, + "src": "10354:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10342:30:14" + }, + "returnParameters": { + "id": 2488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2487, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "10396:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2486, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10396:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10395:9:14" + }, + "scope": 2989, + "src": "10329:240:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2644, + "nodeType": "Block", + "src": "10760:922:14", + "statements": [ + { + "assignments": [ + 2522 + ], + "declarations": [ + { + "constant": false, + "id": 2522, + "mutability": "mutable", + "name": "result", + "nameLocation": "10778:6:14", + "nodeType": "VariableDeclaration", + "scope": 2644, + "src": "10770:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10770:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2524, + "initialValue": { + "hexValue": "30", + "id": 2523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10787:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10770:18:14" + }, + { + "id": 2641, + "nodeType": "UncheckedBlock", + "src": "10798:855:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10826:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10835:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10826:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10841:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10826:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2539, + "nodeType": "IfStatement", + "src": "10822:99:14", + "trueBody": { + "id": 2538, + "nodeType": "Block", + "src": "10844:77:14", + "statements": [ + { + "expression": { + "id": 2532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10862:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10872:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10862:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2533, + "nodeType": "ExpressionStatement", + "src": "10862:13:14" + }, + { + "expression": { + "id": 2536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2534, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "10893:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10903:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10893:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2537, + "nodeType": "ExpressionStatement", + "src": "10893:13:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2540, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10938:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10947:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10938:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10952:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10938:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2554, + "nodeType": "IfStatement", + "src": "10934:96:14", + "trueBody": { + "id": 2553, + "nodeType": "Block", + "src": "10955:75:14", + "statements": [ + { + "expression": { + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2545, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10973:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10983:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10973:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2548, + "nodeType": "ExpressionStatement", + "src": "10973:12:14" + }, + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2549, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11003:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11013:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11003:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "11003:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2555, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11047:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11056:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11047:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11061:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11047:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2569, + "nodeType": "IfStatement", + "src": "11043:96:14", + "trueBody": { + "id": 2568, + "nodeType": "Block", + "src": "11064:75:14", + "statements": [ + { + "expression": { + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2560, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11082:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 2561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11092:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11082:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2563, + "nodeType": "ExpressionStatement", + "src": "11082:12:14" + }, + { + "expression": { + "id": 2566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2564, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11112:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11112:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2567, + "nodeType": "ExpressionStatement", + "src": "11112:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2570, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11156:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11165:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11156:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11170:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11156:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2584, + "nodeType": "IfStatement", + "src": "11152:96:14", + "trueBody": { + "id": 2583, + "nodeType": "Block", + "src": "11173:75:14", + "statements": [ + { + "expression": { + "id": 2577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2575, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11191:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11201:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11191:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2578, + "nodeType": "ExpressionStatement", + "src": "11191:12:14" + }, + { + "expression": { + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2579, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11221:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11231:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11221:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2582, + "nodeType": "ExpressionStatement", + "src": "11221:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2585, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11274:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11265:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11278:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11265:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2599, + "nodeType": "IfStatement", + "src": "11261:93:14", + "trueBody": { + "id": 2598, + "nodeType": "Block", + "src": "11281:73:14", + "statements": [ + { + "expression": { + "id": 2592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2590, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11299:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 2591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11309:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11299:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2593, + "nodeType": "ExpressionStatement", + "src": "11299:11:14" + }, + { + "expression": { + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2594, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11328:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11338:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11328:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2597, + "nodeType": "ExpressionStatement", + "src": "11328:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2600, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11371:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 2601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11380:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11371:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11384:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11371:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2614, + "nodeType": "IfStatement", + "src": "11367:93:14", + "trueBody": { + "id": 2613, + "nodeType": "Block", + "src": "11387:73:14", + "statements": [ + { + "expression": { + "id": 2607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2605, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11405:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11415:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11405:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2608, + "nodeType": "ExpressionStatement", + "src": "11405:11:14" + }, + { + "expression": { + "id": 2611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2609, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11434:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11434:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2612, + "nodeType": "ExpressionStatement", + "src": "11434:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2615, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11477:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11486:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11477:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11477:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2629, + "nodeType": "IfStatement", + "src": "11473:93:14", + "trueBody": { + "id": 2628, + "nodeType": "Block", + "src": "11493:73:14", + "statements": [ + { + "expression": { + "id": 2622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2620, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11511:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 2621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11521:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11511:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2623, + "nodeType": "ExpressionStatement", + "src": "11511:11:14" + }, + { + "expression": { + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2624, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11540:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11540:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2627, + "nodeType": "ExpressionStatement", + "src": "11540:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2630, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11583:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11592:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11583:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11596:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11583:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2640, + "nodeType": "IfStatement", + "src": "11579:64:14", + "trueBody": { + "id": 2639, + "nodeType": "Block", + "src": "11599:44:14", + "statements": [ + { + "expression": { + "id": 2637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2635, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11617:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11627:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11617:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2638, + "nodeType": "ExpressionStatement", + "src": "11617:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2642, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11669:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2520, + "id": 2643, + "nodeType": "Return", + "src": "11662:13:14" + } + ] + }, + "documentation": { + "id": 2514, + "nodeType": "StructuredDocumentation", + "src": "10575:119:14", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 2645, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "10708:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2516, + "mutability": "mutable", + "name": "value", + "nameLocation": "10721:5:14", + "nodeType": "VariableDeclaration", + "scope": 2645, + "src": "10713:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10713:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10712:15:14" + }, + "returnParameters": { + "id": 2520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2519, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2645, + "src": "10751:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10751:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10750:9:14" + }, + "scope": 2989, + "src": "10699:983:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2679, + "nodeType": "Block", + "src": "11915:168:14", + "statements": [ + { + "id": 2678, + "nodeType": "UncheckedBlock", + "src": "11925:152:14", + "statements": [ + { + "assignments": [ + 2657 + ], + "declarations": [ + { + "constant": false, + "id": 2657, + "mutability": "mutable", + "name": "result", + "nameLocation": "11957:6:14", + "nodeType": "VariableDeclaration", + "scope": 2678, + "src": "11949:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2661, + "initialValue": { + "arguments": [ + { + "id": 2659, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "11971:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2658, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2645, + 2680 + ], + "referencedDeclaration": 2645, + "src": "11966:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11966:11:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:28:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2662, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2657, + "src": "11998:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2664, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2651, + "src": "12025:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2663, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "12008:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12008:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 2667, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2657, + "src": "12043:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2669, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "12052:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12008:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12064:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12008:57:14", + "trueExpression": { + "hexValue": "31", + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12060:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2675, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12007:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11998:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2655, + "id": 2677, + "nodeType": "Return", + "src": "11991:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 2646, + "nodeType": "StructuredDocumentation", + "src": "11688:142:14", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2680, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "11844:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2648, + "mutability": "mutable", + "name": "value", + "nameLocation": "11857:5:14", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "11849:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11849:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2651, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11873:8:14", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "11864:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2650, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2649, + "name": "Rounding", + "nameLocations": [ + "11864:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "11864:8:14" + }, + "referencedDeclaration": 1946, + "src": "11864:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11848:34:14" + }, + "returnParameters": { + "id": 2655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2654, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "11906:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11906:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11905:9:14" + }, + "scope": 2989, + "src": "11835:248:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2808, + "nodeType": "Block", + "src": "12276:854:14", + "statements": [ + { + "assignments": [ + 2689 + ], + "declarations": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "result", + "nameLocation": "12294:6:14", + "nodeType": "VariableDeclaration", + "scope": 2808, + "src": "12286:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12286:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2691, + "initialValue": { + "hexValue": "30", + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12303:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12286:18:14" + }, + { + "id": 2805, + "nodeType": "UncheckedBlock", + "src": "12314:787:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2692, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12342:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 2695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12351:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 2694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12357:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12351:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12342:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2708, + "nodeType": "IfStatement", + "src": "12338:103:14", + "trueBody": { + "id": 2707, + "nodeType": "Block", + "src": "12361:80:14", + "statements": [ + { + "expression": { + "id": 2701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2697, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12379:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 2700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12388:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12394:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12388:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12379:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2702, + "nodeType": "ExpressionStatement", + "src": "12379:17:14" + }, + { + "expression": { + "id": 2705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2703, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12414:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 2704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12424:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12414:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2706, + "nodeType": "ExpressionStatement", + "src": "12414:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2709, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12467:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12473:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12467:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12458:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2725, + "nodeType": "IfStatement", + "src": "12454:103:14", + "trueBody": { + "id": 2724, + "nodeType": "Block", + "src": "12477:80:14", + "statements": [ + { + "expression": { + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2714, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12495:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12504:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 2716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12510:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12504:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12495:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2719, + "nodeType": "ExpressionStatement", + "src": "12495:17:14" + }, + { + "expression": { + "id": 2722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2720, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12530:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 2721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12540:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12530:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2723, + "nodeType": "ExpressionStatement", + "src": "12530:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2726, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12574:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12583:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12589:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12583:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12574:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2742, + "nodeType": "IfStatement", + "src": "12570:103:14", + "trueBody": { + "id": 2741, + "nodeType": "Block", + "src": "12593:80:14", + "statements": [ + { + "expression": { + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2731, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12611:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12620:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 2733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12626:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12620:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12611:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2736, + "nodeType": "ExpressionStatement", + "src": "12611:17:14" + }, + { + "expression": { + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2737, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12646:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12656:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12646:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2740, + "nodeType": "ExpressionStatement", + "src": "12646:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2743, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12690:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12699:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 2745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12705:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12699:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12690:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "12686:100:14", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "12708:78:14", + "statements": [ + { + "expression": { + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2748, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12726:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12735:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12741:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12735:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12726:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2753, + "nodeType": "ExpressionStatement", + "src": "12726:16:14" + }, + { + "expression": { + "id": 2756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2754, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12760:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12770:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12760:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2757, + "nodeType": "ExpressionStatement", + "src": "12760:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2760, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12803:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12812:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 2762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12818:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12803:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2776, + "nodeType": "IfStatement", + "src": "12799:100:14", + "trueBody": { + "id": 2775, + "nodeType": "Block", + "src": "12821:78:14", + "statements": [ + { + "expression": { + "id": 2769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2765, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12839:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12848:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 2767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12854:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12848:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12839:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2770, + "nodeType": "ExpressionStatement", + "src": "12839:16:14" + }, + { + "expression": { + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2771, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12873:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12883:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12873:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2774, + "nodeType": "ExpressionStatement", + "src": "12873:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2777, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12916:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12925:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12931:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12925:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12916:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2793, + "nodeType": "IfStatement", + "src": "12912:100:14", + "trueBody": { + "id": 2792, + "nodeType": "Block", + "src": "12934:78:14", + "statements": [ + { + "expression": { + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2782, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12952:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12961:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12967:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12961:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12952:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2787, + "nodeType": "ExpressionStatement", + "src": "12952:16:14" + }, + { + "expression": { + "id": 2790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2788, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12996:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12986:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2791, + "nodeType": "ExpressionStatement", + "src": "12986:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2794, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "13029:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13038:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13038:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "13029:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2804, + "nodeType": "IfStatement", + "src": "13025:66:14", + "trueBody": { + "id": 2803, + "nodeType": "Block", + "src": "13047:44:14", + "statements": [ + { + "expression": { + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2799, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "13065:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13075:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2802, + "nodeType": "ExpressionStatement", + "src": "13065:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2806, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "13117:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2687, + "id": 2807, + "nodeType": "Return", + "src": "13110:13:14" + } + ] + }, + "documentation": { + "id": 2681, + "nodeType": "StructuredDocumentation", + "src": "12089:120:14", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 2809, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "12223:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2683, + "mutability": "mutable", + "name": "value", + "nameLocation": "12237:5:14", + "nodeType": "VariableDeclaration", + "scope": 2809, + "src": "12229:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12229:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12228:15:14" + }, + "returnParameters": { + "id": 2687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2686, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2809, + "src": "12267:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12267:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12266:9:14" + }, + "scope": 2989, + "src": "12214:916:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2843, + "nodeType": "Block", + "src": "13365:170:14", + "statements": [ + { + "id": 2842, + "nodeType": "UncheckedBlock", + "src": "13375:154:14", + "statements": [ + { + "assignments": [ + 2821 + ], + "declarations": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "result", + "nameLocation": "13407:6:14", + "nodeType": "VariableDeclaration", + "scope": 2842, + "src": "13399:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13399:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2825, + "initialValue": { + "arguments": [ + { + "id": 2823, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "13422:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2822, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2809, + 2844 + ], + "referencedDeclaration": 2809, + "src": "13416:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13416:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13399:29:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2826, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2821, + "src": "13449:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2828, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2815, + "src": "13476:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2827, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "13459:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13459:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13489:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 2831, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2821, + "src": "13495:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2833, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "13504:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13459:50:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13516:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13459:58:14", + "trueExpression": { + "hexValue": "31", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13512:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2839, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13458:60:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13449:69:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2819, + "id": 2841, + "nodeType": "Return", + "src": "13442:76:14" + } + ] + } + ] + }, + "documentation": { + "id": 2810, + "nodeType": "StructuredDocumentation", + "src": "13136:143:14", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2844, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "13293:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2812, + "mutability": "mutable", + "name": "value", + "nameLocation": "13307:5:14", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "13299:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13299:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2815, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "13323:8:14", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "13314:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2814, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2813, + "name": "Rounding", + "nameLocations": [ + "13314:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "13314:8:14" + }, + "referencedDeclaration": 1946, + "src": "13314:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "13298:34:14" + }, + "returnParameters": { + "id": 2819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2818, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "13356:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13356:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13355:9:14" + }, + "scope": 2989, + "src": "13284:251:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2930, + "nodeType": "Block", + "src": "13855:600:14", + "statements": [ + { + "assignments": [ + 2853 + ], + "declarations": [ + { + "constant": false, + "id": 2853, + "mutability": "mutable", + "name": "result", + "nameLocation": "13873:6:14", + "nodeType": "VariableDeclaration", + "scope": 2930, + "src": "13865:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13865:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2855, + "initialValue": { + "hexValue": "30", + "id": 2854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13882:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13865:18:14" + }, + { + "id": 2927, + "nodeType": "UncheckedBlock", + "src": "13893:533:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2856, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "13921:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13921:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13936:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13921:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2870, + "nodeType": "IfStatement", + "src": "13917:98:14", + "trueBody": { + "id": 2869, + "nodeType": "Block", + "src": "13939:76:14", + "statements": [ + { + "expression": { + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "13957:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 2862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13967:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13957:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2864, + "nodeType": "ExpressionStatement", + "src": "13957:13:14" + }, + { + "expression": { + "id": 2867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2865, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "13988:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13988:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2868, + "nodeType": "ExpressionStatement", + "src": "13988:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2871, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14032:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14041:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14032:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14046:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14032:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2885, + "nodeType": "IfStatement", + "src": "14028:95:14", + "trueBody": { + "id": 2884, + "nodeType": "Block", + "src": "14049:74:14", + "statements": [ + { + "expression": { + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2876, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14067:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 2877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14077:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14067:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2879, + "nodeType": "ExpressionStatement", + "src": "14067:12:14" + }, + { + "expression": { + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2880, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14097:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14097:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2883, + "nodeType": "ExpressionStatement", + "src": "14097:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2886, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14140:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14149:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14140:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14154:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14140:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2900, + "nodeType": "IfStatement", + "src": "14136:95:14", + "trueBody": { + "id": 2899, + "nodeType": "Block", + "src": "14157:74:14", + "statements": [ + { + "expression": { + "id": 2893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2891, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14175:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14185:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14175:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2894, + "nodeType": "ExpressionStatement", + "src": "14175:12:14" + }, + { + "expression": { + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2895, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14215:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "14205:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2898, + "nodeType": "ExpressionStatement", + "src": "14205:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2901, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14257:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14248:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14262:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14248:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2915, + "nodeType": "IfStatement", + "src": "14244:95:14", + "trueBody": { + "id": 2914, + "nodeType": "Block", + "src": "14265:74:14", + "statements": [ + { + "expression": { + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2906, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14283:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14293:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14283:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2909, + "nodeType": "ExpressionStatement", + "src": "14283:12:14" + }, + { + "expression": { + "id": 2912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2910, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14313:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14323:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14313:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2913, + "nodeType": "ExpressionStatement", + "src": "14313:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2916, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14356:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14365:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14356:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14369:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14356:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2926, + "nodeType": "IfStatement", + "src": "14352:64:14", + "trueBody": { + "id": 2925, + "nodeType": "Block", + "src": "14372:44:14", + "statements": [ + { + "expression": { + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2921, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14390:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14400:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14390:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2924, + "nodeType": "ExpressionStatement", + "src": "14390:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2928, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14442:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2851, + "id": 2929, + "nodeType": "Return", + "src": "14435:13:14" + } + ] + }, + "documentation": { + "id": 2845, + "nodeType": "StructuredDocumentation", + "src": "13541:246:14", + "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 2931, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "13801:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2847, + "mutability": "mutable", + "name": "value", + "nameLocation": "13816:5:14", + "nodeType": "VariableDeclaration", + "scope": 2931, + "src": "13808:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13808:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13807:15:14" + }, + "returnParameters": { + "id": 2851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2850, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2931, + "src": "13846:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13846:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13845:9:14" + }, + "scope": 2989, + "src": "13792:663:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2968, + "nodeType": "Block", + "src": "14692:177:14", + "statements": [ + { + "id": 2967, + "nodeType": "UncheckedBlock", + "src": "14702:161:14", + "statements": [ + { + "assignments": [ + 2943 + ], + "declarations": [ + { + "constant": false, + "id": 2943, + "mutability": "mutable", + "name": "result", + "nameLocation": "14734:6:14", + "nodeType": "VariableDeclaration", + "scope": 2967, + "src": "14726:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14726:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2947, + "initialValue": { + "arguments": [ + { + "id": 2945, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "14750:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2944, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2931, + 2969 + ], + "referencedDeclaration": 2931, + "src": "14743:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14743:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14726:30:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2948, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2943, + "src": "14777:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2950, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2937, + "src": "14804:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2949, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "14787:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14817:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2953, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2943, + "src": "14823:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 2954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14833:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "14823:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2956, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14822:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2958, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "14838:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14787:56:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14850:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14787:64:14", + "trueExpression": { + "hexValue": "31", + "id": 2961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14846:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2964, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14786:66:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14777:75:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2941, + "id": 2966, + "nodeType": "Return", + "src": "14770:82:14" + } + ] + } + ] + }, + "documentation": { + "id": 2932, + "nodeType": "StructuredDocumentation", + "src": "14461:144:14", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "14619:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2934, + "mutability": "mutable", + "name": "value", + "nameLocation": "14634:5:14", + "nodeType": "VariableDeclaration", + "scope": 2969, + "src": "14626:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14626:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2937, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "14650:8:14", + "nodeType": "VariableDeclaration", + "scope": 2969, + "src": "14641:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2936, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2935, + "name": "Rounding", + "nameLocations": [ + "14641:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "14641:8:14" + }, + "referencedDeclaration": 1946, + "src": "14641:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "14625:34:14" + }, + "returnParameters": { + "id": 2941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2940, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2969, + "src": "14683:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2939, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14683:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14682:9:14" + }, + "scope": 2989, + "src": "14610:259:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2987, + "nodeType": "Block", + "src": "15067:48:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2980, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "15090:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15084:5:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2978, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15084:5:14", + "typeDescriptions": {} + } + }, + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15084:15:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15102:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15084:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15084:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2977, + "id": 2986, + "nodeType": "Return", + "src": "15077:31:14" + } + ] + }, + "documentation": { + "id": 2970, + "nodeType": "StructuredDocumentation", + "src": "14875:113:14", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 2988, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "15002:16:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "15028:8:14", + "nodeType": "VariableDeclaration", + "scope": 2988, + "src": "15019:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2972, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2971, + "name": "Rounding", + "nameLocations": [ + "15019:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "15019:8:14" + }, + "referencedDeclaration": 1946, + "src": "15019:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "15018:19:14" + }, + "returnParameters": { + "id": 2977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2976, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2988, + "src": "15061:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2975, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15061:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15060:6:14" + }, + "scope": 2989, + "src": "14993:122:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2990, + "src": "203:14914:14", + "usedErrors": [ + 1941 + ], + "usedEvents": [] + } + ], + "src": "103:15015:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SignedMath": [ + 3094 + ] + }, + "id": 3095, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2991, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2992, + "nodeType": "StructuredDocumentation", + "src": "135:80:15", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3094, + "linearizedBaseContracts": [ + 3094 + ], + "name": "SignedMath", + "nameLocation": "224:10:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3009, + "nodeType": "Block", + "src": "376:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2995, + "src": "393:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "397:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "393:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3006, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "405:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "393:13:15", + "trueExpression": { + "id": 3005, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2995, + "src": "401:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3001, + "id": 3008, + "nodeType": "Return", + "src": "386:20:15" + } + ] + }, + "documentation": { + "id": 2993, + "nodeType": "StructuredDocumentation", + "src": "241:66:15", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 3010, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "321:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2995, + "mutability": "mutable", + "name": "a", + "nameLocation": "332:1:15", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "325:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2994, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "325:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2997, + "mutability": "mutable", + "name": "b", + "nameLocation": "342:1:15", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "335:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2996, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "335:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "324:20:15" + }, + "returnParameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "368:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2999, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "368:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "367:8:15" + }, + "scope": 3094, + "src": "312:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3027, + "nodeType": "Block", + "src": "555:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3020, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3013, + "src": "572:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3021, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "576:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "572:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3024, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "584:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "572:13:15", + "trueExpression": { + "id": 3023, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3013, + "src": "580:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3019, + "id": 3026, + "nodeType": "Return", + "src": "565:20:15" + } + ] + }, + "documentation": { + "id": 3011, + "nodeType": "StructuredDocumentation", + "src": "419:67:15", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 3028, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "500:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3013, + "mutability": "mutable", + "name": "a", + "nameLocation": "511:1:15", + "nodeType": "VariableDeclaration", + "scope": 3028, + "src": "504:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3012, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "504:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "b", + "nameLocation": "521:1:15", + "nodeType": "VariableDeclaration", + "scope": 3028, + "src": "514:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3014, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "514:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "503:20:15" + }, + "returnParameters": { + "id": 3019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3018, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3028, + "src": "547:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3017, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "547:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "546:8:15" + }, + "scope": 3094, + "src": "491:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3071, + "nodeType": "Block", + "src": "797:162:15", + "statements": [ + { + "assignments": [ + 3039 + ], + "declarations": [ + { + "constant": false, + "id": 3039, + "mutability": "mutable", + "name": "x", + "nameLocation": "866:1:15", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "859:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3038, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "859:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 3052, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3040, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "871:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 3041, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "875:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "871:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3043, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "870:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3044, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "882:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3045, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "886:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "882:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3047, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "881:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "892:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "881:12:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3050, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "880:14:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "870:24:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "859:35:15" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3053, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "911:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3058, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "931:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "923:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:15", + "typeDescriptions": {} + } + }, + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "923:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 3060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "937:3:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "923:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "916:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 3054, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "916:6:15", + "typeDescriptions": {} + } + }, + "id": 3062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:25:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3063, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "945:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3064, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "949:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "945:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3066, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "944:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "916:35:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3068, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "915:37:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "911:41:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3037, + "id": 3070, + "nodeType": "Return", + "src": "904:48:15" + } + ] + }, + "documentation": { + "id": 3029, + "nodeType": "StructuredDocumentation", + "src": "598:126:15", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 3072, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "738:7:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3031, + "mutability": "mutable", + "name": "a", + "nameLocation": "753:1:15", + "nodeType": "VariableDeclaration", + "scope": 3072, + "src": "746:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3030, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "746:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3033, + "mutability": "mutable", + "name": "b", + "nameLocation": "763:1:15", + "nodeType": "VariableDeclaration", + "scope": 3072, + "src": "756:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3032, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "756:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "745:20:15" + }, + "returnParameters": { + "id": 3037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3036, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3072, + "src": "789:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3035, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "789:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "788:8:15" + }, + "scope": 3094, + "src": "729:230:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3092, + "nodeType": "Block", + "src": "1103:158:15", + "statements": [ + { + "id": 3091, + "nodeType": "UncheckedBlock", + "src": "1113:142:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3082, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3075, + "src": "1228:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1228:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1241:2:15", + "subExpression": { + "id": 3086, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3075, + "src": "1242:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1228:15:15", + "trueExpression": { + "id": 3085, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3075, + "src": "1237:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1220:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3080, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1220:7:15", + "typeDescriptions": {} + } + }, + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1220:24:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3079, + "id": 3090, + "nodeType": "Return", + "src": "1213:31:15" + } + ] + } + ] + }, + "documentation": { + "id": 3073, + "nodeType": "StructuredDocumentation", + "src": "965:78:15", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 3093, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1057:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3076, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3075, + "mutability": "mutable", + "name": "n", + "nameLocation": "1068:1:15", + "nodeType": "VariableDeclaration", + "scope": 3093, + "src": "1061:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3074, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:10:15" + }, + "returnParameters": { + "id": 3079, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3078, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3093, + "src": "1094:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3077, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1094:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:9:15" + }, + "scope": 3094, + "src": "1048:213:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3095, + "src": "216:1047:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:1155:15" + }, + "id": 15 + }, + "contracts/Base64.sol": { + "ast": { + "absolutePath": "contracts/Base64.sol", + "exportedSymbols": { + "Base64": [ + 3189 + ] + }, + "id": 3190, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3096, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:16" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Base64", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3097, + "nodeType": "StructuredDocumentation", + "src": "131:77:16", + "text": " @dev Provides a set of functions to operate with Base64 strings." + }, + "fullyImplemented": true, + "id": 3189, + "linearizedBaseContracts": [ + 3189 + ], + "name": "Base64", + "nameLocation": "218:6:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 3098, + "nodeType": "StructuredDocumentation", + "src": "232:134:16", + "text": " @dev Base64 Encoding/Decoding Table\n See sections 4 and 5 of https://datatracker.ietf.org/doc/html/rfc4648" + }, + "id": 3101, + "mutability": "constant", + "name": "_TABLE", + "nameLocation": "397:6:16", + "nodeType": "VariableDeclaration", + "scope": 3189, + "src": "372:100:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3099, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "372:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f", + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "406:66:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_84d8a590de33e00cbdc16e1f28c3506f5ec15c599fab9a6a4bcd575cc2f110ce", + "typeString": "literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"" + }, + "value": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 3104, + "mutability": "constant", + "name": "_TABLE_URL", + "nameLocation": "504:10:16", + "nodeType": "VariableDeclaration", + "scope": 3189, + "src": "479:104:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3102, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "479:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f", + "id": 3103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "517:66:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5f7e6d3cba140c1411e96b7033571a229a3135b5c436a9698b398a19a1c64b50", + "typeString": "literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"" + }, + "value": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" + }, + "visibility": "internal" + }, + { + "body": { + "id": 3118, + "nodeType": "Block", + "src": "755:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3113, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "781:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 3114, + "name": "_TABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3101, + "src": "787:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "74727565", + "id": 3115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "795:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3112, + "name": "_encode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3188, + "src": "773:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory,string memory,bool) pure returns (string memory)" + } + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "773:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3111, + "id": 3117, + "nodeType": "Return", + "src": "766:34:16" + } + ] + }, + "documentation": { + "id": 3105, + "nodeType": "StructuredDocumentation", + "src": "592:84:16", + "text": " @dev Converts a `bytes` to its Bytes64 `string` representation." + }, + "id": 3119, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nameLocation": "691:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3107, + "mutability": "mutable", + "name": "data", + "nameLocation": "711:4:16", + "nodeType": "VariableDeclaration", + "scope": 3119, + "src": "698:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3106, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "698:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "697:19:16" + }, + "returnParameters": { + "id": 3111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3119, + "src": "740:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3109, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "740:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "739:15:16" + }, + "scope": 3189, + "src": "682:126:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3133, + "nodeType": "Block", + "src": "1088:58:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3128, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3122, + "src": "1114:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 3129, + "name": "_TABLE_URL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "1120:10:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "66616c7365", + "id": 3130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1132:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3127, + "name": "_encode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3188, + "src": "1106:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory,string memory,bool) pure returns (string memory)" + } + }, + "id": 3131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1106:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3126, + "id": 3132, + "nodeType": "Return", + "src": "1099:39:16" + } + ] + }, + "documentation": { + "id": 3120, + "nodeType": "StructuredDocumentation", + "src": "816:190:16", + "text": " @dev Converts a `bytes` to its Bytes64Url `string` representation.\n Output is not padded with `=` as specified in https://www.rfc-editor.org/rfc/rfc4648[rfc4648]." + }, + "id": 3134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encodeURL", + "nameLocation": "1021:9:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3122, + "mutability": "mutable", + "name": "data", + "nameLocation": "1044:4:16", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "1031:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3121, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1031:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1030:19:16" + }, + "returnParameters": { + "id": 3126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3125, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "1073:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3124, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1073:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1072:15:16" + }, + "scope": 3189, + "src": "1012:134:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3187, + "nodeType": "Block", + "src": "1332:3997:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3146, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "1554:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1559:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1554:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1569:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1554:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": " Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol", + "id": 3152, + "nodeType": "IfStatement", + "src": "1550:31:16", + "trueBody": { + "expression": { + "hexValue": "", + "id": 3150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1579:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 3145, + "id": 3151, + "nodeType": "Return", + "src": "1572:9:16" + } + }, + { + "assignments": [ + 3154 + ], + "declarations": [ + { + "constant": false, + "id": 3154, + "mutability": "mutable", + "name": "resultLength", + "nameLocation": "2542:12:16", + "nodeType": "VariableDeclaration", + "scope": 3187, + "src": "2534:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2534:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3176, + "initialValue": { + "condition": { + "id": 3155, + "name": "withPadding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3141, + "src": "2557:11:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34", + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2602:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "expression": { + "id": 3167, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "2606:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2611:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2606:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2602:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 3170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2620:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2602:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3172, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2601:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "33", + "id": 3173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2625:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "2601:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2557:69:16", + "trueExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2571:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3157, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "2577:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2582:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2577:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 3159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2591:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2577:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3161, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2576:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "33", + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2596:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "2576:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3164, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2575:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2571:27:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2534:92:16" + }, + { + "assignments": [ + 3178 + ], + "declarations": [ + { + "constant": false, + "id": 3178, + "mutability": "mutable", + "name": "result", + "nameLocation": "2653:6:16", + "nodeType": "VariableDeclaration", + "scope": 3187, + "src": "2639:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3177, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2639:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3183, + "initialValue": { + "arguments": [ + { + "id": 3181, + "name": "resultLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3154, + "src": "2673:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2662:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 3179, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2666:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2662:24:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2639:47:16" + }, + { + "AST": { + "nativeSrc": "2724:2572:16", + "nodeType": "YulBlock", + "src": "2724:2572:16", + "statements": [ + { + "nativeSrc": "2811:29:16", + "nodeType": "YulVariableDeclaration", + "src": "2811:29:16", + "value": { + "arguments": [ + { + "name": "table", + "nativeSrc": "2831:5:16", + "nodeType": "YulIdentifier", + "src": "2831:5:16" + }, + { + "kind": "number", + "nativeSrc": "2838:1:16", + "nodeType": "YulLiteral", + "src": "2838:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2827:3:16", + "nodeType": "YulIdentifier", + "src": "2827:3:16" + }, + "nativeSrc": "2827:13:16", + "nodeType": "YulFunctionCall", + "src": "2827:13:16" + }, + "variables": [ + { + "name": "tablePtr", + "nativeSrc": "2815:8:16", + "nodeType": "YulTypedName", + "src": "2815:8:16", + "type": "" + } + ] + }, + { + "nativeSrc": "2913:34:16", + "nodeType": "YulVariableDeclaration", + "src": "2913:34:16", + "value": { + "arguments": [ + { + "name": "result", + "nativeSrc": "2934:6:16", + "nodeType": "YulIdentifier", + "src": "2934:6:16" + }, + { + "kind": "number", + "nativeSrc": "2942:4:16", + "nodeType": "YulLiteral", + "src": "2942:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2930:3:16", + "nodeType": "YulIdentifier", + "src": "2930:3:16" + }, + "nativeSrc": "2930:17:16", + "nodeType": "YulFunctionCall", + "src": "2930:17:16" + }, + "variables": [ + { + "name": "resultPtr", + "nativeSrc": "2917:9:16", + "nodeType": "YulTypedName", + "src": "2917:9:16", + "type": "" + } + ] + }, + { + "nativeSrc": "2961:19:16", + "nodeType": "YulVariableDeclaration", + "src": "2961:19:16", + "value": { + "name": "data", + "nativeSrc": "2976:4:16", + "nodeType": "YulIdentifier", + "src": "2976:4:16" + }, + "variables": [ + { + "name": "dataPtr", + "nativeSrc": "2965:7:16", + "nodeType": "YulTypedName", + "src": "2965:7:16", + "type": "" + } + ] + }, + { + "nativeSrc": "2994:36:16", + "nodeType": "YulVariableDeclaration", + "src": "2994:36:16", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3012:4:16", + "nodeType": "YulIdentifier", + "src": "3012:4:16" + }, + { + "arguments": [ + { + "name": "data", + "nativeSrc": "3024:4:16", + "nodeType": "YulIdentifier", + "src": "3024:4:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3018:5:16", + "nodeType": "YulIdentifier", + "src": "3018:5:16" + }, + "nativeSrc": "3018:11:16", + "nodeType": "YulFunctionCall", + "src": "3018:11:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3008:3:16", + "nodeType": "YulIdentifier", + "src": "3008:3:16" + }, + "nativeSrc": "3008:22:16", + "nodeType": "YulFunctionCall", + "src": "3008:22:16" + }, + "variables": [ + { + "name": "endPtr", + "nativeSrc": "2998:6:16", + "nodeType": "YulTypedName", + "src": "2998:6:16", + "type": "" + } + ] + }, + { + "nativeSrc": "3248:33:16", + "nodeType": "YulVariableDeclaration", + "src": "3248:33:16", + "value": { + "arguments": [ + { + "name": "endPtr", + "nativeSrc": "3268:6:16", + "nodeType": "YulIdentifier", + "src": "3268:6:16" + }, + { + "kind": "number", + "nativeSrc": "3276:4:16", + "nodeType": "YulLiteral", + "src": "3276:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3264:3:16", + "nodeType": "YulIdentifier", + "src": "3264:3:16" + }, + "nativeSrc": "3264:17:16", + "nodeType": "YulFunctionCall", + "src": "3264:17:16" + }, + "variables": [ + { + "name": "afterPtr", + "nativeSrc": "3252:8:16", + "nodeType": "YulTypedName", + "src": "3252:8:16", + "type": "" + } + ] + }, + { + "nativeSrc": "3295:33:16", + "nodeType": "YulVariableDeclaration", + "src": "3295:33:16", + "value": { + "arguments": [ + { + "name": "afterPtr", + "nativeSrc": "3319:8:16", + "nodeType": "YulIdentifier", + "src": "3319:8:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3313:5:16", + "nodeType": "YulIdentifier", + "src": "3313:5:16" + }, + "nativeSrc": "3313:15:16", + "nodeType": "YulFunctionCall", + "src": "3313:15:16" + }, + "variables": [ + { + "name": "afterCache", + "nativeSrc": "3299:10:16", + "nodeType": "YulTypedName", + "src": "3299:10:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "afterPtr", + "nativeSrc": "3349:8:16", + "nodeType": "YulIdentifier", + "src": "3349:8:16" + }, + { + "kind": "number", + "nativeSrc": "3359:4:16", + "nodeType": "YulLiteral", + "src": "3359:4:16", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3342:6:16", + "nodeType": "YulIdentifier", + "src": "3342:6:16" + }, + "nativeSrc": "3342:22:16", + "nodeType": "YulFunctionCall", + "src": "3342:22:16" + }, + "nativeSrc": "3342:22:16", + "nodeType": "YulExpressionStatement", + "src": "3342:22:16" + }, + { + "body": { + "nativeSrc": "3496:1224:16", + "nodeType": "YulBlock", + "src": "3496:1224:16", + "statements": [ + { + "nativeSrc": "3551:26:16", + "nodeType": "YulAssignment", + "src": "3551:26:16", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "3566:7:16", + "nodeType": "YulIdentifier", + "src": "3566:7:16" + }, + { + "kind": "number", + "nativeSrc": "3575:1:16", + "nodeType": "YulLiteral", + "src": "3575:1:16", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3562:3:16", + "nodeType": "YulIdentifier", + "src": "3562:3:16" + }, + "nativeSrc": "3562:15:16", + "nodeType": "YulFunctionCall", + "src": "3562:15:16" + }, + "variableNames": [ + { + "name": "dataPtr", + "nativeSrc": "3551:7:16", + "nodeType": "YulIdentifier", + "src": "3551:7:16" + } + ] + }, + { + "nativeSrc": "3595:27:16", + "nodeType": "YulVariableDeclaration", + "src": "3595:27:16", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "3614:7:16", + "nodeType": "YulIdentifier", + "src": "3614:7:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3608:5:16", + "nodeType": "YulIdentifier", + "src": "3608:5:16" + }, + "nativeSrc": "3608:14:16", + "nodeType": "YulFunctionCall", + "src": "3608:14:16" + }, + "variables": [ + { + "name": "input", + "nativeSrc": "3599:5:16", + "nodeType": "YulTypedName", + "src": "3599:5:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4159:9:16", + "nodeType": "YulIdentifier", + "src": "4159:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4180:8:16", + "nodeType": "YulIdentifier", + "src": "4180:8:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4198:2:16", + "nodeType": "YulLiteral", + "src": "4198:2:16", + "type": "", + "value": "18" + }, + { + "name": "input", + "nativeSrc": "4202:5:16", + "nodeType": "YulIdentifier", + "src": "4202:5:16" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "4194:3:16", + "nodeType": "YulIdentifier", + "src": "4194:3:16" + }, + "nativeSrc": "4194:14:16", + "nodeType": "YulFunctionCall", + "src": "4194:14:16" + }, + { + "kind": "number", + "nativeSrc": "4210:4:16", + "nodeType": "YulLiteral", + "src": "4210:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4190:3:16", + "nodeType": "YulIdentifier", + "src": "4190:3:16" + }, + "nativeSrc": "4190:25:16", + "nodeType": "YulFunctionCall", + "src": "4190:25:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4176:3:16", + "nodeType": "YulIdentifier", + "src": "4176:3:16" + }, + "nativeSrc": "4176:40:16", + "nodeType": "YulFunctionCall", + "src": "4176:40:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4170:5:16", + "nodeType": "YulIdentifier", + "src": "4170:5:16" + }, + "nativeSrc": "4170:47:16", + "nodeType": "YulFunctionCall", + "src": "4170:47:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4151:7:16", + "nodeType": "YulIdentifier", + "src": "4151:7:16" + }, + "nativeSrc": "4151:67:16", + "nodeType": "YulFunctionCall", + "src": "4151:67:16" + }, + "nativeSrc": "4151:67:16", + "nodeType": "YulExpressionStatement", + "src": "4151:67:16" + }, + { + "nativeSrc": "4236:30:16", + "nodeType": "YulAssignment", + "src": "4236:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4253:9:16", + "nodeType": "YulIdentifier", + "src": "4253:9:16" + }, + { + "kind": "number", + "nativeSrc": "4264:1:16", + "nodeType": "YulLiteral", + "src": "4264:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4249:3:16", + "nodeType": "YulIdentifier", + "src": "4249:3:16" + }, + "nativeSrc": "4249:17:16", + "nodeType": "YulFunctionCall", + "src": "4249:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4236:9:16", + "nodeType": "YulIdentifier", + "src": "4236:9:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4305:9:16", + "nodeType": "YulIdentifier", + "src": "4305:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4326:8:16", + "nodeType": "YulIdentifier", + "src": "4326:8:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4344:2:16", + "nodeType": "YulLiteral", + "src": "4344:2:16", + "type": "", + "value": "12" + }, + { + "name": "input", + "nativeSrc": "4348:5:16", + "nodeType": "YulIdentifier", + "src": "4348:5:16" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "4340:3:16", + "nodeType": "YulIdentifier", + "src": "4340:3:16" + }, + "nativeSrc": "4340:14:16", + "nodeType": "YulFunctionCall", + "src": "4340:14:16" + }, + { + "kind": "number", + "nativeSrc": "4356:4:16", + "nodeType": "YulLiteral", + "src": "4356:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4336:3:16", + "nodeType": "YulIdentifier", + "src": "4336:3:16" + }, + "nativeSrc": "4336:25:16", + "nodeType": "YulFunctionCall", + "src": "4336:25:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4322:3:16", + "nodeType": "YulIdentifier", + "src": "4322:3:16" + }, + "nativeSrc": "4322:40:16", + "nodeType": "YulFunctionCall", + "src": "4322:40:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4316:5:16", + "nodeType": "YulIdentifier", + "src": "4316:5:16" + }, + "nativeSrc": "4316:47:16", + "nodeType": "YulFunctionCall", + "src": "4316:47:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4297:7:16", + "nodeType": "YulIdentifier", + "src": "4297:7:16" + }, + "nativeSrc": "4297:67:16", + "nodeType": "YulFunctionCall", + "src": "4297:67:16" + }, + "nativeSrc": "4297:67:16", + "nodeType": "YulExpressionStatement", + "src": "4297:67:16" + }, + { + "nativeSrc": "4382:30:16", + "nodeType": "YulAssignment", + "src": "4382:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4399:9:16", + "nodeType": "YulIdentifier", + "src": "4399:9:16" + }, + { + "kind": "number", + "nativeSrc": "4410:1:16", + "nodeType": "YulLiteral", + "src": "4410:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4395:3:16", + "nodeType": "YulIdentifier", + "src": "4395:3:16" + }, + "nativeSrc": "4395:17:16", + "nodeType": "YulFunctionCall", + "src": "4395:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4382:9:16", + "nodeType": "YulIdentifier", + "src": "4382:9:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4451:9:16", + "nodeType": "YulIdentifier", + "src": "4451:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4472:8:16", + "nodeType": "YulIdentifier", + "src": "4472:8:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4490:1:16", + "nodeType": "YulLiteral", + "src": "4490:1:16", + "type": "", + "value": "6" + }, + { + "name": "input", + "nativeSrc": "4493:5:16", + "nodeType": "YulIdentifier", + "src": "4493:5:16" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "4486:3:16", + "nodeType": "YulIdentifier", + "src": "4486:3:16" + }, + "nativeSrc": "4486:13:16", + "nodeType": "YulFunctionCall", + "src": "4486:13:16" + }, + { + "kind": "number", + "nativeSrc": "4501:4:16", + "nodeType": "YulLiteral", + "src": "4501:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4482:3:16", + "nodeType": "YulIdentifier", + "src": "4482:3:16" + }, + "nativeSrc": "4482:24:16", + "nodeType": "YulFunctionCall", + "src": "4482:24:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4468:3:16", + "nodeType": "YulIdentifier", + "src": "4468:3:16" + }, + "nativeSrc": "4468:39:16", + "nodeType": "YulFunctionCall", + "src": "4468:39:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4462:5:16", + "nodeType": "YulIdentifier", + "src": "4462:5:16" + }, + "nativeSrc": "4462:46:16", + "nodeType": "YulFunctionCall", + "src": "4462:46:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4443:7:16", + "nodeType": "YulIdentifier", + "src": "4443:7:16" + }, + "nativeSrc": "4443:66:16", + "nodeType": "YulFunctionCall", + "src": "4443:66:16" + }, + "nativeSrc": "4443:66:16", + "nodeType": "YulExpressionStatement", + "src": "4443:66:16" + }, + { + "nativeSrc": "4527:30:16", + "nodeType": "YulAssignment", + "src": "4527:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4544:9:16", + "nodeType": "YulIdentifier", + "src": "4544:9:16" + }, + { + "kind": "number", + "nativeSrc": "4555:1:16", + "nodeType": "YulLiteral", + "src": "4555:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4540:3:16", + "nodeType": "YulIdentifier", + "src": "4540:3:16" + }, + "nativeSrc": "4540:17:16", + "nodeType": "YulFunctionCall", + "src": "4540:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4527:9:16", + "nodeType": "YulIdentifier", + "src": "4527:9:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4596:9:16", + "nodeType": "YulIdentifier", + "src": "4596:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4617:8:16", + "nodeType": "YulIdentifier", + "src": "4617:8:16" + }, + { + "arguments": [ + { + "name": "input", + "nativeSrc": "4631:5:16", + "nodeType": "YulIdentifier", + "src": "4631:5:16" + }, + { + "kind": "number", + "nativeSrc": "4638:4:16", + "nodeType": "YulLiteral", + "src": "4638:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4627:3:16", + "nodeType": "YulIdentifier", + "src": "4627:3:16" + }, + "nativeSrc": "4627:16:16", + "nodeType": "YulFunctionCall", + "src": "4627:16:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4613:3:16", + "nodeType": "YulIdentifier", + "src": "4613:3:16" + }, + "nativeSrc": "4613:31:16", + "nodeType": "YulFunctionCall", + "src": "4613:31:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4607:5:16", + "nodeType": "YulIdentifier", + "src": "4607:5:16" + }, + "nativeSrc": "4607:38:16", + "nodeType": "YulFunctionCall", + "src": "4607:38:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4588:7:16", + "nodeType": "YulIdentifier", + "src": "4588:7:16" + }, + "nativeSrc": "4588:58:16", + "nodeType": "YulFunctionCall", + "src": "4588:58:16" + }, + "nativeSrc": "4588:58:16", + "nodeType": "YulExpressionStatement", + "src": "4588:58:16" + }, + { + "nativeSrc": "4664:30:16", + "nodeType": "YulAssignment", + "src": "4664:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4681:9:16", + "nodeType": "YulIdentifier", + "src": "4681:9:16" + }, + { + "kind": "number", + "nativeSrc": "4692:1:16", + "nodeType": "YulLiteral", + "src": "4692:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4677:3:16", + "nodeType": "YulIdentifier", + "src": "4677:3:16" + }, + "nativeSrc": "4677:17:16", + "nodeType": "YulFunctionCall", + "src": "4677:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4664:9:16", + "nodeType": "YulIdentifier", + "src": "4664:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "3460:7:16", + "nodeType": "YulIdentifier", + "src": "3460:7:16" + }, + { + "name": "endPtr", + "nativeSrc": "3469:6:16", + "nodeType": "YulIdentifier", + "src": "3469:6:16" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3457:2:16", + "nodeType": "YulIdentifier", + "src": "3457:2:16" + }, + "nativeSrc": "3457:19:16", + "nodeType": "YulFunctionCall", + "src": "3457:19:16" + }, + "nativeSrc": "3434:1286:16", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3477:18:16", + "nodeType": "YulBlock", + "src": "3477:18:16", + "statements": [] + }, + "pre": { + "nativeSrc": "3438:18:16", + "nodeType": "YulBlock", + "src": "3438:18:16", + "statements": [] + }, + "src": "3434:1286:16" + }, + { + "expression": { + "arguments": [ + { + "name": "afterPtr", + "nativeSrc": "4791:8:16", + "nodeType": "YulIdentifier", + "src": "4791:8:16" + }, + { + "name": "afterCache", + "nativeSrc": "4801:10:16", + "nodeType": "YulIdentifier", + "src": "4801:10:16" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4784:6:16", + "nodeType": "YulIdentifier", + "src": "4784:6:16" + }, + "nativeSrc": "4784:28:16", + "nodeType": "YulFunctionCall", + "src": "4784:28:16" + }, + "nativeSrc": "4784:28:16", + "nodeType": "YulExpressionStatement", + "src": "4784:28:16" + }, + { + "body": { + "nativeSrc": "4843:442:16", + "nodeType": "YulBlock", + "src": "4843:442:16", + "statements": [ + { + "cases": [ + { + "body": { + "nativeSrc": "5043:128:16", + "nodeType": "YulBlock", + "src": "5043:128:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "5078:9:16", + "nodeType": "YulIdentifier", + "src": "5078:9:16" + }, + { + "kind": "number", + "nativeSrc": "5089:1:16", + "nodeType": "YulLiteral", + "src": "5089:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5074:3:16", + "nodeType": "YulIdentifier", + "src": "5074:3:16" + }, + "nativeSrc": "5074:17:16", + "nodeType": "YulFunctionCall", + "src": "5074:17:16" + }, + { + "kind": "number", + "nativeSrc": "5093:4:16", + "nodeType": "YulLiteral", + "src": "5093:4:16", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "5066:7:16", + "nodeType": "YulIdentifier", + "src": "5066:7:16" + }, + "nativeSrc": "5066:32:16", + "nodeType": "YulFunctionCall", + "src": "5066:32:16" + }, + "nativeSrc": "5066:32:16", + "nodeType": "YulExpressionStatement", + "src": "5066:32:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "5132:9:16", + "nodeType": "YulIdentifier", + "src": "5132:9:16" + }, + { + "kind": "number", + "nativeSrc": "5143:1:16", + "nodeType": "YulLiteral", + "src": "5143:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5128:3:16", + "nodeType": "YulIdentifier", + "src": "5128:3:16" + }, + "nativeSrc": "5128:17:16", + "nodeType": "YulFunctionCall", + "src": "5128:17:16" + }, + { + "kind": "number", + "nativeSrc": "5147:4:16", + "nodeType": "YulLiteral", + "src": "5147:4:16", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "5120:7:16", + "nodeType": "YulIdentifier", + "src": "5120:7:16" + }, + "nativeSrc": "5120:32:16", + "nodeType": "YulFunctionCall", + "src": "5120:32:16" + }, + "nativeSrc": "5120:32:16", + "nodeType": "YulExpressionStatement", + "src": "5120:32:16" + } + ] + }, + "nativeSrc": "5036:135:16", + "nodeType": "YulCase", + "src": "5036:135:16", + "value": { + "kind": "number", + "nativeSrc": "5041:1:16", + "nodeType": "YulLiteral", + "src": "5041:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "5196:74:16", + "nodeType": "YulBlock", + "src": "5196:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "5231:9:16", + "nodeType": "YulIdentifier", + "src": "5231:9:16" + }, + { + "kind": "number", + "nativeSrc": "5242:1:16", + "nodeType": "YulLiteral", + "src": "5242:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5227:3:16", + "nodeType": "YulIdentifier", + "src": "5227:3:16" + }, + "nativeSrc": "5227:17:16", + "nodeType": "YulFunctionCall", + "src": "5227:17:16" + }, + { + "kind": "number", + "nativeSrc": "5246:4:16", + "nodeType": "YulLiteral", + "src": "5246:4:16", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "5219:7:16", + "nodeType": "YulIdentifier", + "src": "5219:7:16" + }, + "nativeSrc": "5219:32:16", + "nodeType": "YulFunctionCall", + "src": "5219:32:16" + }, + "nativeSrc": "5219:32:16", + "nodeType": "YulExpressionStatement", + "src": "5219:32:16" + } + ] + }, + "nativeSrc": "5189:81:16", + "nodeType": "YulCase", + "src": "5189:81:16", + "value": { + "kind": "number", + "nativeSrc": "5194:1:16", + "nodeType": "YulLiteral", + "src": "5194:1:16", + "type": "", + "value": "2" + } + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nativeSrc": "5009:4:16", + "nodeType": "YulIdentifier", + "src": "5009:4:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5003:5:16", + "nodeType": "YulIdentifier", + "src": "5003:5:16" + }, + "nativeSrc": "5003:11:16", + "nodeType": "YulFunctionCall", + "src": "5003:11:16" + }, + { + "kind": "number", + "nativeSrc": "5016:1:16", + "nodeType": "YulLiteral", + "src": "5016:1:16", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "4999:3:16", + "nodeType": "YulIdentifier", + "src": "4999:3:16" + }, + "nativeSrc": "4999:19:16", + "nodeType": "YulFunctionCall", + "src": "4999:19:16" + }, + "nativeSrc": "4992:278:16", + "nodeType": "YulSwitch", + "src": "4992:278:16" + } + ] + }, + "condition": { + "name": "withPadding", + "nativeSrc": "4831:11:16", + "nodeType": "YulIdentifier", + "src": "4831:11:16" + }, + "nativeSrc": "4828:457:16", + "nodeType": "YulIf", + "src": "4828:457:16" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "2976:4:16", + "valueSize": 1 + }, + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "3012:4:16", + "valueSize": 1 + }, + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "3024:4:16", + "valueSize": 1 + }, + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "5009:4:16", + "valueSize": 1 + }, + { + "declaration": 3178, + "isOffset": false, + "isSlot": false, + "src": "2934:6:16", + "valueSize": 1 + }, + { + "declaration": 3139, + "isOffset": false, + "isSlot": false, + "src": "2831:5:16", + "valueSize": 1 + }, + { + "declaration": 3141, + "isOffset": false, + "isSlot": false, + "src": "4831:11:16", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 3184, + "nodeType": "InlineAssembly", + "src": "2699:2597:16" + }, + { + "expression": { + "id": 3185, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3178, + "src": "5315:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3145, + "id": 3186, + "nodeType": "Return", + "src": "5308:13:16" + } + ] + }, + "documentation": { + "id": 3135, + "nodeType": "StructuredDocumentation", + "src": "1154:60:16", + "text": " @dev Internal table-agnostic conversion" + }, + "id": 3188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_encode", + "nameLocation": "1229:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3137, + "mutability": "mutable", + "name": "data", + "nameLocation": "1250:4:16", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1237:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3136, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1237:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3139, + "mutability": "mutable", + "name": "table", + "nameLocation": "1270:5:16", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1256:19:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3138, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1256:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3141, + "mutability": "mutable", + "name": "withPadding", + "nameLocation": "1282:11:16", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1277:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3140, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1277:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1236:58:16" + }, + "returnParameters": { + "id": 3145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3144, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1317:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3143, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1317:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1316:15:16" + }, + "scope": 3189, + "src": "1220:4109:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3190, + "src": "210:5122:16", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "103:5229:16" + }, + "id": 16 + }, + "contracts/CaveParty.sol": { + "ast": { + "absolutePath": "contracts/CaveParty.sol", + "exportedSymbols": { + "CaveParty": [ + 3441 + ], + "Context": [ + 1644 + ], + "ERC165": [ + 1923 + ], + "ERC721": [ + 1325 + ], + "IERC165": [ + 1935 + ], + "IERC721": [ + 1442 + ], + "IERC721Errors": [ + 269 + ], + "IERC721Metadata": [ + 1614 + ], + "IERC721Receiver": [ + 1460 + ], + "Math": [ + 2989 + ], + "Ownable": [ + 147 + ], + "SignedMath": [ + 3094 + ], + "Strings": [ + 1899 + ] + }, + "id": 3442, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3191, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "33:24:17" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 3192, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3442, + "sourceUnit": 1900, + "src": "61:51:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "id": 3193, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3442, + "sourceUnit": 1326, + "src": "114:57:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3194, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3442, + "sourceUnit": 148, + "src": "173:52:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3195, + "name": "ERC721", + "nameLocations": [ + "251:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "251:6:17" + }, + "id": 3196, + "nodeType": "InheritanceSpecifier", + "src": "251:6:17" + }, + { + "arguments": [ + { + "expression": { + "id": 3198, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "267:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "271:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "267:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "baseName": { + "id": 3197, + "name": "Ownable", + "nameLocations": [ + "259:7:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "259:7:17" + }, + "id": 3200, + "nodeType": "InheritanceSpecifier", + "src": "259:19:17" + } + ], + "canonicalName": "CaveParty", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 3441, + "linearizedBaseContracts": [ + 3441, + 147, + 1325, + 269, + 1614, + 1442, + 1923, + 1935, + 1644 + ], + "name": "CaveParty", + "nameLocation": "238:9:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a", + "id": 3204, + "name": "Minted", + "nameLocation": "307:6:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 3203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3202, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "322:7:17", + "nodeType": "VariableDeclaration", + "scope": 3204, + "src": "314:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "314:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "313:17:17" + }, + "src": "301:30:17" + }, + { + "constant": false, + "functionSelector": "1f21bfbf", + "id": 3207, + "mutability": "mutable", + "name": "totalMints", + "nameLocation": "379:10:17", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "364:29:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 3206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "392:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "6817c76c", + "id": 3210, + "mutability": "mutable", + "name": "mintPrice", + "nameLocation": "415:9:17", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "400:39:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3208, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "400:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303031", + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "427:12:17", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000_by_1", + "typeString": "int_const 100000000000000" + }, + "value": "0.0001" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "453c2310", + "id": 3213, + "mutability": "mutable", + "name": "maxPerWallet", + "nameLocation": "461:12:17", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "446:31:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "446:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "88662de9", + "id": 3216, + "mutability": "mutable", + "name": "assetMetadata", + "nameLocation": "498:13:17", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "484:94:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3214, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "484:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "697066733a2f2f516d65586e7968726b4547664b7a515274757379574e464b636a795a784c63553170755276784c6b4b326b546553", + "id": 3215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "523:55:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a94277e8a9427a5a6c8591c7502d3d2feb392009bfef7f6c1f968be5b56cf1f7", + "typeString": "literal_string \"ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS\"" + }, + "value": "ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f0293fd3", + "id": 3220, + "mutability": "mutable", + "name": "walletMints", + "nameLocation": "639:11:17", + "nodeType": "VariableDeclaration", + "scope": 3441, + "src": "604:46:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3219, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 3217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "612:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "604:27:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 3218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "623:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3227, + "nodeType": "Block", + "src": "718:2:17", + "statements": [] + }, + "id": 3228, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "436176655061727479", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "698:11:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_28e98e46b066bcf3eecfe22ce4fa804844c89dac0a1bc580039cecc5482b695f", + "typeString": "literal_string \"CaveParty\"" + }, + "value": "CaveParty" + }, + { + "hexValue": "435059", + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:5:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0938a75a7b45f6beefa23953a1d68fc7e2bc39dba1dad5c4035fa2082b01d33a", + "typeString": "literal_string \"CPY\"" + }, + "value": "CPY" + } + ], + "id": 3225, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3222, + "name": "ERC721", + "nameLocations": [ + "691:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "691:6:17" + }, + "nodeType": "ModifierInvocation", + "src": "691:26:17" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3221, + "nodeType": "ParameterList", + "parameters": [], + "src": "688:2:17" + }, + "returnParameters": { + "id": 3226, + "nodeType": "ParameterList", + "parameters": [], + "src": "718:0:17" + }, + "scope": 3441, + "src": "677:43:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 521 + ], + "body": { + "id": 3236, + "nodeType": "Block", + "src": "795:39:17", + "statements": [ + { + "expression": { + "id": 3234, + "name": "assetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "813:13:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 3233, + "id": 3235, + "nodeType": "Return", + "src": "806:20:17" + } + ] + }, + "id": 3237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "737:8:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3230, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "762:8:17" + }, + "parameters": { + "id": 3229, + "nodeType": "ParameterList", + "parameters": [], + "src": "745:2:17" + }, + "returnParameters": { + "id": 3233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3232, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3237, + "src": "780:13:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3231, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "780:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "779:15:17" + }, + "scope": 3441, + "src": "728:106:17", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3254, + "nodeType": "Block", + "src": "881:105:17", + "statements": [ + { + "assignments": [ + 3243 + ], + "declarations": [ + { + "constant": false, + "id": 3243, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "900:7:17", + "nodeType": "VariableDeclaration", + "scope": 3254, + "src": "892:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3245, + "initialValue": { + "id": 3244, + "name": "totalMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3207, + "src": "910:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "892:28:17" + }, + { + "expression": { + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "931:12:17", + "subExpression": { + "id": 3246, + "name": "totalMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3207, + "src": "931:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3248, + "nodeType": "ExpressionStatement", + "src": "931:12:17" + }, + { + "expression": { + "arguments": [ + { + "id": 3250, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3239, + "src": "966:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3251, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3243, + "src": "970:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3249, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 947, + "src": "956:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "956:22:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3253, + "nodeType": "ExpressionStatement", + "src": "956:22:17" + } + ] + }, + "id": 3255, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeMint", + "nameLocation": "851:8:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3239, + "mutability": "mutable", + "name": "to", + "nameLocation": "868:2:17", + "nodeType": "VariableDeclaration", + "scope": 3255, + "src": "860:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "860:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "859:12:17" + }, + "returnParameters": { + "id": 3241, + "nodeType": "ParameterList", + "parameters": [], + "src": "881:0:17" + }, + "scope": 3441, + "src": "842:144:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3288, + "nodeType": "Block", + "src": "1032:280:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3259, + "name": "mintPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "1051:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3260, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1064:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1068:5:17", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "1064:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1051:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "302e3030303120657468657220726571756972656420746f206d696e74", + "id": 3263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1075:31:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "typeString": "literal_string \"0.0001 ether required to mint\"" + }, + "value": "0.0001 ether required to mint" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "typeString": "literal_string \"0.0001 ether required to mint\"" + } + ], + "id": 3258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1043:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1043:64:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3265, + "nodeType": "ExpressionStatement", + "src": "1043:64:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 3267, + "name": "walletMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "1140:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3270, + "indexExpression": { + "expression": { + "id": 3268, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1152:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1156:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1152:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1140:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 3271, + "name": "maxPerWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "1167:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1140:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6d696e7473207065722077616c6c6574206578636565646564", + "id": 3273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1194:27:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "typeString": "literal_string \"mints per wallet exceeded\"" + }, + "value": "mints per wallet exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "typeString": "literal_string \"mints per wallet exceeded\"" + } + ], + "id": 3266, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1118:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1118:114:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3275, + "nodeType": "ExpressionStatement", + "src": "1118:114:17" + }, + { + "expression": { + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3276, + "name": "walletMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "1245:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3279, + "indexExpression": { + "expression": { + "id": 3277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1257:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1261:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1257:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1245:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1272:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1245:28:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "1245:28:17" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3284, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1293:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1297:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1293:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3283, + "name": "safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3255, + "src": "1284:8:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1284:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3287, + "nodeType": "ExpressionStatement", + "src": "1284:20:17" + } + ] + }, + "functionSelector": "2004ffd9", + "id": 3289, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mintToken", + "nameLocation": "1003:9:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3256, + "nodeType": "ParameterList", + "parameters": [], + "src": "1012:2:17" + }, + "returnParameters": { + "id": 3257, + "nodeType": "ParameterList", + "parameters": [], + "src": "1032:0:17" + }, + "scope": 3441, + "src": "994:318:17", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3299, + "nodeType": "Block", + "src": "1380:49:17", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 3294, + "name": "walletMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "1398:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3297, + "indexExpression": { + "expression": { + "id": 3295, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1410:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1414:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1410:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1398:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3293, + "id": 3298, + "nodeType": "Return", + "src": "1391:30:17" + } + ] + }, + "functionSelector": "50516808", + "id": 3300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMyWalletMints", + "nameLocation": "1329:16:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3290, + "nodeType": "ParameterList", + "parameters": [], + "src": "1345:2:17" + }, + "returnParameters": { + "id": 3293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3292, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3300, + "src": "1371:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3291, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1371:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1370:9:17" + }, + "scope": 3441, + "src": "1320:109:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3324, + "nodeType": "Block", + "src": "1481:126:17", + "statements": [ + { + "assignments": [ + 3306, + null + ], + "declarations": [ + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "sent", + "nameLocation": "1498:4:17", + "nodeType": "VariableDeclaration", + "scope": 3324, + "src": "1493:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3305, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1493:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 3318, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1551:2:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3307, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1508:5:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1508:7:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1516:4:17", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "1508:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "expression": { + "arguments": [ + { + "id": 3312, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1536:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CaveParty_$3441", + "typeString": "contract CaveParty" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CaveParty_$3441", + "typeString": "contract CaveParty" + } + ], + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1528:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3310, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1528:7:17", + "typeDescriptions": {} + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1528:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1542:7:17", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1528:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "1508:42:17", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1508:46:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1492:62:17" + }, + { + "expression": { + "arguments": [ + { + "id": 3320, + "name": "sent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "1573:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "7769746864726177616c206661696c6564", + "id": 3321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1579:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "typeString": "literal_string \"withdrawal failed\"" + }, + "value": "withdrawal failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "typeString": "literal_string \"withdrawal failed\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1565:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1565:34:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3323, + "nodeType": "ExpressionStatement", + "src": "1565:34:17" + } + ] + }, + "functionSelector": "24600fc3", + "id": 3325, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3303, + "kind": "modifierInvocation", + "modifierName": { + "id": 3302, + "name": "onlyOwner", + "nameLocations": [ + "1471:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "1471:9:17" + }, + "nodeType": "ModifierInvocation", + "src": "1471:9:17" + } + ], + "name": "withdrawFunds", + "nameLocation": "1446:13:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3301, + "nodeType": "ParameterList", + "parameters": [], + "src": "1459:2:17" + }, + "returnParameters": { + "id": 3304, + "nodeType": "ParameterList", + "parameters": [], + "src": "1481:0:17" + }, + "scope": 3441, + "src": "1437:170:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3343, + "nodeType": "Block", + "src": "1691:156:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3334, + "name": "_newAssetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3327, + "src": "1724:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3333, + "name": "checkMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3440, + "src": "1710:13:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bool_$", + "typeString": "function (string memory) pure returns (bool)" + } + }, + "id": 3335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1710:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c6964206173736574206d657461646174613a206d75737420696e636c7564652027697066733a2f2f27", + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1744:48:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "typeString": "literal_string \"Invalid asset metadata: must include 'ipfs://'\"" + }, + "value": "Invalid asset metadata: must include 'ipfs://'" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "typeString": "literal_string \"Invalid asset metadata: must include 'ipfs://'\"" + } + ], + "id": 3332, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1702:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1702:91:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3338, + "nodeType": "ExpressionStatement", + "src": "1702:91:17" + }, + { + "expression": { + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3339, + "name": "assetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "1806:13:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3340, + "name": "_newAssetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3327, + "src": "1822:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1806:33:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "1806:33:17" + } + ] + }, + "functionSelector": "918b5be1", + "id": 3344, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3330, + "kind": "modifierInvocation", + "modifierName": { + "id": 3329, + "name": "onlyOwner", + "nameLocations": [ + "1681:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "1681:9:17" + }, + "nodeType": "ModifierInvocation", + "src": "1681:9:17" + } + ], + "name": "updateMetadata", + "nameLocation": "1624:14:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3327, + "mutability": "mutable", + "name": "_newAssetMetadata", + "nameLocation": "1653:17:17", + "nodeType": "VariableDeclaration", + "scope": 3344, + "src": "1639:31:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3326, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1639:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1638:33:17" + }, + "returnParameters": { + "id": 3331, + "nodeType": "ParameterList", + "parameters": [], + "src": "1691:0:17" + }, + "scope": 3441, + "src": "1615:232:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3353, + "nodeType": "Block", + "src": "1930:39:17", + "statements": [ + { + "expression": { + "id": 3351, + "name": "assetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "1948:13:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 3350, + "id": 3352, + "nodeType": "Return", + "src": "1941:20:17" + } + ] + }, + "functionSelector": "ddd71ede", + "id": 3354, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3347, + "kind": "modifierInvocation", + "modifierName": { + "id": 3346, + "name": "onlyOwner", + "nameLocations": [ + "1897:9:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "1897:9:17" + }, + "nodeType": "ModifierInvocation", + "src": "1897:9:17" + } + ], + "name": "getAssetMetadata", + "nameLocation": "1864:16:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3345, + "nodeType": "ParameterList", + "parameters": [], + "src": "1880:2:17" + }, + "returnParameters": { + "id": 3350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3349, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3354, + "src": "1915:13:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3348, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1915:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1914:15:17" + }, + "scope": 3441, + "src": "1855:114:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3439, + "nodeType": "Block", + "src": "2061:638:17", + "statements": [ + { + "assignments": [ + 3362 + ], + "declarations": [ + { + "constant": false, + "id": 3362, + "mutability": "mutable", + "name": "metadataBytes", + "nameLocation": "2085:13:17", + "nodeType": "VariableDeclaration", + "scope": 3439, + "src": "2072:26:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3361, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2072:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3367, + "initialValue": { + "arguments": [ + { + "id": 3365, + "name": "_newAssetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3356, + "src": "2107:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2101:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3363, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2101:5:17", + "typeDescriptions": {} + } + }, + "id": 3366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2101:24:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2072:53:17" + }, + { + "assignments": [ + 3369 + ], + "declarations": [ + { + "constant": false, + "id": 3369, + "mutability": "mutable", + "name": "ipfsBytes", + "nameLocation": "2149:9:17", + "nodeType": "VariableDeclaration", + "scope": 3439, + "src": "2136:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2136:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3374, + "initialValue": { + "arguments": [ + { + "hexValue": "697066733a2f2f", + "id": 3372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2167:9:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", + "typeString": "literal_string \"ipfs://\"" + }, + "value": "ipfs://" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", + "typeString": "literal_string \"ipfs://\"" + } + ], + "id": 3371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2161:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3370, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2161:5:17", + "typeDescriptions": {} + } + }, + "id": 3373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2161:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2136:41:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3375, + "name": "metadataBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3362, + "src": "2194:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2208:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2194:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3377, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "2217:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2227:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2217:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2194:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3382, + "nodeType": "IfStatement", + "src": "2190:57:17", + "trueBody": { + "expression": { + "hexValue": "66616c7365", + "id": 3380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2242:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3360, + "id": 3381, + "nodeType": "Return", + "src": "2235:12:17" + } + }, + { + "body": { + "id": 3435, + "nodeType": "Block", + "src": "2331:336:17", + "statements": [ + { + "assignments": [ + 3398 + ], + "declarations": [ + { + "constant": false, + "id": 3398, + "mutability": "mutable", + "name": "check", + "nameLocation": "2351:5:17", + "nodeType": "VariableDeclaration", + "scope": 3435, + "src": "2346:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3397, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2346:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 3400, + "initialValue": { + "hexValue": "74727565", + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2359:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2346:17:17" + }, + { + "body": { + "id": 3428, + "nodeType": "Block", + "src": "2425:160:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 3412, + "name": "metadataBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3362, + "src": "2448:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3416, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3413, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3384, + "src": "2462:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 3414, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3402, + "src": "2466:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2462:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2448:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "baseExpression": { + "id": 3417, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "2472:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3419, + "indexExpression": { + "id": 3418, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3402, + "src": "2482:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2472:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2448:36:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3427, + "nodeType": "IfStatement", + "src": "2444:126:17", + "trueBody": { + "id": 3426, + "nodeType": "Block", + "src": "2486:84:17", + "statements": [ + { + "expression": { + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3421, + "name": "check", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3398, + "src": "2509:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2517:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2509:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3424, + "nodeType": "ExpressionStatement", + "src": "2509:13:17" + }, + { + "id": 3425, + "nodeType": "Break", + "src": "2545:5:17" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3405, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3402, + "src": "2398:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3406, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "2402:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2412:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2402:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2398:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3429, + "initializationExpression": { + "assignments": [ + 3402 + ], + "declarations": [ + { + "constant": false, + "id": 3402, + "mutability": "mutable", + "name": "j", + "nameLocation": "2391:1:17", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "2383:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2383:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3404, + "initialValue": { + "hexValue": "30", + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2395:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2383:13:17" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2420:3:17", + "subExpression": { + "id": 3409, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3402, + "src": "2420:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3411, + "nodeType": "ExpressionStatement", + "src": "2420:3:17" + }, + "nodeType": "ForStatement", + "src": "2378:207:17" + }, + { + "condition": { + "id": 3430, + "name": "check", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3398, + "src": "2603:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3434, + "nodeType": "IfStatement", + "src": "2599:57:17", + "trueBody": { + "id": 3433, + "nodeType": "Block", + "src": "2610:46:17", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2636:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3360, + "id": 3432, + "nodeType": "Return", + "src": "2629:11:17" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3387, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3384, + "src": "2280:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3388, + "name": "metadataBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3362, + "src": "2285:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2299:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2285:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 3390, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3369, + "src": "2308:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2318:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2308:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2285:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2280:44:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3436, + "initializationExpression": { + "assignments": [ + 3384 + ], + "declarations": [ + { + "constant": false, + "id": 3384, + "mutability": "mutable", + "name": "i", + "nameLocation": "2273:1:17", + "nodeType": "VariableDeclaration", + "scope": 3436, + "src": "2265:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2265:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3386, + "initialValue": { + "hexValue": "30", + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2277:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2265:13:17" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 3395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2326:3:17", + "subExpression": { + "id": 3394, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3384, + "src": "2326:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3396, + "nodeType": "ExpressionStatement", + "src": "2326:3:17" + }, + "nodeType": "ForStatement", + "src": "2260:407:17" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 3437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2686:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3360, + "id": 3438, + "nodeType": "Return", + "src": "2679:12:17" + } + ] + }, + "id": 3440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkMetadata", + "nameLocation": "1986:13:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3356, + "mutability": "mutable", + "name": "_newAssetMetadata", + "nameLocation": "2014:17:17", + "nodeType": "VariableDeclaration", + "scope": 3440, + "src": "2000:31:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3355, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2000:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1999:33:17" + }, + "returnParameters": { + "id": 3360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3359, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3440, + "src": "2055:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3358, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2055:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2054:6:17" + }, + "scope": 3441, + "src": "1977:722:17", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3442, + "src": "229:2473:17", + "usedErrors": [ + 13, + 18, + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 24, + 1341, + 1350, + 1359, + 3204 + ] + } + ], + "src": "33:2669:17" + }, + "id": 17 + }, + "contracts/FluffyFuryNFT.sol": { + "ast": { + "absolutePath": "contracts/FluffyFuryNFT.sol", + "exportedSymbols": { + "Base64": [ + 3189 + ], + "Context": [ + 1644 + ], + "ERC721": [ + 1325 + ], + "ERC721URIStorage": [ + 1586 + ], + "FluffyFury": [ + 3710 + ], + "IERC165": [ + 1935 + ], + "IERC4906": [ + 175 + ], + "Math": [ + 2989 + ], + "Ownable": [ + 147 + ], + "SignedMath": [ + 3094 + ], + "Strings": [ + 1899 + ] + }, + "id": 3711, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3443, + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "39:23:18" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 3444, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3711, + "sourceUnit": 1900, + "src": "64:51:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "id": 3445, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3711, + "sourceUnit": 1587, + "src": "116:78:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3446, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3711, + "sourceUnit": 148, + "src": "195:52:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/Base64.sol", + "file": "./Base64.sol", + "id": 3448, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3711, + "sourceUnit": 3190, + "src": "249:36:18", + "symbolAliases": [ + { + "foreign": { + "id": 3447, + "name": "Base64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3189, + "src": "257:6:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3449, + "name": "ERC721URIStorage", + "nameLocations": [ + "310:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1586, + "src": "310:16:18" + }, + "id": 3450, + "nodeType": "InheritanceSpecifier", + "src": "310:16:18" + }, + { + "arguments": [ + { + "expression": { + "id": 3452, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "336:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "340:6:18", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "336:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "baseName": { + "id": 3451, + "name": "Ownable", + "nameLocations": [ + "328:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "328:7:18" + }, + "id": 3454, + "nodeType": "InheritanceSpecifier", + "src": "328:19:18" + } + ], + "canonicalName": "FluffyFury", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 3710, + "linearizedBaseContracts": [ + 3710, + 147, + 1586, + 1325, + 269, + 1614, + 175, + 1442, + 1923, + 1935, + 1644 + ], + "name": "FluffyFury", + "nameLocation": "296:10:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a", + "id": 3458, + "name": "Minted", + "nameLocation": "360:6:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3456, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "375:7:18", + "nodeType": "VariableDeclaration", + "scope": 3458, + "src": "367:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3455, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "367:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "366:17:18" + }, + "src": "354:30:18" + }, + { + "constant": false, + "id": 3460, + "mutability": "mutable", + "name": "_tokenIdCounter", + "nameLocation": "407:15:18", + "nodeType": "VariableDeclaration", + "scope": 3710, + "src": "391:31:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "391:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "6817c76c", + "id": 3463, + "mutability": "mutable", + "name": "mintPrice", + "nameLocation": "443:9:18", + "nodeType": "VariableDeclaration", + "scope": 3710, + "src": "428:39:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "428:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303031", + "id": 3462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "455:12:18", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000_by_1", + "typeString": "int_const 100000000000000" + }, + "value": "0.0001" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a31e06da", + "id": 3465, + "mutability": "mutable", + "name": "svgData", + "nameLocation": "522:7:18", + "nodeType": "VariableDeclaration", + "scope": 3710, + "src": "508:21:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3464, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "508:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3500, + "nodeType": "Block", + "src": "636:225:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3477, + "name": "initialSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "660:10:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "654:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3475, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "654:5:18", + "typeDescriptions": {} + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "654:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "672:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "654:24:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "654:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "id": 3482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "684:26:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + }, + "value": "SVG data cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + } + ], + "id": 3474, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "646:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "646:65:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "ExpressionStatement", + "src": "646:65:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3488, + "name": "initialSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "735:10:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "729:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3486, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "729:5:18", + "typeDescriptions": {} + } + }, + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "729:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "747:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "729:24:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "35303030", + "id": 3491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "757:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000_by_1", + "typeString": "int_const 5000" + }, + "value": "5000" + }, + "src": "729:32:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "763:20:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + }, + "value": "SVG data too large" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + } + ], + "id": 3485, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "721:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "721:63:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3495, + "nodeType": "ExpressionStatement", + "src": "721:63:18" + }, + { + "expression": { + "id": 3498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3496, + "name": "svgData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "794:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3497, + "name": "initialSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "804:10:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "794:20:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3499, + "nodeType": "ExpressionStatement", + "src": "794:20:18" + } + ] + }, + "id": 3501, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "466c7566667946757279", + "id": 3470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "615:12:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bacc4dc90e0a013e8150313519419a0d8208f6beefd7db6d4389317a41ed900", + "typeString": "literal_string \"FluffyFury\"" + }, + "value": "FluffyFury" + }, + { + "hexValue": "464659", + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "629:5:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8873e86dbfbacf931667eb830850ee4fd1b439b3f2a2aeb3b52034202d4016ca", + "typeString": "literal_string \"FFY\"" + }, + "value": "FFY" + } + ], + "id": 3472, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3469, + "name": "ERC721", + "nameLocations": [ + "608:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "608:6:18" + }, + "nodeType": "ModifierInvocation", + "src": "608:27:18" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "initialSvg", + "nameLocation": "596:10:18", + "nodeType": "VariableDeclaration", + "scope": 3501, + "src": "582:24:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3466, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "582:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "581:26:18" + }, + "returnParameters": { + "id": 3473, + "nodeType": "ParameterList", + "parameters": [], + "src": "636:0:18" + }, + "scope": 3710, + "src": "570:291:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3512, + "nodeType": "Block", + "src": "948:92:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3504, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "966:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "970:5:18", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "966:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3506, + "name": "mintPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3463, + "src": "979:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "966:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "302e3030303120657468657220726571756972656420746f206d696e74", + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "990:31:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "typeString": "literal_string \"0.0001 ether required to mint\"" + }, + "value": "0.0001 ether required to mint" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "typeString": "literal_string \"0.0001 ether required to mint\"" + } + ], + "id": 3503, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "958:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "958:64:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3510, + "nodeType": "ExpressionStatement", + "src": "958:64:18" + }, + { + "id": 3511, + "nodeType": "PlaceholderStatement", + "src": "1032:1:18" + } + ] + }, + "id": 3513, + "name": "mintPricePaid", + "nameLocation": "932:13:18", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3502, + "nodeType": "ParameterList", + "parameters": [], + "src": "945:2:18" + }, + "src": "923:117:18", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3543, + "nodeType": "Block", + "src": "1167:205:18", + "statements": [ + { + "assignments": [ + 3521 + ], + "declarations": [ + { + "constant": false, + "id": 3521, + "mutability": "mutable", + "name": "baseURL", + "nameLocation": "1191:7:18", + "nodeType": "VariableDeclaration", + "scope": 3543, + "src": "1177:21:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3520, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1177:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3523, + "initialValue": { + "hexValue": "646174613a696d6167652f7376672b786d6c3b6261736536342c", + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:28:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f90ae014c41cb48231e1f02c314087ff9c479133697911d25c5fe231e237dd14", + "typeString": "literal_string \"data:image/svg+xml;base64,\"" + }, + "value": "data:image/svg+xml;base64," + }, + "nodeType": "VariableDeclarationStatement", + "src": "1177:52:18" + }, + { + "assignments": [ + 3525 + ], + "declarations": [ + { + "constant": false, + "id": 3525, + "mutability": "mutable", + "name": "svgBase64Encoded", + "nameLocation": "1253:16:18", + "nodeType": "VariableDeclaration", + "scope": 3543, + "src": "1239:30:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3524, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1239:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3533, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 3530, + "name": "svg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3515, + "src": "1292:3:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1286:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3528, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1286:5:18", + "typeDescriptions": {} + } + }, + "id": 3531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1286:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3526, + "name": "Base64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3189, + "src": "1272:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Base64_$3189_$", + "typeString": "type(library Base64)" + } + }, + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1279:6:18", + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 3119, + "src": "1272:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (string memory)" + } + }, + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1272:25:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1239:58:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3538, + "name": "baseURL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3521, + "src": "1338:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 3539, + "name": "svgBase64Encoded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3525, + "src": "1347:16:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 3536, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1321:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1325:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1321:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1321:43:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1314:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3534, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1314:6:18", + "typeDescriptions": {} + } + }, + "id": 3541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1314:51:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3519, + "id": 3542, + "nodeType": "Return", + "src": "1307:58:18" + } + ] + }, + "id": 3544, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "svgToImageURI", + "nameLocation": "1097:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3515, + "mutability": "mutable", + "name": "svg", + "nameLocation": "1125:3:18", + "nodeType": "VariableDeclaration", + "scope": 3544, + "src": "1111:17:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3514, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1111:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1110:19:18" + }, + "returnParameters": { + "id": 3519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3518, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3544, + "src": "1152:13:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3517, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1152:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1151:15:18" + }, + "scope": 3710, + "src": "1088:284:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3571, + "nodeType": "Block", + "src": "1528:578:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c", + "id": 3555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1619:31:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "typeString": "literal_string \"data:application/json;base64,\"" + }, + "value": "data:application/json;base64," + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "7b226e616d65223a2022466c756666792046757279222c20226465736372697074696f6e223a2022596f75722061636365737320696e746f20616e79206576656e742063726561746564207573696e67207468697320746f6b656e2061646472657373222c2022696d616765223a22", + "id": 3562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1796:113:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "typeString": "literal_string \"{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"\"" + }, + "value": "{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"" + }, + { + "id": 3563, + "name": "imageURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3546, + "src": "1943:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "227d", + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1985:4:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "typeString": "literal_string \"\"}\"" + }, + "value": "\"}" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "typeString": "literal_string \"{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "typeString": "literal_string \"\"}\"" + } + ], + "expression": { + "id": 3560, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1746:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1750:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1746:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1746:273:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1711:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3558, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1711:5:18", + "typeDescriptions": {} + } + }, + "id": 3566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1711:334:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3556, + "name": "Base64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3189, + "src": "1672:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Base64_$3189_$", + "typeString": "type(library Base64)" + } + }, + "id": 3557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1679:6:18", + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 3119, + "src": "1672:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (string memory)" + } + }, + "id": 3567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1672:395:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "typeString": "literal_string \"data:application/json;base64,\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 3553, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1581:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1585:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1581:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1581:504:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1557:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3551, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1557:6:18", + "typeDescriptions": {} + } + }, + "id": 3569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1557:542:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3550, + "id": 3570, + "nodeType": "Return", + "src": "1538:561:18" + } + ] + }, + "id": 3572, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "formatTokenURI", + "nameLocation": "1452:14:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3546, + "mutability": "mutable", + "name": "imageURI", + "nameLocation": "1481:8:18", + "nodeType": "VariableDeclaration", + "scope": 3572, + "src": "1467:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3545, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1467:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1466:24:18" + }, + "returnParameters": { + "id": 3550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3549, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3572, + "src": "1513:13:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3548, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1513:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1512:15:18" + }, + "scope": 3710, + "src": "1443:663:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3611, + "nodeType": "Block", + "src": "2231:333:18", + "statements": [ + { + "assignments": [ + 3578 + ], + "declarations": [ + { + "constant": false, + "id": 3578, + "mutability": "mutable", + "name": "imageURI", + "nameLocation": "2255:8:18", + "nodeType": "VariableDeclaration", + "scope": 3611, + "src": "2241:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3577, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2241:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3582, + "initialValue": { + "arguments": [ + { + "id": 3580, + "name": "svgData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "2280:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3579, + "name": "svgToImageURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3544, + "src": "2266:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (string memory) pure returns (string memory)" + } + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2266:22:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2241:47:18" + }, + { + "assignments": [ + 3584 + ], + "declarations": [ + { + "constant": false, + "id": 3584, + "mutability": "mutable", + "name": "tokenURI", + "nameLocation": "2330:8:18", + "nodeType": "VariableDeclaration", + "scope": 3611, + "src": "2316:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2316:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3588, + "initialValue": { + "arguments": [ + { + "id": 3586, + "name": "imageURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3578, + "src": "2356:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3585, + "name": "formatTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3572, + "src": "2341:14:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (string memory) pure returns (string memory)" + } + }, + "id": 3587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2316:49:18" + }, + { + "expression": { + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2376:17:18", + "subExpression": { + "id": 3589, + "name": "_tokenIdCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3460, + "src": "2376:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3591, + "nodeType": "ExpressionStatement", + "src": "2376:17:18" + }, + { + "assignments": [ + 3593 + ], + "declarations": [ + { + "constant": false, + "id": 3593, + "mutability": "mutable", + "name": "newItemId", + "nameLocation": "2411:9:18", + "nodeType": "VariableDeclaration", + "scope": 3611, + "src": "2403:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2403:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3595, + "initialValue": { + "id": 3594, + "name": "_tokenIdCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3460, + "src": "2423:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2403:35:18" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3597, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2459:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2463:6:18", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2459:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3599, + "name": "newItemId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3593, + "src": "2471:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3596, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 947, + "src": "2449:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2449:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3601, + "nodeType": "ExpressionStatement", + "src": "2449:32:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3603, + "name": "newItemId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3593, + "src": "2504:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3604, + "name": "tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3584, + "src": "2515:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3602, + "name": "_setTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1585, + "src": "2491:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" + } + }, + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2491:33:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3606, + "nodeType": "ExpressionStatement", + "src": "2491:33:18" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3608, + "name": "newItemId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3593, + "src": "2547:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3607, + "name": "Minted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3458, + "src": "2540:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2540:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3610, + "nodeType": "EmitStatement", + "src": "2535:22:18" + } + ] + }, + "functionSelector": "1249c58b", + "id": 3612, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3575, + "kind": "modifierInvocation", + "modifierName": { + "id": 3574, + "name": "mintPricePaid", + "nameLocations": [ + "2217:13:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3513, + "src": "2217:13:18" + }, + "nodeType": "ModifierInvocation", + "src": "2217:13:18" + } + ], + "name": "mint", + "nameLocation": "2193:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3573, + "nodeType": "ParameterList", + "parameters": [], + "src": "2197:2:18" + }, + "returnParameters": { + "id": 3576, + "nodeType": "ParameterList", + "parameters": [], + "src": "2231:0:18" + }, + "scope": 3710, + "src": "2184:380:18", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3647, + "nodeType": "Block", + "src": "2680:211:18", + "statements": [ + { + "assignments": [ + 3618 + ], + "declarations": [ + { + "constant": false, + "id": 3618, + "mutability": "mutable", + "name": "balance", + "nameLocation": "2698:7:18", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "2690:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2690:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3624, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 3621, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2716:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FluffyFury_$3710", + "typeString": "contract FluffyFury" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_FluffyFury_$3710", + "typeString": "contract FluffyFury" + } + ], + "id": 3620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2708:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2708:7:18", + "typeDescriptions": {} + } + }, + "id": 3622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2708:13:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2722:7:18", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2708:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2690:39:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3626, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "2747:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2757:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2747:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f2066756e647320617661696c61626c65", + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2760:20:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "typeString": "literal_string \"No funds available\"" + }, + "value": "No funds available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "typeString": "literal_string \"No funds available\"" + } + ], + "id": 3625, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2739:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2739:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3631, + "nodeType": "ExpressionStatement", + "src": "2739:42:18" + }, + { + "assignments": [ + 3633, + null + ], + "declarations": [ + { + "constant": false, + "id": 3633, + "mutability": "mutable", + "name": "sent", + "nameLocation": "2798:4:18", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "2793:9:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3632, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2793:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 3641, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 3639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2837:2:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3634, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2808:5:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2808:7:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2816:4:18", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2808:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 3637, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "2828:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2808:28:18", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2808:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2792:48:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3643, + "name": "sent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "2858:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5769746864726177616c206661696c6564", + "id": 3644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2864:19:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "typeString": "literal_string \"Withdrawal failed\"" + }, + "value": "Withdrawal failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "typeString": "literal_string \"Withdrawal failed\"" + } + ], + "id": 3642, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2850:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2850:34:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3646, + "nodeType": "ExpressionStatement", + "src": "2850:34:18" + } + ] + }, + "functionSelector": "24600fc3", + "id": 3648, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3615, + "kind": "modifierInvocation", + "modifierName": { + "id": 3614, + "name": "onlyOwner", + "nameLocations": [ + "2670:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2670:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "2670:9:18" + } + ], + "name": "withdrawFunds", + "nameLocation": "2645:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3613, + "nodeType": "ParameterList", + "parameters": [], + "src": "2658:2:18" + }, + "returnParameters": { + "id": 3616, + "nodeType": "ParameterList", + "parameters": [], + "src": "2680:0:18" + }, + "scope": 3710, + "src": "2636:255:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3681, + "nodeType": "Block", + "src": "3000:233:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3658, + "name": "_newSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "3024:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3018:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3656, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3018:5:18", + "typeDescriptions": {} + } + }, + "id": 3659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3018:14:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3033:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3018:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3042:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3018:25:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "id": 3663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3045:26:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + }, + "value": "SVG data cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + } + ], + "id": 3655, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3010:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3010:62:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "ExpressionStatement", + "src": "3010:62:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3669, + "name": "_newSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "3096:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3090:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3667, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3090:5:18", + "typeDescriptions": {} + } + }, + "id": 3670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3090:14:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3105:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3090:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "35303030", + "id": 3672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3115:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000_by_1", + "typeString": "int_const 5000" + }, + "value": "5000" + }, + "src": "3090:29:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "id": 3674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3121:20:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + }, + "value": "SVG data too large" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + } + ], + "id": 3666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3082:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3082:60:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3676, + "nodeType": "ExpressionStatement", + "src": "3082:60:18" + }, + { + "expression": { + "id": 3679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3677, + "name": "svgData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "3186:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3678, + "name": "_newSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "3196:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3186:17:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3680, + "nodeType": "ExpressionStatement", + "src": "3186:17:18" + } + ] + }, + "functionSelector": "a52db60d", + "id": 3682, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3653, + "kind": "modifierInvocation", + "modifierName": { + "id": 3652, + "name": "onlyOwner", + "nameLocations": [ + "2990:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2990:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "2990:9:18" + } + ], + "name": "updateSVG", + "nameLocation": "2948:9:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3650, + "mutability": "mutable", + "name": "_newSvg", + "nameLocation": "2972:7:18", + "nodeType": "VariableDeclaration", + "scope": 3682, + "src": "2958:21:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3649, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2958:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2957:23:18" + }, + "returnParameters": { + "id": 3654, + "nodeType": "ParameterList", + "parameters": [], + "src": "3000:0:18" + }, + "scope": 3710, + "src": "2939:294:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 126 + ], + "body": { + "id": 3704, + "nodeType": "Block", + "src": "3361:126:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3691, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3684, + "src": "3379:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3399:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3391:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3391:7:18", + "typeDescriptions": {} + } + }, + "id": 3695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3391:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3379:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373", + "id": 3697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3403:38:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "typeString": "literal_string \"New owner cannot be the zero address\"" + }, + "value": "New owner cannot be the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "typeString": "literal_string \"New owner cannot be the zero address\"" + } + ], + "id": 3690, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3371:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3371:71:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3699, + "nodeType": "ExpressionStatement", + "src": "3371:71:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3701, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3684, + "src": "3471:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3700, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "3452:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3452:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3703, + "nodeType": "ExpressionStatement", + "src": "3452:28:18" + } + ] + }, + "functionSelector": "f2fde38b", + "id": 3705, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3688, + "kind": "modifierInvocation", + "modifierName": { + "id": 3687, + "name": "onlyOwner", + "nameLocations": [ + "3351:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "3351:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "3351:9:18" + } + ], + "name": "transferOwnership", + "nameLocation": "3299:17:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3686, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3342:8:18" + }, + "parameters": { + "id": 3685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3684, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3325:8:18", + "nodeType": "VariableDeclaration", + "scope": 3705, + "src": "3317:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3683, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3317:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3316:18:18" + }, + "returnParameters": { + "id": 3689, + "nodeType": "ParameterList", + "parameters": [], + "src": "3361:0:18" + }, + "scope": 3710, + "src": "3290:197:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3708, + "nodeType": "Block", + "src": "3562:2:18", + "statements": [] + }, + "id": 3709, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3706, + "nodeType": "ParameterList", + "parameters": [], + "src": "3542:2:18" + }, + "returnParameters": { + "id": 3707, + "nodeType": "ParameterList", + "parameters": [], + "src": "3562:0:18" + }, + "scope": 3710, + "src": "3535:29:18", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3711, + "src": "287:3279:18", + "usedErrors": [ + 13, + 18, + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 24, + 167, + 174, + 1341, + 1350, + 1359, + 3458 + ] + } + ], + "src": "39:3527:18" + }, + "id": 18 + }, + "contracts/NFTGatedEventManager.sol": { + "ast": { + "absolutePath": "contracts/NFTGatedEventManager.sol", + "exportedSymbols": { + "IERC165": [ + 4066 + ], + "IERC721": [ + 4183 + ], + "NFTGatedEventManager": [ + 4054 + ] + }, + "id": 4055, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3712, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "33:24:19" + }, + { + "absolutePath": "contracts/interfaces/IERC721.sol", + "file": "./interfaces/IERC721.sol", + "id": 3714, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4055, + "sourceUnit": 4184, + "src": "61:49:19", + "symbolAliases": [ + { + "foreign": { + "id": 3713, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4183, + "src": "69:7:19", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IERC165.sol", + "file": "./interfaces/IERC165.sol", + "id": 3716, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4055, + "sourceUnit": 4067, + "src": "112:49:19", + "symbolAliases": [ + { + "foreign": { + "id": 3715, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4066, + "src": "120:7:19", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "NFTGatedEventManager", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4054, + "linearizedBaseContracts": [ + 4054 + ], + "name": "NFTGatedEventManager", + "nameLocation": "174:20:19", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "NFTGatedEventManager.Event", + "id": 3733, + "members": [ + { + "constant": false, + "id": 3718, + "mutability": "mutable", + "name": "eventName", + "nameLocation": "233:9:19", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "226:16:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3717, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3720, + "mutability": "mutable", + "name": "eventDate", + "nameLocation": "282:9:19", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "274:17:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3719, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "274:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3722, + "mutability": "mutable", + "name": "nftRequired", + "nameLocation": "336:11:19", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "328:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3721, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "328:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3724, + "mutability": "mutable", + "name": "isActive", + "nameLocation": "402:8:19", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "397:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3723, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "397:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3726, + "mutability": "mutable", + "name": "maxCapacity", + "nameLocation": "445:11:19", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "437:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3728, + "mutability": "mutable", + "name": "registeredCount", + "nameLocation": "517:15:19", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "509:23:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "509:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "mutability": "mutable", + "name": "isRegistered", + "nameLocation": "602:12:19", + "nodeType": "VariableDeclaration", + "scope": 3733, + "src": "577:37:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 3731, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 3729, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "585:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "577:24:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 3730, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "596:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + } + ], + "name": "Event", + "nameLocation": "209:5:19", + "nodeType": "StructDefinition", + "scope": 4054, + "src": "202:456:19", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "e01a0ebe", + "id": 3735, + "mutability": "mutable", + "name": "eventIdCounter", + "nameLocation": "681:14:19", + "nodeType": "VariableDeclaration", + "scope": 4054, + "src": "666:29:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "666:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0b791430", + "id": 3740, + "mutability": "mutable", + "name": "events", + "nameLocation": "767:6:19", + "nodeType": "VariableDeclaration", + "scope": 4054, + "src": "734:39:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Event_$3733_storage_$", + "typeString": "mapping(uint256 => struct NFTGatedEventManager.Event)" + }, + "typeName": { + "id": 3739, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 3736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "734:25:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Event_$3733_storage_$", + "typeString": "mapping(uint256 => struct NFTGatedEventManager.Event)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 3738, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3737, + "name": "Event", + "nameLocations": [ + "753:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3733, + "src": "753:5:19" + }, + "referencedDeclaration": 3733, + "src": "753:5:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 3742, + "mutability": "mutable", + "name": "owner", + "nameLocation": "828:5:19", + "nodeType": "VariableDeclaration", + "scope": 4054, + "src": "813:20:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "813:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3753, + "nodeType": "Block", + "src": "902:147:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3745, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "935:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "939:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "935:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3747, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "949:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "935:19:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c20746869732066756e6374696f6e2e", + "id": 3749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "969:49:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761", + "typeString": "literal_string \"Only the contract owner can call this function.\"" + }, + "value": "Only the contract owner can call this function." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761", + "typeString": "literal_string \"Only the contract owner can call this function.\"" + } + ], + "id": 3744, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "913:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "913:116:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3751, + "nodeType": "ExpressionStatement", + "src": "913:116:19" + }, + { + "id": 3752, + "nodeType": "PlaceholderStatement", + "src": "1040:1:19" + } + ] + }, + "id": 3754, + "name": "onlyOwner", + "nameLocation": "890:9:19", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3743, + "nodeType": "ParameterList", + "parameters": [], + "src": "899:2:19" + }, + "src": "881:168:19", + "virtual": false, + "visibility": "internal" + }, + { + "anonymous": false, + "eventSelector": "88f91a8cee50507bf8f67ddf436d225a426a493c10f4a94db0ad16d480de7dd7", + "id": 3766, + "name": "EventCreated", + "nameLocation": "1063:12:19", + "nodeType": "EventDefinition", + "parameters": { + "id": 3765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3756, + "indexed": false, + "mutability": "mutable", + "name": "eventId", + "nameLocation": "1094:7:19", + "nodeType": "VariableDeclaration", + "scope": 3766, + "src": "1086:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3755, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1086:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3758, + "indexed": false, + "mutability": "mutable", + "name": "eventName", + "nameLocation": "1119:9:19", + "nodeType": "VariableDeclaration", + "scope": 3766, + "src": "1112:16:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3757, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1112:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3760, + "indexed": false, + "mutability": "mutable", + "name": "eventDate", + "nameLocation": "1147:9:19", + "nodeType": "VariableDeclaration", + "scope": 3766, + "src": "1139:17:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1139:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3762, + "indexed": false, + "mutability": "mutable", + "name": "nftRequired", + "nameLocation": "1175:11:19", + "nodeType": "VariableDeclaration", + "scope": 3766, + "src": "1167:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1167:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3764, + "indexed": false, + "mutability": "mutable", + "name": "maxCapacity", + "nameLocation": "1205:11:19", + "nodeType": "VariableDeclaration", + "scope": 3766, + "src": "1197:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1197:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1075:148:19" + }, + "src": "1057:167:19" + }, + { + "anonymous": false, + "eventSelector": "b442efe467d2ef30e62927a3cae0afcbc799a8a0944d8a143332e4e5e51cee5d", + "id": 3772, + "name": "UserRegistered", + "nameLocation": "1236:14:19", + "nodeType": "EventDefinition", + "parameters": { + "id": 3771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3768, + "indexed": false, + "mutability": "mutable", + "name": "eventId", + "nameLocation": "1259:7:19", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "1251:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1251:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3770, + "indexed": false, + "mutability": "mutable", + "name": "user", + "nameLocation": "1276:4:19", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "1268:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3769, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1268:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1250:31:19" + }, + "src": "1230:52:19" + }, + { + "anonymous": false, + "eventSelector": "a84e22267ca5f39c3dc082a44444f3f681b9f38a5287a019487a246f28a04b09", + "id": 3778, + "name": "EventStatusUpdated", + "nameLocation": "1294:18:19", + "nodeType": "EventDefinition", + "parameters": { + "id": 3777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3774, + "indexed": false, + "mutability": "mutable", + "name": "eventId", + "nameLocation": "1321:7:19", + "nodeType": "VariableDeclaration", + "scope": 3778, + "src": "1313:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1313:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3776, + "indexed": false, + "mutability": "mutable", + "name": "newStatus", + "nameLocation": "1335:9:19", + "nodeType": "VariableDeclaration", + "scope": 3778, + "src": "1330:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3775, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1330:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1312:33:19" + }, + "src": "1288:58:19" + }, + { + "body": { + "id": 3786, + "nodeType": "Block", + "src": "1368:79:19", + "statements": [ + { + "expression": { + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3781, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "1379:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3782, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1387:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1391:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1387:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1379:18:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3785, + "nodeType": "ExpressionStatement", + "src": "1379:18:19" + } + ] + }, + "id": 3787, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3779, + "nodeType": "ParameterList", + "parameters": [], + "src": "1365:2:19" + }, + "returnParameters": { + "id": 3780, + "nodeType": "ParameterList", + "parameters": [], + "src": "1368:0:19" + }, + "scope": 4054, + "src": "1354:93:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3887, + "nodeType": "Block", + "src": "1685:1202:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3801, + "name": "_eventDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3791, + "src": "1718:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 3802, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1731:5:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1737:9:19", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "1731:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1718:28:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4576656e742064617465206d75737420626520696e20746865206675747572652e", + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1761:35:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4", + "typeString": "literal_string \"Event date must be in the future.\"" + }, + "value": "Event date must be in the future." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4", + "typeString": "literal_string \"Event date must be in the future.\"" + } + ], + "id": 3800, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1696:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1696:111:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3807, + "nodeType": "ExpressionStatement", + "src": "1696:111:19" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3809, + "name": "_maxCapacity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3795, + "src": "1826:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1841:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1826:16:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4d6178206361706163697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 3812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1844:41:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c", + "typeString": "literal_string \"Max capacity must be greater than zero.\"" + }, + "value": "Max capacity must be greater than zero." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c", + "typeString": "literal_string \"Max capacity must be greater than zero.\"" + } + ], + "id": 3808, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1818:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1818:68:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3814, + "nodeType": "ExpressionStatement", + "src": "1818:68:19" + }, + { + "assignments": [ + 3816 + ], + "declarations": [ + { + "constant": false, + "id": 3816, + "mutability": "mutable", + "name": "size", + "nameLocation": "1965:4:19", + "nodeType": "VariableDeclaration", + "scope": 3887, + "src": "1958:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3815, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1958:6:19", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 3817, + "nodeType": "VariableDeclarationStatement", + "src": "1958:11:19" + }, + { + "AST": { + "nativeSrc": "1989:59:19", + "nodeType": "YulBlock", + "src": "1989:59:19", + "statements": [ + { + "nativeSrc": "2004:33:19", + "nodeType": "YulAssignment", + "src": "2004:33:19", + "value": { + "arguments": [ + { + "name": "_nftRequired", + "nativeSrc": "2024:12:19", + "nodeType": "YulIdentifier", + "src": "2024:12:19" + } + ], + "functionName": { + "name": "extcodesize", + "nativeSrc": "2012:11:19", + "nodeType": "YulIdentifier", + "src": "2012:11:19" + }, + "nativeSrc": "2012:25:19", + "nodeType": "YulFunctionCall", + "src": "2012:25:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "2004:4:19", + "nodeType": "YulIdentifier", + "src": "2004:4:19" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3793, + "isOffset": false, + "isSlot": false, + "src": "2024:12:19", + "valueSize": 1 + }, + { + "declaration": 3816, + "isOffset": false, + "isSlot": false, + "src": "2004:4:19", + "valueSize": 1 + } + ], + "id": 3818, + "nodeType": "InlineAssembly", + "src": "1980:68:19" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 3822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3820, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3816, + "src": "2066:4:19", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2073:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2066:8:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5265717569726564204e46542061646472657373206973206e6f74206120636f6e7472616374", + "id": 3823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2076:40:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0", + "typeString": "literal_string \"Required NFT address is not a contract\"" + }, + "value": "Required NFT address is not a contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0", + "typeString": "literal_string \"Required NFT address is not a contract\"" + } + ], + "id": 3819, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2058:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2058:59:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3825, + "nodeType": "ExpressionStatement", + "src": "2058:59:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 3832, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4183, + "src": "2261:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$4183_$", + "typeString": "type(contract IERC721)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721_$4183_$", + "typeString": "type(contract IERC721)" + } + ], + "id": 3831, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2256:4:19", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2256:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$4183", + "typeString": "type(contract IERC721)" + } + }, + "id": 3834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2270:11:19", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2256:25:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "arguments": [ + { + "id": 3828, + "name": "_nftRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3793, + "src": "2224:12:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3827, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4066, + "src": "2216:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$4066_$", + "typeString": "type(contract IERC165)" + } + }, + "id": 3829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2216:21:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$4066", + "typeString": "contract IERC165" + } + }, + "id": 3830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2238:17:19", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 4065, + "src": "2216:39:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view external returns (bool)" + } + }, + "id": 3835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2216:66:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5265717569726564204e46542041646472657373206973206e6f7420616e2045524337323120636f6e7472616374", + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2297:48:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf", + "typeString": "literal_string \"Required NFT Address is not an ERC721 contract\"" + }, + "value": "Required NFT Address is not an ERC721 contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf", + "typeString": "literal_string \"Required NFT Address is not an ERC721 contract\"" + } + ], + "id": 3826, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2194:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2194:162:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3838, + "nodeType": "ExpressionStatement", + "src": "2194:162:19" + }, + { + "assignments": [ + 3841 + ], + "declarations": [ + { + "constant": false, + "id": 3841, + "mutability": "mutable", + "name": "newEvent", + "nameLocation": "2383:8:19", + "nodeType": "VariableDeclaration", + "scope": 3887, + "src": "2369:22:19", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + }, + "typeName": { + "id": 3840, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3839, + "name": "Event", + "nameLocations": [ + "2369:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3733, + "src": "2369:5:19" + }, + "referencedDeclaration": 3733, + "src": "2369:5:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + } + }, + "visibility": "internal" + } + ], + "id": 3845, + "initialValue": { + "baseExpression": { + "id": 3842, + "name": "events", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "2394:6:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Event_$3733_storage_$", + "typeString": "mapping(uint256 => struct NFTGatedEventManager.Event storage ref)" + } + }, + "id": 3844, + "indexExpression": { + "id": 3843, + "name": "eventIdCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2401:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2394:22:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage", + "typeString": "struct NFTGatedEventManager.Event storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2369:47:19" + }, + { + "expression": { + "id": 3850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3846, + "name": "newEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3841, + "src": "2427:8:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3848, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2436:9:19", + "memberName": "eventName", + "nodeType": "MemberAccess", + "referencedDeclaration": 3718, + "src": "2427:18:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3849, + "name": "_eventName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3789, + "src": "2448:10:19", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2427:31:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3851, + "nodeType": "ExpressionStatement", + "src": "2427:31:19" + }, + { + "expression": { + "id": 3856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3852, + "name": "newEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3841, + "src": "2469:8:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3854, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2478:9:19", + "memberName": "eventDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 3720, + "src": "2469:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3855, + "name": "_eventDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3791, + "src": "2490:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2469:31:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3857, + "nodeType": "ExpressionStatement", + "src": "2469:31:19" + }, + { + "expression": { + "id": 3862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3858, + "name": "newEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3841, + "src": "2511:8:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3860, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2520:11:19", + "memberName": "nftRequired", + "nodeType": "MemberAccess", + "referencedDeclaration": 3722, + "src": "2511:20:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3861, + "name": "_nftRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3793, + "src": "2534:12:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2511:35:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3863, + "nodeType": "ExpressionStatement", + "src": "2511:35:19" + }, + { + "expression": { + "id": 3868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3864, + "name": "newEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3841, + "src": "2557:8:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3866, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2566:11:19", + "memberName": "maxCapacity", + "nodeType": "MemberAccess", + "referencedDeclaration": 3726, + "src": "2557:20:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3867, + "name": "_maxCapacity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3795, + "src": "2580:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2557:35:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3869, + "nodeType": "ExpressionStatement", + "src": "2557:35:19" + }, + { + "expression": { + "id": 3874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3870, + "name": "newEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3841, + "src": "2603:8:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3872, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2612:8:19", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3724, + "src": "2603:17:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 3873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2623:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2603:24:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3875, + "nodeType": "ExpressionStatement", + "src": "2603:24:19" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3877, + "name": "eventIdCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2672:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3878, + "name": "_eventName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3789, + "src": "2701:10:19", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 3879, + "name": "_eventDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3791, + "src": "2726:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3880, + "name": "_nftRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3793, + "src": "2751:12:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3881, + "name": "_maxCapacity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3795, + "src": "2778:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3876, + "name": "EventCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3766, + "src": "2645:12:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,string memory,uint256,address,uint256)" + } + }, + "id": 3882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2645:156:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3883, + "nodeType": "EmitStatement", + "src": "2640:161:19" + }, + { + "expression": { + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2814:16:19", + "subExpression": { + "id": 3884, + "name": "eventIdCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2814:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3886, + "nodeType": "ExpressionStatement", + "src": "2814:16:19" + } + ] + }, + "functionSelector": "018c9724", + "id": 3888, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3798, + "kind": "modifierInvocation", + "modifierName": { + "id": 3797, + "name": "onlyOwner", + "nameLocations": [ + "1675:9:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3754, + "src": "1675:9:19" + }, + "nodeType": "ModifierInvocation", + "src": "1675:9:19" + } + ], + "name": "createEvent", + "nameLocation": "1523:11:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3789, + "mutability": "mutable", + "name": "_eventName", + "nameLocation": "1559:10:19", + "nodeType": "VariableDeclaration", + "scope": 3888, + "src": "1545:24:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3788, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1545:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3791, + "mutability": "mutable", + "name": "_eventDate", + "nameLocation": "1588:10:19", + "nodeType": "VariableDeclaration", + "scope": 3888, + "src": "1580:18:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3790, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1580:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3793, + "mutability": "mutable", + "name": "_nftRequired", + "nameLocation": "1617:12:19", + "nodeType": "VariableDeclaration", + "scope": 3888, + "src": "1609:20:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1609:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3795, + "mutability": "mutable", + "name": "_maxCapacity", + "nameLocation": "1648:12:19", + "nodeType": "VariableDeclaration", + "scope": 3888, + "src": "1640:20:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3794, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1640:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1534:133:19" + }, + "returnParameters": { + "id": 3799, + "nodeType": "ParameterList", + "parameters": [], + "src": "1685:0:19" + }, + "scope": 4054, + "src": "1514:1373:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3968, + "nodeType": "Block", + "src": "3002:873:19", + "statements": [ + { + "assignments": [ + 3895 + ], + "declarations": [ + { + "constant": false, + "id": 3895, + "mutability": "mutable", + "name": "currentEvent", + "nameLocation": "3027:12:19", + "nodeType": "VariableDeclaration", + "scope": 3968, + "src": "3013:26:19", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + }, + "typeName": { + "id": 3894, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3893, + "name": "Event", + "nameLocations": [ + "3013:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3733, + "src": "3013:5:19" + }, + "referencedDeclaration": 3733, + "src": "3013:5:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + } + }, + "visibility": "internal" + } + ], + "id": 3899, + "initialValue": { + "baseExpression": { + "id": 3896, + "name": "events", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "3042:6:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Event_$3733_storage_$", + "typeString": "mapping(uint256 => struct NFTGatedEventManager.Event storage ref)" + } + }, + "id": 3898, + "indexExpression": { + "id": 3897, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3890, + "src": "3049:8:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3042:16:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage", + "typeString": "struct NFTGatedEventManager.Event storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3013:45:19" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3901, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3077:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3902, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3090:8:19", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3724, + "src": "3077:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4576656e74206973206e6f74206163746976652e", + "id": 3903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3100:22:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305", + "typeString": "literal_string \"Event is not active.\"" + }, + "value": "Event is not active." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305", + "typeString": "literal_string \"Event is not active.\"" + } + ], + "id": 3900, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3069:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3069:54:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3905, + "nodeType": "ExpressionStatement", + "src": "3069:54:19" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3907, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3156:5:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3162:9:19", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3156:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3909, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3174:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3910, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3187:9:19", + "memberName": "eventDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 3720, + "src": "3174:22:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3156:40:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4576656e7420726567697374726174696f6e2068617320636c6f7365642e", + "id": 3912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3211:32:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a", + "typeString": "literal_string \"Event registration has closed.\"" + }, + "value": "Event registration has closed." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a", + "typeString": "literal_string \"Event registration has closed.\"" + } + ], + "id": 3906, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3134:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3134:120:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3914, + "nodeType": "ExpressionStatement", + "src": "3134:120:19" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3916, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3287:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3917, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3300:15:19", + "memberName": "registeredCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 3728, + "src": "3287:28:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3918, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3318:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3919, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3331:11:19", + "memberName": "maxCapacity", + "nodeType": "MemberAccess", + "referencedDeclaration": 3726, + "src": "3318:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3287:55:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4576656e742069732066756c6c7920626f6f6b65642e", + "id": 3921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3357:24:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b", + "typeString": "literal_string \"Event is fully booked.\"" + }, + "value": "Event is fully booked." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b", + "typeString": "literal_string \"Event is fully booked.\"" + } + ], + "id": 3915, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3265:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3265:127:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3923, + "nodeType": "ExpressionStatement", + "src": "3265:127:19" + }, + { + "expression": { + "arguments": [ + { + "id": 3930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3425:38:19", + "subExpression": { + "baseExpression": { + "expression": { + "id": 3925, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3426:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3439:12:19", + "memberName": "isRegistered", + "nodeType": "MemberAccess", + "referencedDeclaration": 3732, + "src": "3426:25:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3929, + "indexExpression": { + "expression": { + "id": 3927, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3452:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3456:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3452:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3426:37:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f752061726520616c7265616479207265676973746572656420666f722074686973206576656e742e", + "id": 3931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3478:44:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62", + "typeString": "literal_string \"You are already registered for this event.\"" + }, + "value": "You are already registered for this event." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62", + "typeString": "literal_string \"You are already registered for this event.\"" + } + ], + "id": 3924, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3403:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3403:130:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3933, + "nodeType": "ExpressionStatement", + "src": "3403:130:19" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 3940, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3610:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3614:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3610:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 3936, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3574:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3587:11:19", + "memberName": "nftRequired", + "nodeType": "MemberAccess", + "referencedDeclaration": 3722, + "src": "3574:24:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3935, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4183, + "src": "3566:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$4183_$", + "typeString": "type(contract IERC721)" + } + }, + "id": 3938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3566:33:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$4183", + "typeString": "contract IERC721" + } + }, + "id": 3939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3600:9:19", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4108, + "src": "3566:43:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3566:55:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3624:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3566:59:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f7520646f206e6f74206f776e20746865207265717569726564204e46542e", + "id": 3945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3640:34:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2", + "typeString": "literal_string \"You do not own the required NFT.\"" + }, + "value": "You do not own the required NFT." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2", + "typeString": "literal_string \"You do not own the required NFT.\"" + } + ], + "id": 3934, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3544:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3544:141:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3947, + "nodeType": "ExpressionStatement", + "src": "3544:141:19" + }, + { + "expression": { + "id": 3955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 3948, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3728:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3952, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3741:12:19", + "memberName": "isRegistered", + "nodeType": "MemberAccess", + "referencedDeclaration": 3732, + "src": "3728:25:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3953, + "indexExpression": { + "expression": { + "id": 3950, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3754:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3758:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3754:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3728:37:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 3954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3768:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3728:44:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3956, + "nodeType": "ExpressionStatement", + "src": "3728:44:19" + }, + { + "expression": { + "id": 3960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3783:30:19", + "subExpression": { + "expression": { + "id": 3957, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3895, + "src": "3783:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3959, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3796:15:19", + "memberName": "registeredCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 3728, + "src": "3783:28:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3961, + "nodeType": "ExpressionStatement", + "src": "3783:30:19" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3963, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3890, + "src": "3846:8:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3964, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3856:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3860:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3856:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3962, + "name": "UserRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3772, + "src": "3831:14:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 3966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3831:36:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3967, + "nodeType": "EmitStatement", + "src": "3826:41:19" + } + ] + }, + "functionSelector": "406db843", + "id": 3969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "registerForEvent", + "nameLocation": "2958:16:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3890, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "2983:8:19", + "nodeType": "VariableDeclaration", + "scope": 3969, + "src": "2975:16:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2975:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2974:18:19" + }, + "returnParameters": { + "id": 3892, + "nodeType": "ParameterList", + "parameters": [], + "src": "3002:0:19" + }, + "scope": 4054, + "src": "2949:926:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4007, + "nodeType": "Block", + "src": "4086:324:19", + "statements": [ + { + "assignments": [ + 3988 + ], + "declarations": [ + { + "constant": false, + "id": 3988, + "mutability": "mutable", + "name": "currentEvent", + "nameLocation": "4111:12:19", + "nodeType": "VariableDeclaration", + "scope": 4007, + "src": "4097:26:19", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + }, + "typeName": { + "id": 3987, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3986, + "name": "Event", + "nameLocations": [ + "4097:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3733, + "src": "4097:5:19" + }, + "referencedDeclaration": 3733, + "src": "4097:5:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + } + }, + "visibility": "internal" + } + ], + "id": 3992, + "initialValue": { + "baseExpression": { + "id": 3989, + "name": "events", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "4126:6:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Event_$3733_storage_$", + "typeString": "mapping(uint256 => struct NFTGatedEventManager.Event storage ref)" + } + }, + "id": 3991, + "indexExpression": { + "id": 3990, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3971, + "src": "4133:8:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4126:16:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage", + "typeString": "struct NFTGatedEventManager.Event storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4097:45:19" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 3993, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "4175:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3994, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4188:9:19", + "memberName": "eventName", + "nodeType": "MemberAccess", + "referencedDeclaration": 3718, + "src": "4175:22:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "expression": { + "id": 3995, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "4212:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3996, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4225:9:19", + "memberName": "eventDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 3720, + "src": "4212:22:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3997, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "4249:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 3998, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4262:11:19", + "memberName": "nftRequired", + "nodeType": "MemberAccess", + "referencedDeclaration": 3722, + "src": "4249:24:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 3999, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "4288:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 4000, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4301:11:19", + "memberName": "maxCapacity", + "nodeType": "MemberAccess", + "referencedDeclaration": 3726, + "src": "4288:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 4001, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "4327:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 4002, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4340:15:19", + "memberName": "registeredCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 3728, + "src": "4327:28:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 4003, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "4370:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 4004, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4383:8:19", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3724, + "src": "4370:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 4005, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4160:242:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_string_storage_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$", + "typeString": "tuple(string storage ref,uint256,address,uint256,uint256,bool)" + } + }, + "functionReturnParameters": 3985, + "id": 4006, + "nodeType": "Return", + "src": "4153:249:19" + } + ] + }, + "functionSelector": "ec38d5a0", + "id": 4008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getEventDetails", + "nameLocation": "3924:15:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3971, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "3958:8:19", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "3950:16:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3950:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3939:34:19" + }, + "returnParameters": { + "id": 3985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3974, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "4024:13:19", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3973, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4024:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3976, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "4039:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4039:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3978, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "4048:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3977, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4048:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3980, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "4057:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3979, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4057:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3982, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "4066:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4066:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3984, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4008, + "src": "4075:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3983, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4075:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4023:57:19" + }, + "scope": 4054, + "src": "3915:495:19", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4035, + "nodeType": "Block", + "src": "4573:165:19", + "statements": [ + { + "assignments": [ + 4019 + ], + "declarations": [ + { + "constant": false, + "id": 4019, + "mutability": "mutable", + "name": "currentEvent", + "nameLocation": "4598:12:19", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "4584:26:19", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + }, + "typeName": { + "id": 4018, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4017, + "name": "Event", + "nameLocations": [ + "4584:5:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3733, + "src": "4584:5:19" + }, + "referencedDeclaration": 3733, + "src": "4584:5:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event" + } + }, + "visibility": "internal" + } + ], + "id": 4023, + "initialValue": { + "baseExpression": { + "id": 4020, + "name": "events", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "4613:6:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Event_$3733_storage_$", + "typeString": "mapping(uint256 => struct NFTGatedEventManager.Event storage ref)" + } + }, + "id": 4022, + "indexExpression": { + "id": 4021, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "4620:8:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4613:16:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage", + "typeString": "struct NFTGatedEventManager.Event storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4584:45:19" + }, + { + "expression": { + "id": 4028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4024, + "name": "currentEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4019, + "src": "4640:12:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage_ptr", + "typeString": "struct NFTGatedEventManager.Event storage pointer" + } + }, + "id": 4026, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4653:8:19", + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3724, + "src": "4640:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4027, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "4664:9:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4640:33:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4029, + "nodeType": "ExpressionStatement", + "src": "4640:33:19" + }, + { + "eventCall": { + "arguments": [ + { + "id": 4031, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "4710:8:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4032, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "4720:9:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4030, + "name": "EventStatusUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3778, + "src": "4691:18:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,bool)" + } + }, + "id": 4033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4691:39:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4034, + "nodeType": "EmitStatement", + "src": "4686:44:19" + } + ] + }, + "functionSelector": "54484fb0", + "id": 4036, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4015, + "kind": "modifierInvocation", + "modifierName": { + "id": 4014, + "name": "onlyOwner", + "nameLocations": [ + "4563:9:19" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3754, + "src": "4563:9:19" + }, + "nodeType": "ModifierInvocation", + "src": "4563:9:19" + } + ], + "name": "updateEventStatus", + "nameLocation": "4477:17:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4010, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "4513:8:19", + "nodeType": "VariableDeclaration", + "scope": 4036, + "src": "4505:16:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4505:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4012, + "mutability": "mutable", + "name": "_isActive", + "nameLocation": "4537:9:19", + "nodeType": "VariableDeclaration", + "scope": 4036, + "src": "4532:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4011, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4532:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4494:59:19" + }, + "returnParameters": { + "id": 4016, + "nodeType": "ParameterList", + "parameters": [], + "src": "4573:0:19" + }, + "scope": 4054, + "src": "4468:270:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4052, + "nodeType": "Block", + "src": "4910:62:19", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 4045, + "name": "events", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "4928:6:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Event_$3733_storage_$", + "typeString": "mapping(uint256 => struct NFTGatedEventManager.Event storage ref)" + } + }, + "id": 4047, + "indexExpression": { + "id": 4046, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4038, + "src": "4935:8:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4928:16:19", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Event_$3733_storage", + "typeString": "struct NFTGatedEventManager.Event storage ref" + } + }, + "id": 4048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4945:12:19", + "memberName": "isRegistered", + "nodeType": "MemberAccess", + "referencedDeclaration": 3732, + "src": "4928:29:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 4050, + "indexExpression": { + "id": 4049, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4040, + "src": "4958:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4928:36:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4044, + "id": 4051, + "nodeType": "Return", + "src": "4921:43:19" + } + ] + }, + "functionSelector": "57f69799", + "id": 4053, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isUserRegistered", + "nameLocation": "4806:16:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4038, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "4841:8:19", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "4833:16:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4833:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4040, + "mutability": "mutable", + "name": "_user", + "nameLocation": "4868:5:19", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "4860:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4039, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4822:58:19" + }, + "returnParameters": { + "id": 4044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4043, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "4904:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4042, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4904:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4903:6:19" + }, + "scope": 4054, + "src": "4797:175:19", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4055, + "src": "165:4810:19", + "usedErrors": [], + "usedEvents": [ + 3766, + 3772, + 3778 + ] + } + ], + "src": "33:4944:19" + }, + "id": 19 + }, + "contracts/interfaces/IERC165.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 4066 + ] + }, + "id": 4067, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4056, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "118:24:20" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 4057, + "nodeType": "StructuredDocumentation", + "src": "146:288:20", + "text": " @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 4066, + "linearizedBaseContracts": [ + 4066 + ], + "name": "IERC165", + "nameLocation": "446:7:20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 4058, + "nodeType": "StructuredDocumentation", + "src": "461:347:20", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 4065, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "823:17:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4061, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4060, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "848:11:20", + "nodeType": "VariableDeclaration", + "scope": 4065, + "src": "841:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 4059, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "841:6:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "840:20:20" + }, + "returnParameters": { + "id": 4064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4063, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4065, + "src": "884:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4062, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "884:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "883:6:20" + }, + "scope": 4066, + "src": "814:76:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4067, + "src": "436:457:20", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "118:775:20" + }, + "id": 20 + }, + "contracts/interfaces/IERC721.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IERC721.sol", + "exportedSymbols": { + "IERC165": [ + 4066 + ], + "IERC721": [ + 4183 + ] + }, + "id": 4184, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4068, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "111:24:21" + }, + { + "absolutePath": "contracts/interfaces/IERC165.sol", + "file": "./IERC165.sol", + "id": 4070, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4184, + "sourceUnit": 4067, + "src": "139:38:21", + "symbolAliases": [ + { + "foreign": { + "id": 4069, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4066, + "src": "147:7:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4072, + "name": "IERC165", + "nameLocations": [ + "274:7:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4066, + "src": "274:7:21" + }, + "id": 4073, + "nodeType": "InheritanceSpecifier", + "src": "274:7:21" + } + ], + "canonicalName": "IERC721", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 4071, + "nodeType": "StructuredDocumentation", + "src": "181:70:21", + "text": " @dev Required interface of an ERC-721 compliant contract." + }, + "fullyImplemented": false, + "id": 4183, + "linearizedBaseContracts": [ + 4183, + 4066 + ], + "name": "IERC721", + "nameLocation": "263:7:21", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 4074, + "nodeType": "StructuredDocumentation", + "src": "289:90:21", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 4082, + "name": "Transfer", + "nameLocation": "391:8:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 4081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4076, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "416:4:21", + "nodeType": "VariableDeclaration", + "scope": 4082, + "src": "400:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "400:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4078, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "438:2:21", + "nodeType": "VariableDeclaration", + "scope": 4082, + "src": "422:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "422:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4080, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "458:7:21", + "nodeType": "VariableDeclaration", + "scope": 4082, + "src": "442:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "442:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "399:67:21" + }, + "src": "385:82:21" + }, + { + "anonymous": false, + "documentation": { + "id": 4083, + "nodeType": "StructuredDocumentation", + "src": "475:96:21", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 4091, + "name": "Approval", + "nameLocation": "583:8:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 4090, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4085, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "608:5:21", + "nodeType": "VariableDeclaration", + "scope": 4091, + "src": "592:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4084, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "592:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4087, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nameLocation": "631:8:21", + "nodeType": "VariableDeclaration", + "scope": 4091, + "src": "615:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "615:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4089, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "657:7:21", + "nodeType": "VariableDeclaration", + "scope": 4091, + "src": "641:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "641:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "591:74:21" + }, + "src": "577:89:21" + }, + { + "anonymous": false, + "documentation": { + "id": 4092, + "nodeType": "StructuredDocumentation", + "src": "674:119:21", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 4100, + "name": "ApprovalForAll", + "nameLocation": "805:14:21", + "nodeType": "EventDefinition", + "parameters": { + "id": 4099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4094, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "836:5:21", + "nodeType": "VariableDeclaration", + "scope": 4100, + "src": "820:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "820:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4096, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "859:8:21", + "nodeType": "VariableDeclaration", + "scope": 4100, + "src": "843:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "843:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4098, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "874:8:21", + "nodeType": "VariableDeclaration", + "scope": 4100, + "src": "869:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4097, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "869:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "819:64:21" + }, + "src": "799:85:21" + }, + { + "documentation": { + "id": 4101, + "nodeType": "StructuredDocumentation", + "src": "892:78:21", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 4108, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "985:9:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4103, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1003:5:21", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "995:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "995:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "994:15:21" + }, + "returnParameters": { + "id": 4107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4106, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1041:7:21", + "nodeType": "VariableDeclaration", + "scope": 4108, + "src": "1033:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1033:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1032:17:21" + }, + "scope": 4183, + "src": "976:74:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4109, + "nodeType": "StructuredDocumentation", + "src": "1058:137:21", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 4116, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1210:7:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4111, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1226:7:21", + "nodeType": "VariableDeclaration", + "scope": 4116, + "src": "1218:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1218:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1217:17:21" + }, + "returnParameters": { + "id": 4115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4114, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1266:5:21", + "nodeType": "VariableDeclaration", + "scope": 4116, + "src": "1258:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1258:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1257:15:21" + }, + "scope": 4183, + "src": "1201:72:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4117, + "nodeType": "StructuredDocumentation", + "src": "1281:578:21", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 4128, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1874:16:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4119, + "mutability": "mutable", + "name": "from", + "nameLocation": "1899:4:21", + "nodeType": "VariableDeclaration", + "scope": 4128, + "src": "1891:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4118, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1891:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4121, + "mutability": "mutable", + "name": "to", + "nameLocation": "1913:2:21", + "nodeType": "VariableDeclaration", + "scope": 4128, + "src": "1905:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1905:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4123, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1925:7:21", + "nodeType": "VariableDeclaration", + "scope": 4128, + "src": "1917:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4125, + "mutability": "mutable", + "name": "data", + "nameLocation": "1949:4:21", + "nodeType": "VariableDeclaration", + "scope": 4128, + "src": "1934:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4124, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1890:64:21" + }, + "returnParameters": { + "id": 4127, + "nodeType": "ParameterList", + "parameters": [], + "src": "1963:0:21" + }, + "scope": 4183, + "src": "1865:99:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4129, + "nodeType": "StructuredDocumentation", + "src": "1972:721:21", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC-721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 4138, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "2708:16:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4131, + "mutability": "mutable", + "name": "from", + "nameLocation": "2733:4:21", + "nodeType": "VariableDeclaration", + "scope": 4138, + "src": "2725:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2725:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4133, + "mutability": "mutable", + "name": "to", + "nameLocation": "2747:2:21", + "nodeType": "VariableDeclaration", + "scope": 4138, + "src": "2739:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2739:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4135, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2759:7:21", + "nodeType": "VariableDeclaration", + "scope": 4138, + "src": "2751:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2751:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2724:43:21" + }, + "returnParameters": { + "id": 4137, + "nodeType": "ParameterList", + "parameters": [], + "src": "2776:0:21" + }, + "scope": 4183, + "src": "2699:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4139, + "nodeType": "StructuredDocumentation", + "src": "2785:748:21", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 4148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "3548:12:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4141, + "mutability": "mutable", + "name": "from", + "nameLocation": "3569:4:21", + "nodeType": "VariableDeclaration", + "scope": 4148, + "src": "3561:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3561:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4143, + "mutability": "mutable", + "name": "to", + "nameLocation": "3583:2:21", + "nodeType": "VariableDeclaration", + "scope": 4148, + "src": "3575:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4145, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3595:7:21", + "nodeType": "VariableDeclaration", + "scope": 4148, + "src": "3587:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3587:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3560:43:21" + }, + "returnParameters": { + "id": 4147, + "nodeType": "ParameterList", + "parameters": [], + "src": "3612:0:21" + }, + "scope": 4183, + "src": "3539:74:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4149, + "nodeType": "StructuredDocumentation", + "src": "3621:464:21", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 4156, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4100:7:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4151, + "mutability": "mutable", + "name": "to", + "nameLocation": "4116:2:21", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "4108:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4108:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4153, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4128:7:21", + "nodeType": "VariableDeclaration", + "scope": 4156, + "src": "4120:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4120:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4107:29:21" + }, + "returnParameters": { + "id": 4155, + "nodeType": "ParameterList", + "parameters": [], + "src": "4145:0:21" + }, + "scope": 4183, + "src": "4091:55:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4157, + "nodeType": "StructuredDocumentation", + "src": "4154:324:21", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 4164, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4493:17:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4159, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4519:8:21", + "nodeType": "VariableDeclaration", + "scope": 4164, + "src": "4511:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4511:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4161, + "mutability": "mutable", + "name": "approved", + "nameLocation": "4534:8:21", + "nodeType": "VariableDeclaration", + "scope": 4164, + "src": "4529:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4160, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4529:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4510:33:21" + }, + "returnParameters": { + "id": 4163, + "nodeType": "ParameterList", + "parameters": [], + "src": "4552:0:21" + }, + "scope": 4183, + "src": "4484:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4165, + "nodeType": "StructuredDocumentation", + "src": "4561:145:21", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 4172, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4721:11:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4167, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4741:7:21", + "nodeType": "VariableDeclaration", + "scope": 4172, + "src": "4733:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4733:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4732:17:21" + }, + "returnParameters": { + "id": 4171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4170, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4781:8:21", + "nodeType": "VariableDeclaration", + "scope": 4172, + "src": "4773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4773:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4772:18:21" + }, + "scope": 4183, + "src": "4712:79:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 4173, + "nodeType": "StructuredDocumentation", + "src": "4799:142:21", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 4182, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4956:16:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4175, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4981:5:21", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "4973:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4973:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4177, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4996:8:21", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "4988:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4988:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4972:33:21" + }, + "returnParameters": { + "id": 4181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4180, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "5029:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5029:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5028:6:21" + }, + "scope": 4183, + "src": "4947:88:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4184, + "src": "253:4785:21", + "usedErrors": [], + "usedEvents": [ + 4082, + 4091, + 4100 + ] + } + ], + "src": "111:4927:21" + }, + "id": 21 + }, + "contracts/interfaces/INFTGatedEvent.sol": { + "ast": { + "absolutePath": "contracts/interfaces/INFTGatedEvent.sol", + "exportedSymbols": { + "INFTGatedEventManager": [ + 4235 + ] + }, + "id": 4236, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4185, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "33:24:22" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "INFTGatedEventManager", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 4235, + "linearizedBaseContracts": [ + 4235 + ], + "name": "INFTGatedEventManager", + "nameLocation": "71:21:22", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "018c9724", + "id": 4196, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createEvent", + "nameLocation": "168:11:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4187, + "mutability": "mutable", + "name": "_eventName", + "nameLocation": "204:10:22", + "nodeType": "VariableDeclaration", + "scope": 4196, + "src": "190:24:22", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4186, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "190:6:22", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4189, + "mutability": "mutable", + "name": "_eventDate", + "nameLocation": "233:10:22", + "nodeType": "VariableDeclaration", + "scope": 4196, + "src": "225:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "225:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4191, + "mutability": "mutable", + "name": "_nftRequired", + "nameLocation": "262:12:22", + "nodeType": "VariableDeclaration", + "scope": 4196, + "src": "254:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "254:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4193, + "mutability": "mutable", + "name": "_maxCapacity", + "nameLocation": "293:12:22", + "nodeType": "VariableDeclaration", + "scope": 4196, + "src": "285:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "285:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "179:133:22" + }, + "returnParameters": { + "id": 4195, + "nodeType": "ParameterList", + "parameters": [], + "src": "321:0:22" + }, + "scope": 4235, + "src": "159:163:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "406db843", + "id": 4201, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "registerForEvent", + "nameLocation": "393:16:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4198, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "418:8:22", + "nodeType": "VariableDeclaration", + "scope": 4201, + "src": "410:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "410:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "409:18:22" + }, + "returnParameters": { + "id": 4200, + "nodeType": "ParameterList", + "parameters": [], + "src": "436:0:22" + }, + "scope": 4235, + "src": "384:53:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "ec38d5a0", + "id": 4218, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getEventDetails", + "nameLocation": "486:15:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4203, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "520:8:22", + "nodeType": "VariableDeclaration", + "scope": 4218, + "src": "512:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4202, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "512:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "501:34:22" + }, + "returnParameters": { + "id": 4217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4206, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4218, + "src": "586:13:22", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4205, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "586:6:22", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4208, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4218, + "src": "601:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4210, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4218, + "src": "610:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "610:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4212, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4218, + "src": "619:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "619:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4214, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4218, + "src": "628:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4213, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "628:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4216, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4218, + "src": "637:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4215, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "637:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "585:57:22" + }, + "scope": 4235, + "src": "477:166:22", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "54484fb0", + "id": 4225, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateEventStatus", + "nameLocation": "710:17:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4220, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "736:8:22", + "nodeType": "VariableDeclaration", + "scope": 4225, + "src": "728:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "728:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4222, + "mutability": "mutable", + "name": "_isActive", + "nameLocation": "751:9:22", + "nodeType": "VariableDeclaration", + "scope": 4225, + "src": "746:14:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "746:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "727:34:22" + }, + "returnParameters": { + "id": 4224, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:0:22" + }, + "scope": 4235, + "src": "701:70:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "57f69799", + "id": 4234, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isUserRegistered", + "nameLocation": "839:16:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4227, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "874:8:22", + "nodeType": "VariableDeclaration", + "scope": 4234, + "src": "866:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4229, + "mutability": "mutable", + "name": "_user", + "nameLocation": "901:5:22", + "nodeType": "VariableDeclaration", + "scope": 4234, + "src": "893:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4228, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "893:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "855:58:22" + }, + "returnParameters": { + "id": 4233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4232, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4234, + "src": "937:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4231, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "937:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "936:6:22" + }, + "scope": 4235, + "src": "830:113:22", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4236, + "src": "61:885:22", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "33:915:22" + }, + "id": 22 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "IERC4906": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"EIP-721 Metadata Update Extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC4906.sol\":\"IERC4906\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ERC721": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "IERC721": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "IERC721Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC721Received(address,address,uint256,bytes)": "150b7a02" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "ERC721URIStorage": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 token with storage based token URI management.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "IERC721Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", + "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 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "sourceMap": "251:2847:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "sourceMap": "251:2847:11:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", + "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 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", + "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 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "contracts/Base64.sol": { + "Base64": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e4576c4e1eb5caad5c5f8241bfc8ce0c855d9345b2c3f258007d005496faac764736f6c63430008180033", + "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 0x1E GASLIMIT PUSH23 0xC4E1EB5CAAD5C5F8241BFC8CE0C855D9345B2C3F258007 0xD0 SDIV BLOBHASH PUSH16 0xAAC764736F6C63430008180033000000 ", + "sourceMap": "210:5122:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e4576c4e1eb5caad5c5f8241bfc8ce0c855d9345b2c3f258007d005496faac764736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E GASLIMIT PUSH23 0xC4E1EB5CAAD5C5F8241BFC8CE0C855D9345B2C3F258007 0xD0 SDIV BLOBHASH PUSH16 0xAAC764736F6C63430008180033000000 ", + "sourceMap": "210:5122:16:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides a set of functions to operate with Base64 strings.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_TABLE\":{\"details\":\"Base64 Encoding/Decoding Table See sections 4 and 5 of https://datatracker.ietf.org/doc/html/rfc4648\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Base64.sol\":\"Base64\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Base64.sol\":{\"keccak256\":\"0x6d694185b14e1233702ff0bbf9fd2d1915b53cc525e17fd74fcf924c0965a8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e929968c67ff158ca737ccccb0847c02e4d07006f9d9d395bc8c2b7264486fc\",\"dweb:/ipfs/QmQUrKGYj5QKkZN7DDXHcivBFU7tzF2Uyv3G65ZaZBZEFS\"]}},\"version\":1}" + } + }, + "contracts/CaveParty.sol": { + "CaveParty": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "assetMetadata", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getAssetMetadata", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMyWalletMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxPerWallet", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mintPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mintToken", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_newAssetMetadata", + "type": "string" + } + ], + "name": "updateMetadata", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "walletMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_3228": { + "entryPoint": null, + "id": 3228, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_386": { + "entryPoint": null, + "id": 386, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 369, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1484, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1501, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 725, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 567, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1046, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 1464, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1432, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 861, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1007, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 881, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1201, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 746, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 672, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1171, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 871, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1139, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 625, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 578, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 921, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 762, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1126, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 979, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 775, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 931, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 974, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:5817:23", + "nodeType": "YulBlock", + "src": "0:5817:23", + "statements": [ + { + "body": { + "nativeSrc": "66:40:23", + "nodeType": "YulBlock", + "src": "66:40:23", + "statements": [ + { + "nativeSrc": "77:22:23", + "nodeType": "YulAssignment", + "src": "77:22:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:23", + "nodeType": "YulIdentifier", + "src": "93:5:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "87:5:23", + "nodeType": "YulIdentifier", + "src": "87:5:23" + }, + "nativeSrc": "87:12:23", + "nodeType": "YulFunctionCall", + "src": "87:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "77:6:23", + "nodeType": "YulIdentifier", + "src": "77:6:23" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7:99:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "49:5:23", + "nodeType": "YulTypedName", + "src": "49:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "59:6:23", + "nodeType": "YulTypedName", + "src": "59:6:23", + "type": "" + } + ], + "src": "7:99:23" + }, + { + "body": { + "nativeSrc": "140:152:23", + "nodeType": "YulBlock", + "src": "140:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "157:1:23", + "nodeType": "YulLiteral", + "src": "157:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "160:77:23", + "nodeType": "YulLiteral", + "src": "160:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "150:6:23", + "nodeType": "YulIdentifier", + "src": "150:6:23" + }, + "nativeSrc": "150:88:23", + "nodeType": "YulFunctionCall", + "src": "150:88:23" + }, + "nativeSrc": "150:88:23", + "nodeType": "YulExpressionStatement", + "src": "150:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "254:1:23", + "nodeType": "YulLiteral", + "src": "254:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "257:4:23", + "nodeType": "YulLiteral", + "src": "257:4:23", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "247:6:23", + "nodeType": "YulIdentifier", + "src": "247:6:23" + }, + "nativeSrc": "247:15:23", + "nodeType": "YulFunctionCall", + "src": "247:15:23" + }, + "nativeSrc": "247:15:23", + "nodeType": "YulExpressionStatement", + "src": "247:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "278:1:23", + "nodeType": "YulLiteral", + "src": "278:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "281:4:23", + "nodeType": "YulLiteral", + "src": "281:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "271:6:23", + "nodeType": "YulIdentifier", + "src": "271:6:23" + }, + "nativeSrc": "271:15:23", + "nodeType": "YulFunctionCall", + "src": "271:15:23" + }, + "nativeSrc": "271:15:23", + "nodeType": "YulExpressionStatement", + "src": "271:15:23" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "112:180:23", + "nodeType": "YulFunctionDefinition", + "src": "112:180:23" + }, + { + "body": { + "nativeSrc": "326:152:23", + "nodeType": "YulBlock", + "src": "326:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "343:1:23", + "nodeType": "YulLiteral", + "src": "343:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "346:77:23", + "nodeType": "YulLiteral", + "src": "346:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "336:6:23", + "nodeType": "YulIdentifier", + "src": "336:6:23" + }, + "nativeSrc": "336:88:23", + "nodeType": "YulFunctionCall", + "src": "336:88:23" + }, + "nativeSrc": "336:88:23", + "nodeType": "YulExpressionStatement", + "src": "336:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:23", + "nodeType": "YulLiteral", + "src": "440:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "443:4:23", + "nodeType": "YulLiteral", + "src": "443:4:23", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "433:6:23", + "nodeType": "YulIdentifier", + "src": "433:6:23" + }, + "nativeSrc": "433:15:23", + "nodeType": "YulFunctionCall", + "src": "433:15:23" + }, + "nativeSrc": "433:15:23", + "nodeType": "YulExpressionStatement", + "src": "433:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "464:1:23", + "nodeType": "YulLiteral", + "src": "464:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "467:4:23", + "nodeType": "YulLiteral", + "src": "467:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "457:6:23", + "nodeType": "YulIdentifier", + "src": "457:6:23" + }, + "nativeSrc": "457:15:23", + "nodeType": "YulFunctionCall", + "src": "457:15:23" + }, + "nativeSrc": "457:15:23", + "nodeType": "YulExpressionStatement", + "src": "457:15:23" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "298:180:23", + "nodeType": "YulFunctionDefinition", + "src": "298:180:23" + }, + { + "body": { + "nativeSrc": "535:269:23", + "nodeType": "YulBlock", + "src": "535:269:23", + "statements": [ + { + "nativeSrc": "545:22:23", + "nodeType": "YulAssignment", + "src": "545:22:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "559:4:23", + "nodeType": "YulIdentifier", + "src": "559:4:23" + }, + { + "kind": "number", + "nativeSrc": "565:1:23", + "nodeType": "YulLiteral", + "src": "565:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "555:3:23", + "nodeType": "YulIdentifier", + "src": "555:3:23" + }, + "nativeSrc": "555:12:23", + "nodeType": "YulFunctionCall", + "src": "555:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "545:6:23", + "nodeType": "YulIdentifier", + "src": "545:6:23" + } + ] + }, + { + "nativeSrc": "576:38:23", + "nodeType": "YulVariableDeclaration", + "src": "576:38:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "606:4:23", + "nodeType": "YulIdentifier", + "src": "606:4:23" + }, + { + "kind": "number", + "nativeSrc": "612:1:23", + "nodeType": "YulLiteral", + "src": "612:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "602:3:23", + "nodeType": "YulIdentifier", + "src": "602:3:23" + }, + "nativeSrc": "602:12:23", + "nodeType": "YulFunctionCall", + "src": "602:12:23" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "580:18:23", + "nodeType": "YulTypedName", + "src": "580:18:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "653:51:23", + "nodeType": "YulBlock", + "src": "653:51:23", + "statements": [ + { + "nativeSrc": "667:27:23", + "nodeType": "YulAssignment", + "src": "667:27:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "681:6:23", + "nodeType": "YulIdentifier", + "src": "681:6:23" + }, + { + "kind": "number", + "nativeSrc": "689:4:23", + "nodeType": "YulLiteral", + "src": "689:4:23", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "677:3:23", + "nodeType": "YulIdentifier", + "src": "677:3:23" + }, + "nativeSrc": "677:17:23", + "nodeType": "YulFunctionCall", + "src": "677:17:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "667:6:23", + "nodeType": "YulIdentifier", + "src": "667:6:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "633:18:23", + "nodeType": "YulIdentifier", + "src": "633:18:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "626:6:23", + "nodeType": "YulIdentifier", + "src": "626:6:23" + }, + "nativeSrc": "626:26:23", + "nodeType": "YulFunctionCall", + "src": "626:26:23" + }, + "nativeSrc": "623:81:23", + "nodeType": "YulIf", + "src": "623:81:23" + }, + { + "body": { + "nativeSrc": "756:42:23", + "nodeType": "YulBlock", + "src": "756:42:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "770:16:23", + "nodeType": "YulIdentifier", + "src": "770:16:23" + }, + "nativeSrc": "770:18:23", + "nodeType": "YulFunctionCall", + "src": "770:18:23" + }, + "nativeSrc": "770:18:23", + "nodeType": "YulExpressionStatement", + "src": "770:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "720:18:23", + "nodeType": "YulIdentifier", + "src": "720:18:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "743:6:23", + "nodeType": "YulIdentifier", + "src": "743:6:23" + }, + { + "kind": "number", + "nativeSrc": "751:2:23", + "nodeType": "YulLiteral", + "src": "751:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "740:2:23", + "nodeType": "YulIdentifier", + "src": "740:2:23" + }, + "nativeSrc": "740:14:23", + "nodeType": "YulFunctionCall", + "src": "740:14:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "717:2:23", + "nodeType": "YulIdentifier", + "src": "717:2:23" + }, + "nativeSrc": "717:38:23", + "nodeType": "YulFunctionCall", + "src": "717:38:23" + }, + "nativeSrc": "714:84:23", + "nodeType": "YulIf", + "src": "714:84:23" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "484:320:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "519:4:23", + "nodeType": "YulTypedName", + "src": "519:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "528:6:23", + "nodeType": "YulTypedName", + "src": "528:6:23", + "type": "" + } + ], + "src": "484:320:23" + }, + { + "body": { + "nativeSrc": "864:87:23", + "nodeType": "YulBlock", + "src": "864:87:23", + "statements": [ + { + "nativeSrc": "874:11:23", + "nodeType": "YulAssignment", + "src": "874:11:23", + "value": { + "name": "ptr", + "nativeSrc": "882:3:23", + "nodeType": "YulIdentifier", + "src": "882:3:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "874:4:23", + "nodeType": "YulIdentifier", + "src": "874:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "902:1:23", + "nodeType": "YulLiteral", + "src": "902:1:23", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "905:3:23", + "nodeType": "YulIdentifier", + "src": "905:3:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "895:6:23", + "nodeType": "YulIdentifier", + "src": "895:6:23" + }, + "nativeSrc": "895:14:23", + "nodeType": "YulFunctionCall", + "src": "895:14:23" + }, + "nativeSrc": "895:14:23", + "nodeType": "YulExpressionStatement", + "src": "895:14:23" + }, + { + "nativeSrc": "918:26:23", + "nodeType": "YulAssignment", + "src": "918:26:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "936:1:23", + "nodeType": "YulLiteral", + "src": "936:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "939:4:23", + "nodeType": "YulLiteral", + "src": "939:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "926:9:23", + "nodeType": "YulIdentifier", + "src": "926:9:23" + }, + "nativeSrc": "926:18:23", + "nodeType": "YulFunctionCall", + "src": "926:18:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "918:4:23", + "nodeType": "YulIdentifier", + "src": "918:4:23" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "810:141:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "851:3:23", + "nodeType": "YulTypedName", + "src": "851:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "859:4:23", + "nodeType": "YulTypedName", + "src": "859:4:23", + "type": "" + } + ], + "src": "810:141:23" + }, + { + "body": { + "nativeSrc": "1001:49:23", + "nodeType": "YulBlock", + "src": "1001:49:23", + "statements": [ + { + "nativeSrc": "1011:33:23", + "nodeType": "YulAssignment", + "src": "1011:33:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1029:5:23", + "nodeType": "YulIdentifier", + "src": "1029:5:23" + }, + { + "kind": "number", + "nativeSrc": "1036:2:23", + "nodeType": "YulLiteral", + "src": "1036:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1025:3:23", + "nodeType": "YulIdentifier", + "src": "1025:3:23" + }, + "nativeSrc": "1025:14:23", + "nodeType": "YulFunctionCall", + "src": "1025:14:23" + }, + { + "kind": "number", + "nativeSrc": "1041:2:23", + "nodeType": "YulLiteral", + "src": "1041:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "1021:3:23", + "nodeType": "YulIdentifier", + "src": "1021:3:23" + }, + "nativeSrc": "1021:23:23", + "nodeType": "YulFunctionCall", + "src": "1021:23:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1011:6:23", + "nodeType": "YulIdentifier", + "src": "1011:6:23" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "957:93:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "984:5:23", + "nodeType": "YulTypedName", + "src": "984:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "994:6:23", + "nodeType": "YulTypedName", + "src": "994:6:23", + "type": "" + } + ], + "src": "957:93:23" + }, + { + "body": { + "nativeSrc": "1109:54:23", + "nodeType": "YulBlock", + "src": "1109:54:23", + "statements": [ + { + "nativeSrc": "1119:37:23", + "nodeType": "YulAssignment", + "src": "1119:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "1144:4:23", + "nodeType": "YulIdentifier", + "src": "1144:4:23" + }, + { + "name": "value", + "nativeSrc": "1150:5:23", + "nodeType": "YulIdentifier", + "src": "1150:5:23" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1140:3:23", + "nodeType": "YulIdentifier", + "src": "1140:3:23" + }, + "nativeSrc": "1140:16:23", + "nodeType": "YulFunctionCall", + "src": "1140:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "1119:8:23", + "nodeType": "YulIdentifier", + "src": "1119:8:23" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "1056:107:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "1084:4:23", + "nodeType": "YulTypedName", + "src": "1084:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "1090:5:23", + "nodeType": "YulTypedName", + "src": "1090:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "1100:8:23", + "nodeType": "YulTypedName", + "src": "1100:8:23", + "type": "" + } + ], + "src": "1056:107:23" + }, + { + "body": { + "nativeSrc": "1245:317:23", + "nodeType": "YulBlock", + "src": "1245:317:23", + "statements": [ + { + "nativeSrc": "1255:35:23", + "nodeType": "YulVariableDeclaration", + "src": "1255:35:23", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "1276:10:23", + "nodeType": "YulIdentifier", + "src": "1276:10:23" + }, + { + "kind": "number", + "nativeSrc": "1288:1:23", + "nodeType": "YulLiteral", + "src": "1288:1:23", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "1272:3:23", + "nodeType": "YulIdentifier", + "src": "1272:3:23" + }, + "nativeSrc": "1272:18:23", + "nodeType": "YulFunctionCall", + "src": "1272:18:23" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "1259:9:23", + "nodeType": "YulTypedName", + "src": "1259:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "1299:109:23", + "nodeType": "YulVariableDeclaration", + "src": "1299:109:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "1330:9:23", + "nodeType": "YulIdentifier", + "src": "1330:9:23" + }, + { + "kind": "number", + "nativeSrc": "1341:66:23", + "nodeType": "YulLiteral", + "src": "1341:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "1311:18:23", + "nodeType": "YulIdentifier", + "src": "1311:18:23" + }, + "nativeSrc": "1311:97:23", + "nodeType": "YulFunctionCall", + "src": "1311:97:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "1303:4:23", + "nodeType": "YulTypedName", + "src": "1303:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "1417:51:23", + "nodeType": "YulAssignment", + "src": "1417:51:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "1448:9:23", + "nodeType": "YulIdentifier", + "src": "1448:9:23" + }, + { + "name": "toInsert", + "nativeSrc": "1459:8:23", + "nodeType": "YulIdentifier", + "src": "1459:8:23" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "1429:18:23", + "nodeType": "YulIdentifier", + "src": "1429:18:23" + }, + "nativeSrc": "1429:39:23", + "nodeType": "YulFunctionCall", + "src": "1429:39:23" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "1417:8:23", + "nodeType": "YulIdentifier", + "src": "1417:8:23" + } + ] + }, + { + "nativeSrc": "1477:30:23", + "nodeType": "YulAssignment", + "src": "1477:30:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1490:5:23", + "nodeType": "YulIdentifier", + "src": "1490:5:23" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "1501:4:23", + "nodeType": "YulIdentifier", + "src": "1501:4:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1497:3:23", + "nodeType": "YulIdentifier", + "src": "1497:3:23" + }, + "nativeSrc": "1497:9:23", + "nodeType": "YulFunctionCall", + "src": "1497:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1486:3:23", + "nodeType": "YulIdentifier", + "src": "1486:3:23" + }, + "nativeSrc": "1486:21:23", + "nodeType": "YulFunctionCall", + "src": "1486:21:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1477:5:23", + "nodeType": "YulIdentifier", + "src": "1477:5:23" + } + ] + }, + { + "nativeSrc": "1516:40:23", + "nodeType": "YulAssignment", + "src": "1516:40:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1529:5:23", + "nodeType": "YulIdentifier", + "src": "1529:5:23" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "1540:8:23", + "nodeType": "YulIdentifier", + "src": "1540:8:23" + }, + { + "name": "mask", + "nativeSrc": "1550:4:23", + "nodeType": "YulIdentifier", + "src": "1550:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1536:3:23", + "nodeType": "YulIdentifier", + "src": "1536:3:23" + }, + "nativeSrc": "1536:19:23", + "nodeType": "YulFunctionCall", + "src": "1536:19:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1526:2:23", + "nodeType": "YulIdentifier", + "src": "1526:2:23" + }, + "nativeSrc": "1526:30:23", + "nodeType": "YulFunctionCall", + "src": "1526:30:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1516:6:23", + "nodeType": "YulIdentifier", + "src": "1516:6:23" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "1169:393:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1206:5:23", + "nodeType": "YulTypedName", + "src": "1206:5:23", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "1213:10:23", + "nodeType": "YulTypedName", + "src": "1213:10:23", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "1225:8:23", + "nodeType": "YulTypedName", + "src": "1225:8:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "1238:6:23", + "nodeType": "YulTypedName", + "src": "1238:6:23", + "type": "" + } + ], + "src": "1169:393:23" + }, + { + "body": { + "nativeSrc": "1613:32:23", + "nodeType": "YulBlock", + "src": "1613:32:23", + "statements": [ + { + "nativeSrc": "1623:16:23", + "nodeType": "YulAssignment", + "src": "1623:16:23", + "value": { + "name": "value", + "nativeSrc": "1634:5:23", + "nodeType": "YulIdentifier", + "src": "1634:5:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1623:7:23", + "nodeType": "YulIdentifier", + "src": "1623:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "1568:77:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1595:5:23", + "nodeType": "YulTypedName", + "src": "1595:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1605:7:23", + "nodeType": "YulTypedName", + "src": "1605:7:23", + "type": "" + } + ], + "src": "1568:77:23" + }, + { + "body": { + "nativeSrc": "1683:28:23", + "nodeType": "YulBlock", + "src": "1683:28:23", + "statements": [ + { + "nativeSrc": "1693:12:23", + "nodeType": "YulAssignment", + "src": "1693:12:23", + "value": { + "name": "value", + "nativeSrc": "1700:5:23", + "nodeType": "YulIdentifier", + "src": "1700:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "1693:3:23", + "nodeType": "YulIdentifier", + "src": "1693:3:23" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "1651:60:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1669:5:23", + "nodeType": "YulTypedName", + "src": "1669:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "1679:3:23", + "nodeType": "YulTypedName", + "src": "1679:3:23", + "type": "" + } + ], + "src": "1651:60:23" + }, + { + "body": { + "nativeSrc": "1777:82:23", + "nodeType": "YulBlock", + "src": "1777:82:23", + "statements": [ + { + "nativeSrc": "1787:66:23", + "nodeType": "YulAssignment", + "src": "1787:66:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1845:5:23", + "nodeType": "YulIdentifier", + "src": "1845:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1827:17:23", + "nodeType": "YulIdentifier", + "src": "1827:17:23" + }, + "nativeSrc": "1827:24:23", + "nodeType": "YulFunctionCall", + "src": "1827:24:23" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "1818:8:23", + "nodeType": "YulIdentifier", + "src": "1818:8:23" + }, + "nativeSrc": "1818:34:23", + "nodeType": "YulFunctionCall", + "src": "1818:34:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1800:17:23", + "nodeType": "YulIdentifier", + "src": "1800:17:23" + }, + "nativeSrc": "1800:53:23", + "nodeType": "YulFunctionCall", + "src": "1800:53:23" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "1787:9:23", + "nodeType": "YulIdentifier", + "src": "1787:9:23" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "1717:142:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1757:5:23", + "nodeType": "YulTypedName", + "src": "1757:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "1767:9:23", + "nodeType": "YulTypedName", + "src": "1767:9:23", + "type": "" + } + ], + "src": "1717:142:23" + }, + { + "body": { + "nativeSrc": "1912:28:23", + "nodeType": "YulBlock", + "src": "1912:28:23", + "statements": [ + { + "nativeSrc": "1922:12:23", + "nodeType": "YulAssignment", + "src": "1922:12:23", + "value": { + "name": "value", + "nativeSrc": "1929:5:23", + "nodeType": "YulIdentifier", + "src": "1929:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "1922:3:23", + "nodeType": "YulIdentifier", + "src": "1922:3:23" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "1865:75:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1898:5:23", + "nodeType": "YulTypedName", + "src": "1898:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "1908:3:23", + "nodeType": "YulTypedName", + "src": "1908:3:23", + "type": "" + } + ], + "src": "1865:75:23" + }, + { + "body": { + "nativeSrc": "2022:193:23", + "nodeType": "YulBlock", + "src": "2022:193:23", + "statements": [ + { + "nativeSrc": "2032:63:23", + "nodeType": "YulVariableDeclaration", + "src": "2032:63:23", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "2087:7:23", + "nodeType": "YulIdentifier", + "src": "2087:7:23" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "2056:30:23", + "nodeType": "YulIdentifier", + "src": "2056:30:23" + }, + "nativeSrc": "2056:39:23", + "nodeType": "YulFunctionCall", + "src": "2056:39:23" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "2036:16:23", + "nodeType": "YulTypedName", + "src": "2036:16:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "2111:4:23", + "nodeType": "YulIdentifier", + "src": "2111:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "2151:4:23", + "nodeType": "YulIdentifier", + "src": "2151:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "2145:5:23", + "nodeType": "YulIdentifier", + "src": "2145:5:23" + }, + "nativeSrc": "2145:11:23", + "nodeType": "YulFunctionCall", + "src": "2145:11:23" + }, + { + "name": "offset", + "nativeSrc": "2158:6:23", + "nodeType": "YulIdentifier", + "src": "2158:6:23" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "2190:16:23", + "nodeType": "YulIdentifier", + "src": "2190:16:23" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "2166:23:23", + "nodeType": "YulIdentifier", + "src": "2166:23:23" + }, + "nativeSrc": "2166:41:23", + "nodeType": "YulFunctionCall", + "src": "2166:41:23" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "2117:27:23", + "nodeType": "YulIdentifier", + "src": "2117:27:23" + }, + "nativeSrc": "2117:91:23", + "nodeType": "YulFunctionCall", + "src": "2117:91:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "2104:6:23", + "nodeType": "YulIdentifier", + "src": "2104:6:23" + }, + "nativeSrc": "2104:105:23", + "nodeType": "YulFunctionCall", + "src": "2104:105:23" + }, + "nativeSrc": "2104:105:23", + "nodeType": "YulExpressionStatement", + "src": "2104:105:23" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "1946:269:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "1999:4:23", + "nodeType": "YulTypedName", + "src": "1999:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "2005:6:23", + "nodeType": "YulTypedName", + "src": "2005:6:23", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "2013:7:23", + "nodeType": "YulTypedName", + "src": "2013:7:23", + "type": "" + } + ], + "src": "1946:269:23" + }, + { + "body": { + "nativeSrc": "2270:24:23", + "nodeType": "YulBlock", + "src": "2270:24:23", + "statements": [ + { + "nativeSrc": "2280:8:23", + "nodeType": "YulAssignment", + "src": "2280:8:23", + "value": { + "kind": "number", + "nativeSrc": "2287:1:23", + "nodeType": "YulLiteral", + "src": "2287:1:23", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "2280:3:23", + "nodeType": "YulIdentifier", + "src": "2280:3:23" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "2221:73:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "2266:3:23", + "nodeType": "YulTypedName", + "src": "2266:3:23", + "type": "" + } + ], + "src": "2221:73:23" + }, + { + "body": { + "nativeSrc": "2353:136:23", + "nodeType": "YulBlock", + "src": "2353:136:23", + "statements": [ + { + "nativeSrc": "2363:46:23", + "nodeType": "YulVariableDeclaration", + "src": "2363:46:23", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "2377:30:23", + "nodeType": "YulIdentifier", + "src": "2377:30:23" + }, + "nativeSrc": "2377:32:23", + "nodeType": "YulFunctionCall", + "src": "2377:32:23" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "2367:6:23", + "nodeType": "YulTypedName", + "src": "2367:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "2462:4:23", + "nodeType": "YulIdentifier", + "src": "2462:4:23" + }, + { + "name": "offset", + "nativeSrc": "2468:6:23", + "nodeType": "YulIdentifier", + "src": "2468:6:23" + }, + { + "name": "zero_0", + "nativeSrc": "2476:6:23", + "nodeType": "YulIdentifier", + "src": "2476:6:23" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "2418:43:23", + "nodeType": "YulIdentifier", + "src": "2418:43:23" + }, + "nativeSrc": "2418:65:23", + "nodeType": "YulFunctionCall", + "src": "2418:65:23" + }, + "nativeSrc": "2418:65:23", + "nodeType": "YulExpressionStatement", + "src": "2418:65:23" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "2300:189:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "2339:4:23", + "nodeType": "YulTypedName", + "src": "2339:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "2345:6:23", + "nodeType": "YulTypedName", + "src": "2345:6:23", + "type": "" + } + ], + "src": "2300:189:23" + }, + { + "body": { + "nativeSrc": "2545:136:23", + "nodeType": "YulBlock", + "src": "2545:136:23", + "statements": [ + { + "body": { + "nativeSrc": "2612:63:23", + "nodeType": "YulBlock", + "src": "2612:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "2656:5:23", + "nodeType": "YulIdentifier", + "src": "2656:5:23" + }, + { + "kind": "number", + "nativeSrc": "2663:1:23", + "nodeType": "YulLiteral", + "src": "2663:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "2626:29:23", + "nodeType": "YulIdentifier", + "src": "2626:29:23" + }, + "nativeSrc": "2626:39:23", + "nodeType": "YulFunctionCall", + "src": "2626:39:23" + }, + "nativeSrc": "2626:39:23", + "nodeType": "YulExpressionStatement", + "src": "2626:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "2565:5:23", + "nodeType": "YulIdentifier", + "src": "2565:5:23" + }, + { + "name": "end", + "nativeSrc": "2572:3:23", + "nodeType": "YulIdentifier", + "src": "2572:3:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2562:2:23", + "nodeType": "YulIdentifier", + "src": "2562:2:23" + }, + "nativeSrc": "2562:14:23", + "nodeType": "YulFunctionCall", + "src": "2562:14:23" + }, + "nativeSrc": "2555:120:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2577:26:23", + "nodeType": "YulBlock", + "src": "2577:26:23", + "statements": [ + { + "nativeSrc": "2579:22:23", + "nodeType": "YulAssignment", + "src": "2579:22:23", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "2592:5:23", + "nodeType": "YulIdentifier", + "src": "2592:5:23" + }, + { + "kind": "number", + "nativeSrc": "2599:1:23", + "nodeType": "YulLiteral", + "src": "2599:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2588:3:23", + "nodeType": "YulIdentifier", + "src": "2588:3:23" + }, + "nativeSrc": "2588:13:23", + "nodeType": "YulFunctionCall", + "src": "2588:13:23" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "2579:5:23", + "nodeType": "YulIdentifier", + "src": "2579:5:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2559:2:23", + "nodeType": "YulBlock", + "src": "2559:2:23", + "statements": [] + }, + "src": "2555:120:23" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "2495:186:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "2533:5:23", + "nodeType": "YulTypedName", + "src": "2533:5:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2540:3:23", + "nodeType": "YulTypedName", + "src": "2540:3:23", + "type": "" + } + ], + "src": "2495:186:23" + }, + { + "body": { + "nativeSrc": "2766:464:23", + "nodeType": "YulBlock", + "src": "2766:464:23", + "statements": [ + { + "body": { + "nativeSrc": "2792:431:23", + "nodeType": "YulBlock", + "src": "2792:431:23", + "statements": [ + { + "nativeSrc": "2806:54:23", + "nodeType": "YulVariableDeclaration", + "src": "2806:54:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2854:5:23", + "nodeType": "YulIdentifier", + "src": "2854:5:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "2822:31:23", + "nodeType": "YulIdentifier", + "src": "2822:31:23" + }, + "nativeSrc": "2822:38:23", + "nodeType": "YulFunctionCall", + "src": "2822:38:23" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "2810:8:23", + "nodeType": "YulTypedName", + "src": "2810:8:23", + "type": "" + } + ] + }, + { + "nativeSrc": "2873:63:23", + "nodeType": "YulVariableDeclaration", + "src": "2873:63:23", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "2896:8:23", + "nodeType": "YulIdentifier", + "src": "2896:8:23" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "2924:10:23", + "nodeType": "YulIdentifier", + "src": "2924:10:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "2906:17:23", + "nodeType": "YulIdentifier", + "src": "2906:17:23" + }, + "nativeSrc": "2906:29:23", + "nodeType": "YulFunctionCall", + "src": "2906:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2892:3:23", + "nodeType": "YulIdentifier", + "src": "2892:3:23" + }, + "nativeSrc": "2892:44:23", + "nodeType": "YulFunctionCall", + "src": "2892:44:23" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "2877:11:23", + "nodeType": "YulTypedName", + "src": "2877:11:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3093:27:23", + "nodeType": "YulBlock", + "src": "3093:27:23", + "statements": [ + { + "nativeSrc": "3095:23:23", + "nodeType": "YulAssignment", + "src": "3095:23:23", + "value": { + "name": "dataArea", + "nativeSrc": "3110:8:23", + "nodeType": "YulIdentifier", + "src": "3110:8:23" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "3095:11:23", + "nodeType": "YulIdentifier", + "src": "3095:11:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "3077:10:23", + "nodeType": "YulIdentifier", + "src": "3077:10:23" + }, + { + "kind": "number", + "nativeSrc": "3089:2:23", + "nodeType": "YulLiteral", + "src": "3089:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3074:2:23", + "nodeType": "YulIdentifier", + "src": "3074:2:23" + }, + "nativeSrc": "3074:18:23", + "nodeType": "YulFunctionCall", + "src": "3074:18:23" + }, + "nativeSrc": "3071:49:23", + "nodeType": "YulIf", + "src": "3071:49:23" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "3162:11:23", + "nodeType": "YulIdentifier", + "src": "3162:11:23" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "3179:8:23", + "nodeType": "YulIdentifier", + "src": "3179:8:23" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "3207:3:23", + "nodeType": "YulIdentifier", + "src": "3207:3:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "3189:17:23", + "nodeType": "YulIdentifier", + "src": "3189:17:23" + }, + "nativeSrc": "3189:22:23", + "nodeType": "YulFunctionCall", + "src": "3189:22:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3175:3:23", + "nodeType": "YulIdentifier", + "src": "3175:3:23" + }, + "nativeSrc": "3175:37:23", + "nodeType": "YulFunctionCall", + "src": "3175:37:23" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "3133:28:23", + "nodeType": "YulIdentifier", + "src": "3133:28:23" + }, + "nativeSrc": "3133:80:23", + "nodeType": "YulFunctionCall", + "src": "3133:80:23" + }, + "nativeSrc": "3133:80:23", + "nodeType": "YulExpressionStatement", + "src": "3133:80:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "2783:3:23", + "nodeType": "YulIdentifier", + "src": "2783:3:23" + }, + { + "kind": "number", + "nativeSrc": "2788:2:23", + "nodeType": "YulLiteral", + "src": "2788:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2780:2:23", + "nodeType": "YulIdentifier", + "src": "2780:2:23" + }, + "nativeSrc": "2780:11:23", + "nodeType": "YulFunctionCall", + "src": "2780:11:23" + }, + "nativeSrc": "2777:446:23", + "nodeType": "YulIf", + "src": "2777:446:23" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "2687:543:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "2742:5:23", + "nodeType": "YulTypedName", + "src": "2742:5:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "2749:3:23", + "nodeType": "YulTypedName", + "src": "2749:3:23", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "2754:10:23", + "nodeType": "YulTypedName", + "src": "2754:10:23", + "type": "" + } + ], + "src": "2687:543:23" + }, + { + "body": { + "nativeSrc": "3299:54:23", + "nodeType": "YulBlock", + "src": "3299:54:23", + "statements": [ + { + "nativeSrc": "3309:37:23", + "nodeType": "YulAssignment", + "src": "3309:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "3334:4:23", + "nodeType": "YulIdentifier", + "src": "3334:4:23" + }, + { + "name": "value", + "nativeSrc": "3340:5:23", + "nodeType": "YulIdentifier", + "src": "3340:5:23" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "3330:3:23", + "nodeType": "YulIdentifier", + "src": "3330:3:23" + }, + "nativeSrc": "3330:16:23", + "nodeType": "YulFunctionCall", + "src": "3330:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "3309:8:23", + "nodeType": "YulIdentifier", + "src": "3309:8:23" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "3236:117:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "3274:4:23", + "nodeType": "YulTypedName", + "src": "3274:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "3280:5:23", + "nodeType": "YulTypedName", + "src": "3280:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "3290:8:23", + "nodeType": "YulTypedName", + "src": "3290:8:23", + "type": "" + } + ], + "src": "3236:117:23" + }, + { + "body": { + "nativeSrc": "3410:118:23", + "nodeType": "YulBlock", + "src": "3410:118:23", + "statements": [ + { + "nativeSrc": "3420:68:23", + "nodeType": "YulVariableDeclaration", + "src": "3420:68:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3469:1:23", + "nodeType": "YulLiteral", + "src": "3469:1:23", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "3472:5:23", + "nodeType": "YulIdentifier", + "src": "3472:5:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3465:3:23", + "nodeType": "YulIdentifier", + "src": "3465:3:23" + }, + "nativeSrc": "3465:13:23", + "nodeType": "YulFunctionCall", + "src": "3465:13:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3484:1:23", + "nodeType": "YulLiteral", + "src": "3484:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3480:3:23", + "nodeType": "YulIdentifier", + "src": "3480:3:23" + }, + "nativeSrc": "3480:6:23", + "nodeType": "YulFunctionCall", + "src": "3480:6:23" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "3436:28:23", + "nodeType": "YulIdentifier", + "src": "3436:28:23" + }, + "nativeSrc": "3436:51:23", + "nodeType": "YulFunctionCall", + "src": "3436:51:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3432:3:23", + "nodeType": "YulIdentifier", + "src": "3432:3:23" + }, + "nativeSrc": "3432:56:23", + "nodeType": "YulFunctionCall", + "src": "3432:56:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "3424:4:23", + "nodeType": "YulTypedName", + "src": "3424:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "3497:25:23", + "nodeType": "YulAssignment", + "src": "3497:25:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3511:4:23", + "nodeType": "YulIdentifier", + "src": "3511:4:23" + }, + { + "name": "mask", + "nativeSrc": "3517:4:23", + "nodeType": "YulIdentifier", + "src": "3517:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3507:3:23", + "nodeType": "YulIdentifier", + "src": "3507:3:23" + }, + "nativeSrc": "3507:15:23", + "nodeType": "YulFunctionCall", + "src": "3507:15:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3497:6:23", + "nodeType": "YulIdentifier", + "src": "3497:6:23" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "3359:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3387:4:23", + "nodeType": "YulTypedName", + "src": "3387:4:23", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "3393:5:23", + "nodeType": "YulTypedName", + "src": "3393:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "3403:6:23", + "nodeType": "YulTypedName", + "src": "3403:6:23", + "type": "" + } + ], + "src": "3359:169:23" + }, + { + "body": { + "nativeSrc": "3614:214:23", + "nodeType": "YulBlock", + "src": "3614:214:23", + "statements": [ + { + "nativeSrc": "3747:37:23", + "nodeType": "YulAssignment", + "src": "3747:37:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3774:4:23", + "nodeType": "YulIdentifier", + "src": "3774:4:23" + }, + { + "name": "len", + "nativeSrc": "3780:3:23", + "nodeType": "YulIdentifier", + "src": "3780:3:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "3755:18:23", + "nodeType": "YulIdentifier", + "src": "3755:18:23" + }, + "nativeSrc": "3755:29:23", + "nodeType": "YulFunctionCall", + "src": "3755:29:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3747:4:23", + "nodeType": "YulIdentifier", + "src": "3747:4:23" + } + ] + }, + { + "nativeSrc": "3793:29:23", + "nodeType": "YulAssignment", + "src": "3793:29:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3804:4:23", + "nodeType": "YulIdentifier", + "src": "3804:4:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3814:1:23", + "nodeType": "YulLiteral", + "src": "3814:1:23", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "3817:3:23", + "nodeType": "YulIdentifier", + "src": "3817:3:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3810:3:23", + "nodeType": "YulIdentifier", + "src": "3810:3:23" + }, + "nativeSrc": "3810:11:23", + "nodeType": "YulFunctionCall", + "src": "3810:11:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "3801:2:23", + "nodeType": "YulIdentifier", + "src": "3801:2:23" + }, + "nativeSrc": "3801:21:23", + "nodeType": "YulFunctionCall", + "src": "3801:21:23" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "3793:4:23", + "nodeType": "YulIdentifier", + "src": "3793:4:23" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "3533:295:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3595:4:23", + "nodeType": "YulTypedName", + "src": "3595:4:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "3601:3:23", + "nodeType": "YulTypedName", + "src": "3601:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "3609:4:23", + "nodeType": "YulTypedName", + "src": "3609:4:23", + "type": "" + } + ], + "src": "3533:295:23" + }, + { + "body": { + "nativeSrc": "3925:1303:23", + "nodeType": "YulBlock", + "src": "3925:1303:23", + "statements": [ + { + "nativeSrc": "3936:51:23", + "nodeType": "YulVariableDeclaration", + "src": "3936:51:23", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "3983:3:23", + "nodeType": "YulIdentifier", + "src": "3983:3:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3950:32:23", + "nodeType": "YulIdentifier", + "src": "3950:32:23" + }, + "nativeSrc": "3950:37:23", + "nodeType": "YulFunctionCall", + "src": "3950:37:23" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "3940:6:23", + "nodeType": "YulTypedName", + "src": "3940:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4072:22:23", + "nodeType": "YulBlock", + "src": "4072:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "4074:16:23", + "nodeType": "YulIdentifier", + "src": "4074:16:23" + }, + "nativeSrc": "4074:18:23", + "nodeType": "YulFunctionCall", + "src": "4074:18:23" + }, + "nativeSrc": "4074:18:23", + "nodeType": "YulExpressionStatement", + "src": "4074:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4044:6:23", + "nodeType": "YulIdentifier", + "src": "4044:6:23" + }, + { + "kind": "number", + "nativeSrc": "4052:18:23", + "nodeType": "YulLiteral", + "src": "4052:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4041:2:23", + "nodeType": "YulIdentifier", + "src": "4041:2:23" + }, + "nativeSrc": "4041:30:23", + "nodeType": "YulFunctionCall", + "src": "4041:30:23" + }, + "nativeSrc": "4038:56:23", + "nodeType": "YulIf", + "src": "4038:56:23" + }, + { + "nativeSrc": "4104:52:23", + "nodeType": "YulVariableDeclaration", + "src": "4104:52:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4150:4:23", + "nodeType": "YulIdentifier", + "src": "4150:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "4144:5:23", + "nodeType": "YulIdentifier", + "src": "4144:5:23" + }, + "nativeSrc": "4144:11:23", + "nodeType": "YulFunctionCall", + "src": "4144:11:23" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "4118:25:23", + "nodeType": "YulIdentifier", + "src": "4118:25:23" + }, + "nativeSrc": "4118:38:23", + "nodeType": "YulFunctionCall", + "src": "4118:38:23" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "4108:6:23", + "nodeType": "YulTypedName", + "src": "4108:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4249:4:23", + "nodeType": "YulIdentifier", + "src": "4249:4:23" + }, + { + "name": "oldLen", + "nativeSrc": "4255:6:23", + "nodeType": "YulIdentifier", + "src": "4255:6:23" + }, + { + "name": "newLen", + "nativeSrc": "4263:6:23", + "nodeType": "YulIdentifier", + "src": "4263:6:23" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "4203:45:23", + "nodeType": "YulIdentifier", + "src": "4203:45:23" + }, + "nativeSrc": "4203:67:23", + "nodeType": "YulFunctionCall", + "src": "4203:67:23" + }, + "nativeSrc": "4203:67:23", + "nodeType": "YulExpressionStatement", + "src": "4203:67:23" + }, + { + "nativeSrc": "4280:18:23", + "nodeType": "YulVariableDeclaration", + "src": "4280:18:23", + "value": { + "kind": "number", + "nativeSrc": "4297:1:23", + "nodeType": "YulLiteral", + "src": "4297:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "4284:9:23", + "nodeType": "YulTypedName", + "src": "4284:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4308:17:23", + "nodeType": "YulAssignment", + "src": "4308:17:23", + "value": { + "kind": "number", + "nativeSrc": "4321:4:23", + "nodeType": "YulLiteral", + "src": "4321:4:23", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "4308:9:23", + "nodeType": "YulIdentifier", + "src": "4308:9:23" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "4372:611:23", + "nodeType": "YulBlock", + "src": "4372:611:23", + "statements": [ + { + "nativeSrc": "4386:37:23", + "nodeType": "YulVariableDeclaration", + "src": "4386:37:23", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4405:6:23", + "nodeType": "YulIdentifier", + "src": "4405:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4417:4:23", + "nodeType": "YulLiteral", + "src": "4417:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4413:3:23", + "nodeType": "YulIdentifier", + "src": "4413:3:23" + }, + "nativeSrc": "4413:9:23", + "nodeType": "YulFunctionCall", + "src": "4413:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4401:3:23", + "nodeType": "YulIdentifier", + "src": "4401:3:23" + }, + "nativeSrc": "4401:22:23", + "nodeType": "YulFunctionCall", + "src": "4401:22:23" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "4390:7:23", + "nodeType": "YulTypedName", + "src": "4390:7:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4437:51:23", + "nodeType": "YulVariableDeclaration", + "src": "4437:51:23", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4483:4:23", + "nodeType": "YulIdentifier", + "src": "4483:4:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "4451:31:23", + "nodeType": "YulIdentifier", + "src": "4451:31:23" + }, + "nativeSrc": "4451:37:23", + "nodeType": "YulFunctionCall", + "src": "4451:37:23" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "4441:6:23", + "nodeType": "YulTypedName", + "src": "4441:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4501:10:23", + "nodeType": "YulVariableDeclaration", + "src": "4501:10:23", + "value": { + "kind": "number", + "nativeSrc": "4510:1:23", + "nodeType": "YulLiteral", + "src": "4510:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "4505:1:23", + "nodeType": "YulTypedName", + "src": "4505:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4569:163:23", + "nodeType": "YulBlock", + "src": "4569:163:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4594:6:23", + "nodeType": "YulIdentifier", + "src": "4594:6:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4612:3:23", + "nodeType": "YulIdentifier", + "src": "4612:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "4617:9:23", + "nodeType": "YulIdentifier", + "src": "4617:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4608:3:23", + "nodeType": "YulIdentifier", + "src": "4608:3:23" + }, + "nativeSrc": "4608:19:23", + "nodeType": "YulFunctionCall", + "src": "4608:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4602:5:23", + "nodeType": "YulIdentifier", + "src": "4602:5:23" + }, + "nativeSrc": "4602:26:23", + "nodeType": "YulFunctionCall", + "src": "4602:26:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4587:6:23", + "nodeType": "YulIdentifier", + "src": "4587:6:23" + }, + "nativeSrc": "4587:42:23", + "nodeType": "YulFunctionCall", + "src": "4587:42:23" + }, + "nativeSrc": "4587:42:23", + "nodeType": "YulExpressionStatement", + "src": "4587:42:23" + }, + { + "nativeSrc": "4646:24:23", + "nodeType": "YulAssignment", + "src": "4646:24:23", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4660:6:23", + "nodeType": "YulIdentifier", + "src": "4660:6:23" + }, + { + "kind": "number", + "nativeSrc": "4668:1:23", + "nodeType": "YulLiteral", + "src": "4668:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4656:3:23", + "nodeType": "YulIdentifier", + "src": "4656:3:23" + }, + "nativeSrc": "4656:14:23", + "nodeType": "YulFunctionCall", + "src": "4656:14:23" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "4646:6:23", + "nodeType": "YulIdentifier", + "src": "4646:6:23" + } + ] + }, + { + "nativeSrc": "4687:31:23", + "nodeType": "YulAssignment", + "src": "4687:31:23", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "4704:9:23", + "nodeType": "YulIdentifier", + "src": "4704:9:23" + }, + { + "kind": "number", + "nativeSrc": "4715:2:23", + "nodeType": "YulLiteral", + "src": "4715:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4700:3:23", + "nodeType": "YulIdentifier", + "src": "4700:3:23" + }, + "nativeSrc": "4700:18:23", + "nodeType": "YulFunctionCall", + "src": "4700:18:23" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "4687:9:23", + "nodeType": "YulIdentifier", + "src": "4687:9:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4535:1:23", + "nodeType": "YulIdentifier", + "src": "4535:1:23" + }, + { + "name": "loopEnd", + "nativeSrc": "4538:7:23", + "nodeType": "YulIdentifier", + "src": "4538:7:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4532:2:23", + "nodeType": "YulIdentifier", + "src": "4532:2:23" + }, + "nativeSrc": "4532:14:23", + "nodeType": "YulFunctionCall", + "src": "4532:14:23" + }, + "nativeSrc": "4524:208:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "4547:21:23", + "nodeType": "YulBlock", + "src": "4547:21:23", + "statements": [ + { + "nativeSrc": "4549:17:23", + "nodeType": "YulAssignment", + "src": "4549:17:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4558:1:23", + "nodeType": "YulIdentifier", + "src": "4558:1:23" + }, + { + "kind": "number", + "nativeSrc": "4561:4:23", + "nodeType": "YulLiteral", + "src": "4561:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4554:3:23", + "nodeType": "YulIdentifier", + "src": "4554:3:23" + }, + "nativeSrc": "4554:12:23", + "nodeType": "YulFunctionCall", + "src": "4554:12:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "4549:1:23", + "nodeType": "YulIdentifier", + "src": "4549:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "4528:3:23", + "nodeType": "YulBlock", + "src": "4528:3:23", + "statements": [] + }, + "src": "4524:208:23" + }, + { + "body": { + "nativeSrc": "4768:156:23", + "nodeType": "YulBlock", + "src": "4768:156:23", + "statements": [ + { + "nativeSrc": "4786:43:23", + "nodeType": "YulVariableDeclaration", + "src": "4786:43:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4813:3:23", + "nodeType": "YulIdentifier", + "src": "4813:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "4818:9:23", + "nodeType": "YulIdentifier", + "src": "4818:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4809:3:23", + "nodeType": "YulIdentifier", + "src": "4809:3:23" + }, + "nativeSrc": "4809:19:23", + "nodeType": "YulFunctionCall", + "src": "4809:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4803:5:23", + "nodeType": "YulIdentifier", + "src": "4803:5:23" + }, + "nativeSrc": "4803:26:23", + "nodeType": "YulFunctionCall", + "src": "4803:26:23" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "4790:9:23", + "nodeType": "YulTypedName", + "src": "4790:9:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4853:6:23", + "nodeType": "YulIdentifier", + "src": "4853:6:23" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "4880:9:23", + "nodeType": "YulIdentifier", + "src": "4880:9:23" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4895:6:23", + "nodeType": "YulIdentifier", + "src": "4895:6:23" + }, + { + "kind": "number", + "nativeSrc": "4903:4:23", + "nodeType": "YulLiteral", + "src": "4903:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4891:3:23", + "nodeType": "YulIdentifier", + "src": "4891:3:23" + }, + "nativeSrc": "4891:17:23", + "nodeType": "YulFunctionCall", + "src": "4891:17:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "4861:18:23", + "nodeType": "YulIdentifier", + "src": "4861:18:23" + }, + "nativeSrc": "4861:48:23", + "nodeType": "YulFunctionCall", + "src": "4861:48:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4846:6:23", + "nodeType": "YulIdentifier", + "src": "4846:6:23" + }, + "nativeSrc": "4846:64:23", + "nodeType": "YulFunctionCall", + "src": "4846:64:23" + }, + "nativeSrc": "4846:64:23", + "nodeType": "YulExpressionStatement", + "src": "4846:64:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "4751:7:23", + "nodeType": "YulIdentifier", + "src": "4751:7:23" + }, + { + "name": "newLen", + "nativeSrc": "4760:6:23", + "nodeType": "YulIdentifier", + "src": "4760:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4748:2:23", + "nodeType": "YulIdentifier", + "src": "4748:2:23" + }, + "nativeSrc": "4748:19:23", + "nodeType": "YulFunctionCall", + "src": "4748:19:23" + }, + "nativeSrc": "4745:179:23", + "nodeType": "YulIf", + "src": "4745:179:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4944:4:23", + "nodeType": "YulIdentifier", + "src": "4944:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4958:6:23", + "nodeType": "YulIdentifier", + "src": "4958:6:23" + }, + { + "kind": "number", + "nativeSrc": "4966:1:23", + "nodeType": "YulLiteral", + "src": "4966:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4954:3:23", + "nodeType": "YulIdentifier", + "src": "4954:3:23" + }, + "nativeSrc": "4954:14:23", + "nodeType": "YulFunctionCall", + "src": "4954:14:23" + }, + { + "kind": "number", + "nativeSrc": "4970:1:23", + "nodeType": "YulLiteral", + "src": "4970:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4950:3:23", + "nodeType": "YulIdentifier", + "src": "4950:3:23" + }, + "nativeSrc": "4950:22:23", + "nodeType": "YulFunctionCall", + "src": "4950:22:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4937:6:23", + "nodeType": "YulIdentifier", + "src": "4937:6:23" + }, + "nativeSrc": "4937:36:23", + "nodeType": "YulFunctionCall", + "src": "4937:36:23" + }, + "nativeSrc": "4937:36:23", + "nodeType": "YulExpressionStatement", + "src": "4937:36:23" + } + ] + }, + "nativeSrc": "4365:618:23", + "nodeType": "YulCase", + "src": "4365:618:23", + "value": { + "kind": "number", + "nativeSrc": "4370:1:23", + "nodeType": "YulLiteral", + "src": "4370:1:23", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "5000:222:23", + "nodeType": "YulBlock", + "src": "5000:222:23", + "statements": [ + { + "nativeSrc": "5014:14:23", + "nodeType": "YulVariableDeclaration", + "src": "5014:14:23", + "value": { + "kind": "number", + "nativeSrc": "5027:1:23", + "nodeType": "YulLiteral", + "src": "5027:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5018:5:23", + "nodeType": "YulTypedName", + "src": "5018:5:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5051:67:23", + "nodeType": "YulBlock", + "src": "5051:67:23", + "statements": [ + { + "nativeSrc": "5069:35:23", + "nodeType": "YulAssignment", + "src": "5069:35:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5088:3:23", + "nodeType": "YulIdentifier", + "src": "5088:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "5093:9:23", + "nodeType": "YulIdentifier", + "src": "5093:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5084:3:23", + "nodeType": "YulIdentifier", + "src": "5084:3:23" + }, + "nativeSrc": "5084:19:23", + "nodeType": "YulFunctionCall", + "src": "5084:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5078:5:23", + "nodeType": "YulIdentifier", + "src": "5078:5:23" + }, + "nativeSrc": "5078:26:23", + "nodeType": "YulFunctionCall", + "src": "5078:26:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5069:5:23", + "nodeType": "YulIdentifier", + "src": "5069:5:23" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "5044:6:23", + "nodeType": "YulIdentifier", + "src": "5044:6:23" + }, + "nativeSrc": "5041:77:23", + "nodeType": "YulIf", + "src": "5041:77:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5138:4:23", + "nodeType": "YulIdentifier", + "src": "5138:4:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5197:5:23", + "nodeType": "YulIdentifier", + "src": "5197:5:23" + }, + { + "name": "newLen", + "nativeSrc": "5204:6:23", + "nodeType": "YulIdentifier", + "src": "5204:6:23" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "5144:52:23", + "nodeType": "YulIdentifier", + "src": "5144:52:23" + }, + "nativeSrc": "5144:67:23", + "nodeType": "YulFunctionCall", + "src": "5144:67:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5131:6:23", + "nodeType": "YulIdentifier", + "src": "5131:6:23" + }, + "nativeSrc": "5131:81:23", + "nodeType": "YulFunctionCall", + "src": "5131:81:23" + }, + "nativeSrc": "5131:81:23", + "nodeType": "YulExpressionStatement", + "src": "5131:81:23" + } + ] + }, + "nativeSrc": "4992:230:23", + "nodeType": "YulCase", + "src": "4992:230:23", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4345:6:23", + "nodeType": "YulIdentifier", + "src": "4345:6:23" + }, + { + "kind": "number", + "nativeSrc": "4353:2:23", + "nodeType": "YulLiteral", + "src": "4353:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4342:2:23", + "nodeType": "YulIdentifier", + "src": "4342:2:23" + }, + "nativeSrc": "4342:14:23", + "nodeType": "YulFunctionCall", + "src": "4342:14:23" + }, + "nativeSrc": "4335:887:23", + "nodeType": "YulSwitch", + "src": "4335:887:23" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "3833:1395:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "3914:4:23", + "nodeType": "YulTypedName", + "src": "3914:4:23", + "type": "" + }, + { + "name": "src", + "nativeSrc": "3920:3:23", + "nodeType": "YulTypedName", + "src": "3920:3:23", + "type": "" + } + ], + "src": "3833:1395:23" + }, + { + "body": { + "nativeSrc": "5279:81:23", + "nodeType": "YulBlock", + "src": "5279:81:23", + "statements": [ + { + "nativeSrc": "5289:65:23", + "nodeType": "YulAssignment", + "src": "5289:65:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5304:5:23", + "nodeType": "YulIdentifier", + "src": "5304:5:23" + }, + { + "kind": "number", + "nativeSrc": "5311:42:23", + "nodeType": "YulLiteral", + "src": "5311:42:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5300:3:23", + "nodeType": "YulIdentifier", + "src": "5300:3:23" + }, + "nativeSrc": "5300:54:23", + "nodeType": "YulFunctionCall", + "src": "5300:54:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5289:7:23", + "nodeType": "YulIdentifier", + "src": "5289:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "5234:126:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5261:5:23", + "nodeType": "YulTypedName", + "src": "5261:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5271:7:23", + "nodeType": "YulTypedName", + "src": "5271:7:23", + "type": "" + } + ], + "src": "5234:126:23" + }, + { + "body": { + "nativeSrc": "5411:51:23", + "nodeType": "YulBlock", + "src": "5411:51:23", + "statements": [ + { + "nativeSrc": "5421:35:23", + "nodeType": "YulAssignment", + "src": "5421:35:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5450:5:23", + "nodeType": "YulIdentifier", + "src": "5450:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "5432:17:23", + "nodeType": "YulIdentifier", + "src": "5432:17:23" + }, + "nativeSrc": "5432:24:23", + "nodeType": "YulFunctionCall", + "src": "5432:24:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5421:7:23", + "nodeType": "YulIdentifier", + "src": "5421:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "5366:96:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5393:5:23", + "nodeType": "YulTypedName", + "src": "5393:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5403:7:23", + "nodeType": "YulTypedName", + "src": "5403:7:23", + "type": "" + } + ], + "src": "5366:96:23" + }, + { + "body": { + "nativeSrc": "5533:53:23", + "nodeType": "YulBlock", + "src": "5533:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5550:3:23", + "nodeType": "YulIdentifier", + "src": "5550:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5573:5:23", + "nodeType": "YulIdentifier", + "src": "5573:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "5555:17:23", + "nodeType": "YulIdentifier", + "src": "5555:17:23" + }, + "nativeSrc": "5555:24:23", + "nodeType": "YulFunctionCall", + "src": "5555:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5543:6:23", + "nodeType": "YulIdentifier", + "src": "5543:6:23" + }, + "nativeSrc": "5543:37:23", + "nodeType": "YulFunctionCall", + "src": "5543:37:23" + }, + "nativeSrc": "5543:37:23", + "nodeType": "YulExpressionStatement", + "src": "5543:37:23" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5468:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5521:5:23", + "nodeType": "YulTypedName", + "src": "5521:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5528:3:23", + "nodeType": "YulTypedName", + "src": "5528:3:23", + "type": "" + } + ], + "src": "5468:118:23" + }, + { + "body": { + "nativeSrc": "5690:124:23", + "nodeType": "YulBlock", + "src": "5690:124:23", + "statements": [ + { + "nativeSrc": "5700:26:23", + "nodeType": "YulAssignment", + "src": "5700:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5712:9:23", + "nodeType": "YulIdentifier", + "src": "5712:9:23" + }, + { + "kind": "number", + "nativeSrc": "5723:2:23", + "nodeType": "YulLiteral", + "src": "5723:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5708:3:23", + "nodeType": "YulIdentifier", + "src": "5708:3:23" + }, + "nativeSrc": "5708:18:23", + "nodeType": "YulFunctionCall", + "src": "5708:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5700:4:23", + "nodeType": "YulIdentifier", + "src": "5700:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5780:6:23", + "nodeType": "YulIdentifier", + "src": "5780:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5793:9:23", + "nodeType": "YulIdentifier", + "src": "5793:9:23" + }, + { + "kind": "number", + "nativeSrc": "5804:1:23", + "nodeType": "YulLiteral", + "src": "5804:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5789:3:23", + "nodeType": "YulIdentifier", + "src": "5789:3:23" + }, + "nativeSrc": "5789:17:23", + "nodeType": "YulFunctionCall", + "src": "5789:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5736:43:23", + "nodeType": "YulIdentifier", + "src": "5736:43:23" + }, + "nativeSrc": "5736:71:23", + "nodeType": "YulFunctionCall", + "src": "5736:71:23" + }, + "nativeSrc": "5736:71:23", + "nodeType": "YulExpressionStatement", + "src": "5736:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "5592:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5662:9:23", + "nodeType": "YulTypedName", + "src": "5662:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5674:6:23", + "nodeType": "YulTypedName", + "src": "5674:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5685:4:23", + "nodeType": "YulTypedName", + "src": "5685:4:23", + "type": "" + } + ], + "src": "5592:222:23" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n 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}\n", + "id": 23, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040526000600755655af3107a400060085560016009556040518060600160405280603581526020016200359060359139600a9081620000429190620004b1565b503480156200005057600080fd5b50336040518060400160405280600981526020017f43617665506172747900000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f43505900000000000000000000000000000000000000000000000000000000008152508160009081620000cf9190620004b1565b508060019081620000e19190620004b1565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001595760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001509190620005dd565b60405180910390fd5b6200016a816200017160201b60201c565b50620005fa565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002b957607f821691505b602082108103620002cf57620002ce62000271565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002fa565b620003458683620002fa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003926200038c62000386846200035d565b62000367565b6200035d565b9050919050565b6000819050919050565b620003ae8362000371565b620003c6620003bd8262000399565b84845462000307565b825550505050565b600090565b620003dd620003ce565b620003ea818484620003a3565b505050565b5b81811015620004125762000406600082620003d3565b600181019050620003f0565b5050565b601f82111562000461576200042b81620002d5565b6200043684620002ea565b8101602085101562000446578190505b6200045e6200045585620002ea565b830182620003ef565b50505b505050565b600082821c905092915050565b6000620004866000198460080262000466565b1980831691505092915050565b6000620004a1838362000473565b9150826002028217905092915050565b620004bc8262000237565b67ffffffffffffffff811115620004d857620004d762000242565b5b620004e48254620002a0565b620004f182828562000416565b600060209050601f83116001811462000529576000841562000514578287015190505b62000520858262000493565b86555062000590565b601f1984166200053986620002d5565b60005b8281101562000563578489015182556001820191506020850194506020810190506200053c565b868310156200058357848901516200057f601f89168262000473565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005c58262000598565b9050919050565b620005d781620005b8565b82525050565b6000602082019050620005f46000830184620005cc565b92915050565b612f86806200060a6000396000f3fe6080604052600436106101815760003560e01c806370a08231116100d1578063a22cb4651161008a578063ddd71ede11610064578063ddd71ede1461053d578063e985e9c514610568578063f0293fd3146105a5578063f2fde38b146105e257610181565b8063a22cb465146104ae578063b88d4fde146104d7578063c87b56dd1461050057610181565b806370a08231146103b0578063715018a6146103ed57806388662de9146104045780638da5cb5b1461042f578063918b5be11461045a57806395d89b411461048357610181565b806323b872dd1161013e578063453c231011610118578063453c2310146102f2578063505168081461031d5780636352211e146103485780636817c76c1461038557610181565b806323b872dd1461028957806324600fc3146102b257806342842e0e146102c957610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631f21bfbf146102545780632004ffd91461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a8919061213e565b61060b565b6040516101ba9190612186565b60405180910390f35b3480156101cf57600080fd5b506101d86106ed565b6040516101e59190612231565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612289565b61077f565b60405161022291906122f7565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061233e565b61079b565b005b34801561026057600080fd5b506102696107b1565b604051610276919061238d565b60405180910390f35b6102876107b7565b005b34801561029557600080fd5b506102b060048036038101906102ab91906123a8565b6108e1565b005b3480156102be57600080fd5b506102c76109e3565b005b3480156102d557600080fd5b506102f060048036038101906102eb91906123a8565b610aa1565b005b3480156102fe57600080fd5b50610307610ac1565b604051610314919061238d565b60405180910390f35b34801561032957600080fd5b50610332610ac7565b60405161033f919061238d565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612289565b610b0e565b60405161037c91906122f7565b60405180910390f35b34801561039157600080fd5b5061039a610b20565b6040516103a7919061238d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906123fb565b610b26565b6040516103e4919061238d565b60405180910390f35b3480156103f957600080fd5b50610402610be0565b005b34801561041057600080fd5b50610419610bf4565b6040516104269190612231565b60405180910390f35b34801561043b57600080fd5b50610444610c82565b60405161045191906122f7565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c919061255d565b610cac565b005b34801561048f57600080fd5b50610498610d0f565b6040516104a59190612231565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d091906125d2565b610da1565b005b3480156104e357600080fd5b506104fe60048036038101906104f991906126b3565b610db7565b005b34801561050c57600080fd5b5061052760048036038101906105229190612289565b610dd4565b6040516105349190612231565b60405180910390f35b34801561054957600080fd5b50610552610e3d565b60405161055f9190612231565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190612736565b610ed7565b60405161059c9190612186565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c791906123fb565b610f6b565b6040516105d9919061238d565b60405180910390f35b3480156105ee57600080fd5b50610609600480360381019061060491906123fb565b610f83565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106d657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e657506106e582611009565b5b9050919050565b6060600080546106fc906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610728906127a5565b80156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b5050505050905090565b600061078a82611073565b50610794826110fb565b9050919050565b6107ad82826107a8611138565b611140565b5050565b60075481565b34600854146107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f290612822565b60405180910390fd5b600954600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561087f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108769061288e565b60405180910390fd5b6001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108cf91906128dd565b925050819055506108df33611152565b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109535760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161094a91906122f7565b60405180910390fd5b60006109678383610962611138565b61117f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016109d493929190612911565b60405180910390fd5b50505050565b6109eb611399565b60006109f5610c82565b73ffffffffffffffffffffffffffffffffffffffff1647604051610a1890612979565b60006040518083038185875af1925050503d8060008114610a55576040519150601f19603f3d011682016040523d82523d6000602084013e610a5a565b606091505b5050905080610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a95906129da565b60405180910390fd5b50565b610abc83838360405180602001604052806000815250610db7565b505050565b60095481565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000610b1982611073565b9050919050565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b995760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b9091906122f7565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be8611399565b610bf26000611420565b565b600a8054610c01906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2d906127a5565b8015610c7a5780601f10610c4f57610100808354040283529160200191610c7a565b820191906000526020600020905b815481529060010190602001808311610c5d57829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb4611399565b610cbd816114e6565b610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390612a6c565b60405180910390fd5b80600a9081610d0b9190612c38565b5050565b606060018054610d1e906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4a906127a5565b8015610d975780601f10610d6c57610100808354040283529160200191610d97565b820191906000526020600020905b815481529060010190602001808311610d7a57829003601f168201915b5050505050905090565b610db3610dac611138565b838361163f565b5050565b610dc28484846108e1565b610dce848484846117ae565b50505050565b6060610ddf82611073565b506000610dea611965565b90506000815111610e0a5760405180602001604052806000815250610e35565b80610e14846119f7565b604051602001610e25929190612d46565b6040516020818303038152906040525b915050919050565b6060610e47611399565b600a8054610e54906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610e80906127a5565b8015610ecd5780601f10610ea257610100808354040283529160200191610ecd565b820191906000526020600020905b815481529060010190602001808311610eb057829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b6020528060005260406000206000915090505481565b610f8b611399565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ffd5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ff491906122f7565b60405180910390fd5b61100681611420565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008061107f83611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f257826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016110e9919061238d565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61114d8383836001611b02565b505050565b600060075490506007600081548092919061116c90612d6a565b919050555061117b8282611cc7565b5050565b60008061118b84611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111cd576111cc818486611ce5565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461125e5761120f600085600080611b02565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146112e1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6113a1611138565b73ffffffffffffffffffffffffffffffffffffffff166113bf610c82565b73ffffffffffffffffffffffffffffffffffffffff161461141e576113e2611138565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161141591906122f7565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060006040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250905080518251101561153b5760009250505061163a565b60005b8151835161154c9190612db2565b81116116325760006001905060005b835181101561160a5783818151811061157757611576612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168582856115b191906128dd565b815181106115c2576115c1612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115fd576000915061160a565b808060010191505061155b565b50801561161e57600194505050505061163a565b50808061162a90612d6a565b91505061153e565b506000925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b057816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116a791906122f7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117a19190612186565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561195f578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117f2611138565b8685856040518563ffffffff1660e01b81526004016118149493929190612e6a565b6020604051808303816000875af192505050801561185057506040513d601f19601f8201168201806040525081019061184d9190612ecb565b60015b6118d4573d8060008114611880576040519150601f19603f3d011682016040523d82523d6000602084013e611885565b606091505b5060008151036118cc57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118c391906122f7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461195d57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161195491906122f7565b60405180910390fd5b505b50505050565b6060600a8054611974906127a5565b80601f01602080910402602001604051908101604052809291908181526020018280546119a0906127a5565b80156119ed5780601f106119c2576101008083540402835291602001916119ed565b820191906000526020600020905b8154815290600101906020018083116119d057829003601f168201915b5050505050905090565b606060006001611a0684611da9565b01905060008167ffffffffffffffff811115611a2557611a24612432565b5b6040519080825280601f01601f191660200182016040528015611a575781602001600182028036833780820191505090505b509050600082602001820190505b600115611aba578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611aae57611aad612ef8565b5b04945060008503611a65575b819350505050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b3b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c6f576000611b4b84611073565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc95750611bc78184610ed7565b155b15611c0b57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c0291906122f7565b60405180910390fd5b8115611c6d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ce1828260405180602001604052806000815250611efc565b5050565b611cf0838383611f18565b611da457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6557806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d5c919061238d565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d9b929190612f27565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e07577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611dfd57611dfc612ef8565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e44576d04ee2d6d415b85acef81000000008381611e3a57611e39612ef8565b5b0492506020810190505b662386f26fc100008310611e7357662386f26fc100008381611e6957611e68612ef8565b5b0492506010810190505b6305f5e1008310611e9c576305f5e1008381611e9257611e91612ef8565b5b0492506008810190505b6127108310611ec1576127108381611eb757611eb6612ef8565b5b0492506004810190505b60648310611ee45760648381611eda57611ed9612ef8565b5b0492506002810190505b600a8310611ef3576001810190505b80915050919050565b611f068383611fd9565b611f1360008484846117ae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fd057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f915750611f908484610ed7565b5b80611fcf57508273ffffffffffffffffffffffffffffffffffffffff16611fb7836110fb565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361204b5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161204291906122f7565b60405180910390fd5b60006120598383600061117f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120cd5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016120c491906122f7565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61211b816120e6565b811461212657600080fd5b50565b60008135905061213881612112565b92915050565b600060208284031215612154576121536120dc565b5b600061216284828501612129565b91505092915050565b60008115159050919050565b6121808161216b565b82525050565b600060208201905061219b6000830184612177565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121db5780820151818401526020810190506121c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612203826121a1565b61220d81856121ac565b935061221d8185602086016121bd565b612226816121e7565b840191505092915050565b6000602082019050818103600083015261224b81846121f8565b905092915050565b6000819050919050565b61226681612253565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e6120dc565b5b60006122ad84828501612274565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122e1826122b6565b9050919050565b6122f1816122d6565b82525050565b600060208201905061230c60008301846122e8565b92915050565b61231b816122d6565b811461232657600080fd5b50565b60008135905061233881612312565b92915050565b60008060408385031215612355576123546120dc565b5b600061236385828601612329565b925050602061237485828601612274565b9150509250929050565b61238781612253565b82525050565b60006020820190506123a2600083018461237e565b92915050565b6000806000606084860312156123c1576123c06120dc565b5b60006123cf86828701612329565b93505060206123e086828701612329565b92505060406123f186828701612274565b9150509250925092565b600060208284031215612411576124106120dc565b5b600061241f84828501612329565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61246a826121e7565b810181811067ffffffffffffffff8211171561248957612488612432565b5b80604052505050565b600061249c6120d2565b90506124a88282612461565b919050565b600067ffffffffffffffff8211156124c8576124c7612432565b5b6124d1826121e7565b9050602081019050919050565b82818337600083830152505050565b60006125006124fb846124ad565b612492565b90508281526020810184848401111561251c5761251b61242d565b5b6125278482856124de565b509392505050565b600082601f83011261254457612543612428565b5b81356125548482602086016124ed565b91505092915050565b600060208284031215612573576125726120dc565b5b600082013567ffffffffffffffff811115612591576125906120e1565b5b61259d8482850161252f565b91505092915050565b6125af8161216b565b81146125ba57600080fd5b50565b6000813590506125cc816125a6565b92915050565b600080604083850312156125e9576125e86120dc565b5b60006125f785828601612329565b9250506020612608858286016125bd565b9150509250929050565b600067ffffffffffffffff82111561262d5761262c612432565b5b612636826121e7565b9050602081019050919050565b600061265661265184612612565b612492565b9050828152602081018484840111156126725761267161242d565b5b61267d8482856124de565b509392505050565b600082601f83011261269a57612699612428565b5b81356126aa848260208601612643565b91505092915050565b600080600080608085870312156126cd576126cc6120dc565b5b60006126db87828801612329565b94505060206126ec87828801612329565b93505060406126fd87828801612274565b925050606085013567ffffffffffffffff81111561271e5761271d6120e1565b5b61272a87828801612685565b91505092959194509250565b6000806040838503121561274d5761274c6120dc565b5b600061275b85828601612329565b925050602061276c85828601612329565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127bd57607f821691505b6020821081036127d0576127cf612776565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061280c601d836121ac565b9150612817826127d6565b602082019050919050565b6000602082019050818103600083015261283b816127ff565b9050919050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b60006128786019836121ac565b915061288382612842565b602082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e882612253565b91506128f383612253565b925082820190508082111561290b5761290a6128ae565b5b92915050565b600060608201905061292660008301866122e8565b612933602083018561237e565b61294060408301846122e8565b949350505050565b600081905092915050565b50565b6000612963600083612948565b915061296e82612953565b600082019050919050565b600061298482612956565b9150819050919050565b7f7769746864726177616c206661696c6564000000000000000000000000000000600082015250565b60006129c46011836121ac565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f496e76616c6964206173736574206d657461646174613a206d75737420696e6360008201527f6c7564652027697066733a2f2f27000000000000000000000000000000000000602082015250565b6000612a56602e836121ac565b9150612a61826129fa565b604082019050919050565b60006020820190508181036000830152612a8581612a49565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ab1565b612af88683612ab1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612b35612b30612b2b84612253565b612b10565b612253565b9050919050565b6000819050919050565b612b4f83612b1a565b612b63612b5b82612b3c565b848454612abe565b825550505050565b600090565b612b78612b6b565b612b83818484612b46565b505050565b5b81811015612ba757612b9c600082612b70565b600181019050612b89565b5050565b601f821115612bec57612bbd81612a8c565b612bc684612aa1565b81016020851015612bd5578190505b612be9612be185612aa1565b830182612b88565b50505b505050565b600082821c905092915050565b6000612c0f60001984600802612bf1565b1980831691505092915050565b6000612c288383612bfe565b9150826002028217905092915050565b612c41826121a1565b67ffffffffffffffff811115612c5a57612c59612432565b5b612c6482546127a5565b612c6f828285612bab565b600060209050601f831160018114612ca25760008415612c90578287015190505b612c9a8582612c1c565b865550612d02565b601f198416612cb086612a8c565b60005b82811015612cd857848901518255600182019150602085019450602081019050612cb3565b86831015612cf55784890151612cf1601f891682612bfe565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000612d20826121a1565b612d2a8185612d0a565b9350612d3a8185602086016121bd565b80840191505092915050565b6000612d528285612d15565b9150612d5e8284612d15565b91508190509392505050565b6000612d7582612253565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612da757612da66128ae565b5b600182019050919050565b6000612dbd82612253565b9150612dc883612253565b9250828203905081811115612de057612ddf6128ae565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612e3c82612e15565b612e468185612e20565b9350612e568185602086016121bd565b612e5f816121e7565b840191505092915050565b6000608082019050612e7f60008301876122e8565b612e8c60208301866122e8565b612e99604083018561237e565b8181036060830152612eab8184612e31565b905095945050505050565b600081519050612ec581612112565b92915050565b600060208284031215612ee157612ee06120dc565b5b6000612eef84828501612eb6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000604082019050612f3c60008301856122e8565b612f49602083018461237e565b939250505056fea26469706673582212205b4cd93990ab81df15e53da95fbf535a8703235a2cabb3ac553322a075aec03f64736f6c63430008180033697066733a2f2f516d65586e7968726b4547664b7a515274757379574e464b636a795a784c63553170755276784c6b4b326b546553", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x7 SSTORE PUSH6 0x5AF3107A4000 PUSH1 0x8 SSTORE PUSH1 0x1 PUSH1 0x9 SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x35 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x3590 PUSH1 0x35 SWAP2 CODECOPY PUSH1 0xA SWAP1 DUP2 PUSH3 0x42 SWAP2 SWAP1 PUSH3 0x4B1 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH3 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4361766550617274790000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4350590000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0xCF SWAP2 SWAP1 PUSH3 0x4B1 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0xE1 SWAP2 SWAP1 PUSH3 0x4B1 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x159 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x150 SWAP2 SWAP1 PUSH3 0x5DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x16A DUP2 PUSH3 0x171 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x5FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x2B9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2CF JUMPI PUSH3 0x2CE PUSH3 0x271 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x339 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2FA JUMP JUMPDEST PUSH3 0x345 DUP7 DUP4 PUSH3 0x2FA JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x392 PUSH3 0x38C PUSH3 0x386 DUP5 PUSH3 0x35D JUMP JUMPDEST PUSH3 0x367 JUMP JUMPDEST PUSH3 0x35D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3AE DUP4 PUSH3 0x371 JUMP JUMPDEST PUSH3 0x3C6 PUSH3 0x3BD DUP3 PUSH3 0x399 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x307 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3DD PUSH3 0x3CE JUMP JUMPDEST PUSH3 0x3EA DUP2 DUP5 DUP5 PUSH3 0x3A3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x412 JUMPI PUSH3 0x406 PUSH1 0x0 DUP3 PUSH3 0x3D3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x3F0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x461 JUMPI PUSH3 0x42B DUP2 PUSH3 0x2D5 JUMP JUMPDEST PUSH3 0x436 DUP5 PUSH3 0x2EA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x446 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x45E PUSH3 0x455 DUP6 PUSH3 0x2EA JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x3EF JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x486 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x466 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4A1 DUP4 DUP4 PUSH3 0x473 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4BC DUP3 PUSH3 0x237 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4D8 JUMPI PUSH3 0x4D7 PUSH3 0x242 JUMP JUMPDEST JUMPDEST PUSH3 0x4E4 DUP3 SLOAD PUSH3 0x2A0 JUMP JUMPDEST PUSH3 0x4F1 DUP3 DUP3 DUP6 PUSH3 0x416 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x529 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x514 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x520 DUP6 DUP3 PUSH3 0x493 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x590 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x539 DUP7 PUSH3 0x2D5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x563 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x53C JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x583 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x57F PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x473 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5C5 DUP3 PUSH3 0x598 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x5D7 DUP2 PUSH3 0x5B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x5F4 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x5CC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2F86 DUP1 PUSH3 0x60A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x181 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDDD71EDE GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDDD71EDE EQ PUSH2 0x53D JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x568 JUMPI DUP1 PUSH4 0xF0293FD3 EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5E2 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x500 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0x88662DE9 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x42F JUMPI DUP1 PUSH4 0x918B5BE1 EQ PUSH2 0x45A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x483 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x453C2310 GT PUSH2 0x118 JUMPI DUP1 PUSH4 0x453C2310 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x50516808 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x385 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x2C9 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x1F21BFBF EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x2004FFD9 EQ PUSH2 0x27F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x213E JUMP JUMPDEST PUSH2 0x60B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x210 SWAP2 SWAP1 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x77F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x79B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH2 0x7B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x8E1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x9E3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EB SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0xAA1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x307 PUSH2 0xAC1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x332 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36A SWAP2 SWAP1 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH2 0xB20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x23FB JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x402 PUSH2 0xBE0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x419 PUSH2 0xBF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x481 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x255D JUMP JUMPDEST PUSH2 0xCAC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x498 PUSH2 0xD0F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A5 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x25D2 JUMP JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F9 SWAP2 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST PUSH2 0xDB7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0xDD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x552 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55F SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58A SWAP2 SWAP1 PUSH2 0x2736 JUMP JUMPDEST PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59C SWAP2 SWAP1 PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0x23FB JUMP JUMPDEST PUSH2 0xF6B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D9 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x609 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x604 SWAP2 SWAP1 PUSH2 0x23FB JUMP JUMPDEST PUSH2 0xF83 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6D6 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x6E6 JUMPI POP PUSH2 0x6E5 DUP3 PUSH2 0x1009 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x6FC SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x728 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x775 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x74A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x775 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x758 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x78A DUP3 PUSH2 0x1073 JUMP JUMPDEST POP PUSH2 0x794 DUP3 PUSH2 0x10FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7AD DUP3 DUP3 PUSH2 0x7A8 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x1140 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x8 SLOAD EQ PUSH2 0x7FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F2 SWAP1 PUSH2 0x2822 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xB PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x87F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x876 SWAP1 PUSH2 0x288E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xB 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 DUP3 DUP3 SLOAD PUSH2 0x8CF SWAP2 SWAP1 PUSH2 0x28DD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x8DF CALLER PUSH2 0x1152 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x953 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94A SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x967 DUP4 DUP4 PUSH2 0x962 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x117F JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9DD JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9D4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2911 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x9EB PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F5 PUSH2 0xC82 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0xA18 SWAP1 PUSH2 0x2979 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA55 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 0xA5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xA9E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA95 SWAP1 PUSH2 0x29DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xABC DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xDB7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB19 DUP3 PUSH2 0x1073 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB99 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB90 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xBE8 PUSH2 0x1399 JUMP JUMPDEST PUSH2 0xBF2 PUSH1 0x0 PUSH2 0x1420 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xC01 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC2D SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC7A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC7A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC5D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xCB4 PUSH2 0x1399 JUMP JUMPDEST PUSH2 0xCBD DUP2 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0xCFC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCF3 SWAP1 PUSH2 0x2A6C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x2C38 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xD1E SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD4A SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD97 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD6C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD97 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD7A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDB3 PUSH2 0xDAC PUSH2 0x1138 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x163F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xDC2 DUP5 DUP5 DUP5 PUSH2 0x8E1 JUMP JUMPDEST PUSH2 0xDCE DUP5 DUP5 DUP5 DUP5 PUSH2 0x17AE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xDDF DUP3 PUSH2 0x1073 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xDEA PUSH2 0x1965 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xE0A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xE35 JUMP JUMPDEST DUP1 PUSH2 0xE14 DUP5 PUSH2 0x19F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE25 SWAP3 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE47 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xE54 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE80 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xECD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xECD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH1 0xB PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8B PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFFD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF4 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1006 DUP2 PUSH2 0x1420 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x107F DUP4 PUSH2 0x1AC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10F2 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x114D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1B02 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x116C SWAP1 PUSH2 0x2D6A JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x117B DUP3 DUP3 PUSH2 0x1CC7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x118B DUP5 PUSH2 0x1AC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11CD JUMPI PUSH2 0x11CC DUP2 DUP5 DUP7 PUSH2 0x1CE5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x125E JUMPI PUSH2 0x120F PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1B02 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12E1 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13A1 PUSH2 0x1138 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13BF PUSH2 0xC82 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x141E JUMPI PUSH2 0x13E2 PUSH2 0x1138 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1415 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP DUP1 MLOAD DUP3 MLOAD LT ISZERO PUSH2 0x153B JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x163A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP4 MLOAD PUSH2 0x154C SWAP2 SWAP1 PUSH2 0x2DB2 JUMP JUMPDEST DUP2 GT PUSH2 0x1632 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x160A JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1577 JUMPI PUSH2 0x1576 PUSH2 0x2DE6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP6 DUP3 DUP6 PUSH2 0x15B1 SWAP2 SWAP1 PUSH2 0x28DD JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x15C2 JUMPI PUSH2 0x15C1 PUSH2 0x2DE6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x15FD JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x160A JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x155B JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x161E JUMPI PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x163A JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x162A SWAP1 PUSH2 0x2D6A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x153E JUMP JUMPDEST POP PUSH1 0x0 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x16B0 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16A7 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17A1 SWAP2 SWAP1 PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x195F JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x17F2 PUSH2 0x1138 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1814 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2E6A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1850 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x184D SWAP2 SWAP1 PUSH2 0x2ECB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x18D4 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1880 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 0x1885 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x18CC JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18C3 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x195D JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1954 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xA DUP1 SLOAD PUSH2 0x1974 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x19A0 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19C2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1A06 DUP5 PUSH2 0x1DA9 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A25 JUMPI PUSH2 0x1A24 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1A57 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1ABA JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1AAE JUMPI PUSH2 0x1AAD PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1A65 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1B3B JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1C6F JUMPI PUSH1 0x0 PUSH2 0x1B4B DUP5 PUSH2 0x1073 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1BB6 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1BC9 JUMPI POP PUSH2 0x1BC7 DUP2 DUP5 PUSH2 0xED7 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C0B JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C02 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1C6D JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH2 0x1CE1 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1EFC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1CF0 DUP4 DUP4 DUP4 PUSH2 0x1F18 JUMP JUMPDEST PUSH2 0x1DA4 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D65 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D5C SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D9B SWAP3 SWAP2 SWAP1 PUSH2 0x2F27 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1E07 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1DFD JUMPI PUSH2 0x1DFC PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1E44 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1E3A JUMPI PUSH2 0x1E39 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1E73 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x1E69 JUMPI PUSH2 0x1E68 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1E9C JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1E92 JUMPI PUSH2 0x1E91 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1EC1 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1EB7 JUMPI PUSH2 0x1EB6 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1EE4 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1EDA JUMPI PUSH2 0x1ED9 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1EF3 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F06 DUP4 DUP4 PUSH2 0x1FD9 JUMP JUMPDEST PUSH2 0x1F13 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x17AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1FD0 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1F91 JUMPI POP PUSH2 0x1F90 DUP5 DUP5 PUSH2 0xED7 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x1FCF JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1FB7 DUP4 PUSH2 0x10FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x204B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2042 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2059 DUP4 DUP4 PUSH1 0x0 PUSH2 0x117F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x20CD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20C4 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP 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 0x211B DUP2 PUSH2 0x20E6 JUMP JUMPDEST DUP2 EQ PUSH2 0x2126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2138 DUP2 PUSH2 0x2112 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2154 JUMPI PUSH2 0x2153 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2162 DUP5 DUP3 DUP6 ADD PUSH2 0x2129 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2180 DUP2 PUSH2 0x216B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x219B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2177 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21DB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x21C0 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2203 DUP3 PUSH2 0x21A1 JUMP JUMPDEST PUSH2 0x220D DUP2 DUP6 PUSH2 0x21AC JUMP JUMPDEST SWAP4 POP PUSH2 0x221D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BD JUMP JUMPDEST PUSH2 0x2226 DUP2 PUSH2 0x21E7 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x224B DUP2 DUP5 PUSH2 0x21F8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2266 DUP2 PUSH2 0x2253 JUMP JUMPDEST DUP2 EQ PUSH2 0x2271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2283 DUP2 PUSH2 0x225D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229F JUMPI PUSH2 0x229E PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22AD DUP5 DUP3 DUP6 ADD PUSH2 0x2274 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 0x22E1 DUP3 PUSH2 0x22B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22F1 DUP2 PUSH2 0x22D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x230C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x231B DUP2 PUSH2 0x22D6 JUMP JUMPDEST DUP2 EQ PUSH2 0x2326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2338 DUP2 PUSH2 0x2312 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2355 JUMPI PUSH2 0x2354 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2363 DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2374 DUP6 DUP3 DUP7 ADD PUSH2 0x2274 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2387 DUP2 PUSH2 0x2253 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23A2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x237E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23C1 JUMPI PUSH2 0x23C0 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23CF DUP7 DUP3 DUP8 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x23E0 DUP7 DUP3 DUP8 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x23F1 DUP7 DUP3 DUP8 ADD PUSH2 0x2274 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2411 JUMPI PUSH2 0x2410 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x241F DUP5 DUP3 DUP6 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x246A DUP3 PUSH2 0x21E7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2489 JUMPI PUSH2 0x2488 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x249C PUSH2 0x20D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x24A8 DUP3 DUP3 PUSH2 0x2461 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24C8 JUMPI PUSH2 0x24C7 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH2 0x24D1 DUP3 PUSH2 0x21E7 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 0x2500 PUSH2 0x24FB DUP5 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0x2492 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x251C JUMPI PUSH2 0x251B PUSH2 0x242D JUMP JUMPDEST JUMPDEST PUSH2 0x2527 DUP5 DUP3 DUP6 PUSH2 0x24DE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2544 JUMPI PUSH2 0x2543 PUSH2 0x2428 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2554 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24ED JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2573 JUMPI PUSH2 0x2572 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2591 JUMPI PUSH2 0x2590 PUSH2 0x20E1 JUMP JUMPDEST JUMPDEST PUSH2 0x259D DUP5 DUP3 DUP6 ADD PUSH2 0x252F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25AF DUP2 PUSH2 0x216B JUMP JUMPDEST DUP2 EQ PUSH2 0x25BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25CC DUP2 PUSH2 0x25A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E9 JUMPI PUSH2 0x25E8 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25F7 DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2608 DUP6 DUP3 DUP7 ADD PUSH2 0x25BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x262D JUMPI PUSH2 0x262C PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH2 0x2636 DUP3 PUSH2 0x21E7 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2656 PUSH2 0x2651 DUP5 PUSH2 0x2612 JUMP JUMPDEST PUSH2 0x2492 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2672 JUMPI PUSH2 0x2671 PUSH2 0x242D JUMP JUMPDEST JUMPDEST PUSH2 0x267D DUP5 DUP3 DUP6 PUSH2 0x24DE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x269A JUMPI PUSH2 0x2699 PUSH2 0x2428 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2643 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 0x26CD JUMPI PUSH2 0x26CC PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26DB DUP8 DUP3 DUP9 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x26EC DUP8 DUP3 DUP9 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x26FD DUP8 DUP3 DUP9 ADD PUSH2 0x2274 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271E JUMPI PUSH2 0x271D PUSH2 0x20E1 JUMP JUMPDEST JUMPDEST PUSH2 0x272A DUP8 DUP3 DUP9 ADD PUSH2 0x2685 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 0x274D JUMPI PUSH2 0x274C PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x275B DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x276C DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x27BD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27D0 JUMPI PUSH2 0x27CF PUSH2 0x2776 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x302E3030303120657468657220726571756972656420746F206D696E74000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280C PUSH1 0x1D DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2817 DUP3 PUSH2 0x27D6 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 0x283B DUP2 PUSH2 0x27FF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6D696E7473207065722077616C6C657420657863656564656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2878 PUSH1 0x19 DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2883 DUP3 PUSH2 0x2842 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 0x28A7 DUP2 PUSH2 0x286B 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 0x28E8 DUP3 PUSH2 0x2253 JUMP JUMPDEST SWAP2 POP PUSH2 0x28F3 DUP4 PUSH2 0x2253 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x290B JUMPI PUSH2 0x290A PUSH2 0x28AE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2926 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2933 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x237E JUMP JUMPDEST PUSH2 0x2940 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22E8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2963 PUSH1 0x0 DUP4 PUSH2 0x2948 JUMP JUMPDEST SWAP2 POP PUSH2 0x296E DUP3 PUSH2 0x2953 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 DUP3 PUSH2 0x2956 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29C4 PUSH1 0x11 DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x29CF DUP3 PUSH2 0x298E 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 0x29F3 DUP2 PUSH2 0x29B7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964206173736574206D657461646174613A206D75737420696E63 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C7564652027697066733A2F2F27000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A56 PUSH1 0x2E DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2A61 DUP3 PUSH2 0x29FA 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 0x2A85 DUP2 PUSH2 0x2A49 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2AEE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2AB1 JUMP JUMPDEST PUSH2 0x2AF8 DUP7 DUP4 PUSH2 0x2AB1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B35 PUSH2 0x2B30 PUSH2 0x2B2B DUP5 PUSH2 0x2253 JUMP JUMPDEST PUSH2 0x2B10 JUMP JUMPDEST PUSH2 0x2253 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B4F DUP4 PUSH2 0x2B1A JUMP JUMPDEST PUSH2 0x2B63 PUSH2 0x2B5B DUP3 PUSH2 0x2B3C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2ABE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2B78 PUSH2 0x2B6B JUMP JUMPDEST PUSH2 0x2B83 DUP2 DUP5 DUP5 PUSH2 0x2B46 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2BA7 JUMPI PUSH2 0x2B9C PUSH1 0x0 DUP3 PUSH2 0x2B70 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2B89 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2BEC JUMPI PUSH2 0x2BBD DUP2 PUSH2 0x2A8C JUMP JUMPDEST PUSH2 0x2BC6 DUP5 PUSH2 0x2AA1 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2BD5 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2BE9 PUSH2 0x2BE1 DUP6 PUSH2 0x2AA1 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2B88 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2BF1 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C28 DUP4 DUP4 PUSH2 0x2BFE JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C41 DUP3 PUSH2 0x21A1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5A JUMPI PUSH2 0x2C59 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH2 0x2C64 DUP3 SLOAD PUSH2 0x27A5 JUMP JUMPDEST PUSH2 0x2C6F DUP3 DUP3 DUP6 PUSH2 0x2BAB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2CA2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2C90 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2C9A DUP6 DUP3 PUSH2 0x2C1C JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2D02 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2CB0 DUP7 PUSH2 0x2A8C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2CD8 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2CB3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2CF5 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2CF1 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2BFE JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D20 DUP3 PUSH2 0x21A1 JUMP JUMPDEST PUSH2 0x2D2A DUP2 DUP6 PUSH2 0x2D0A JUMP JUMPDEST SWAP4 POP PUSH2 0x2D3A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BD JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D52 DUP3 DUP6 PUSH2 0x2D15 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D5E DUP3 DUP5 PUSH2 0x2D15 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D75 DUP3 PUSH2 0x2253 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2DA7 JUMPI PUSH2 0x2DA6 PUSH2 0x28AE JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DBD DUP3 PUSH2 0x2253 JUMP JUMPDEST SWAP2 POP PUSH2 0x2DC8 DUP4 PUSH2 0x2253 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2DE0 JUMPI PUSH2 0x2DDF PUSH2 0x28AE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 PUSH2 0x2E3C DUP3 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x2E46 DUP2 DUP6 PUSH2 0x2E20 JUMP JUMPDEST SWAP4 POP PUSH2 0x2E56 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BD JUMP JUMPDEST PUSH2 0x2E5F DUP2 PUSH2 0x21E7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2E7F PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2E8C PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2E99 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x237E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2EAB DUP2 DUP5 PUSH2 0x2E31 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2EC5 DUP2 PUSH2 0x2112 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EE1 JUMPI PUSH2 0x2EE0 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EEF DUP5 DUP3 DUP6 ADD PUSH2 0x2EB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F3C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2F49 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x237E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST 0x4C 0xD9 CODECOPY SWAP1 0xAB DUP2 0xDF ISZERO 0xE5 RETURNDATASIZE 0xA9 PUSH0 0xBF MSTORE8 GAS DUP8 SUB 0x23 GAS 0x2C 0xAB 0xB3 0xAC SSTORE CALLER 0x22 LOG0 PUSH22 0xAEC03F64736F6C63430008180033697066733A2F2F51 PUSH14 0x65586E7968726B4547664B7A5152 PUSH21 0x757379574E464B636A795A784C6355317075527678 0x4C PUSH12 0x4B326B546553000000000000 ", + "sourceMap": "229:2473:17:-:0;;;392:1;364:29;;427:12;400:39;;476:1;446:31;;484:94;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;677:43;;;;;;;;;;267:10;1381:113:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:5;1447;:13;;;;;;:::i;:::-;;1480:7;1470;:17;;;;;;:::i;:::-;;1381:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;229:2473:17;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:23:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;5234:126::-;5271:7;5311:42;5304:5;5300:54;5289:65;;5234:126;;;:::o;5366:96::-;5403:7;5432:24;5450:5;5432:24;:::i;:::-;5421:35;;5366:96;;;:::o;5468:118::-;5555:24;5573:5;5555:24;:::i;:::-;5550:3;5543:37;5468:118;;:::o;5592:222::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:71;5804:1;5793:9;5789:17;5780:6;5736:71;:::i;:::-;5592:222;;;;:::o;229:2473:17:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_1128": { + "entryPoint": 4416, + "id": 1128, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1194": { + "entryPoint": 6914, + "id": 1194, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_3237": { + "entryPoint": 6501, + "id": 3237, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkAuthorized_776": { + "entryPoint": 7397, + "id": 776, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkOnERC721Received_1324": { + "entryPoint": 6062, + "id": 1324, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 5017, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getApproved_703": { + "entryPoint": 4347, + "id": 703, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isAuthorized_739": { + "entryPoint": 7960, + "id": 739, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_mint_932": { + "entryPoint": 8153, + "id": 932, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1626": { + "entryPoint": 4408, + "id": 1626, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_690": { + "entryPoint": 6853, + "id": 690, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireOwned_1260": { + "entryPoint": 4211, + "id": 1260, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_safeMint_947": { + "entryPoint": 7367, + "id": 947, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_973": { + "entryPoint": 7932, + "id": 973, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1231": { + "entryPoint": 5695, + "id": 1231, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 5152, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_update_882": { + "entryPoint": 4479, + "id": 882, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@approve_537": { + "entryPoint": 1947, + "id": 537, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@assetMetadata_3216": { + "entryPoint": 3060, + "id": 3216, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@balanceOf_445": { + "entryPoint": 2854, + "id": 445, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@checkMetadata_3440": { + "entryPoint": 5350, + "id": 3440, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_554": { + "entryPoint": 1919, + "id": 554, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getAssetMetadata_3354": { + "entryPoint": 3645, + "id": 3354, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getMyWalletMints_3300": { + "entryPoint": 2759, + "id": 3300, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@isApprovedForAll_587": { + "entryPoint": 3799, + "id": 587, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_2809": { + "entryPoint": 7593, + "id": 2809, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@maxPerWallet_3213": { + "entryPoint": 2753, + "id": 3213, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@mintPrice_3210": { + "entryPoint": 2848, + "id": 3210, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@mintToken_3289": { + "entryPoint": 1975, + "id": 3289, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@name_467": { + "entryPoint": 1773, + "id": 467, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_458": { + "entryPoint": 2830, + "id": 458, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 3202, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 3040, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeMint_3255": { + "entryPoint": 4434, + "id": 3255, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@safeTransferFrom_651": { + "entryPoint": 2721, + "id": 651, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_677": { + "entryPoint": 3511, + "id": 677, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_570": { + "entryPoint": 3489, + "id": 570, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1922": { + "entryPoint": 4105, + "id": 1922, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_417": { + "entryPoint": 1547, + "id": 417, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_476": { + "entryPoint": 3343, + "id": 476, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_1712": { + "entryPoint": 6647, + "id": 1712, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_512": { + "entryPoint": 3540, + "id": 512, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@totalMints_3207": { + "entryPoint": 1969, + "id": 3207, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@transferFrom_633": { + "entryPoint": 2273, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@transferOwnership_126": { + "entryPoint": 3971, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@updateMetadata_3344": { + "entryPoint": 3244, + "id": 3344, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@walletMints_3220": { + "entryPoint": 3947, + "id": 3220, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@withdrawFunds_3325": { + "entryPoint": 2531, + "id": 3325, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 9795, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 9453, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 9001, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 9661, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8489, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 11958, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 9861, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 9519, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 8820, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 9211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 10038, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 9128, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 9907, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 9682, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 9022, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8510, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 11979, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 9565, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 8841, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 8936, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8567, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 11825, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8696, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11541, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10825, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10679, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10582, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10239, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10347, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9086, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11590, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 10617, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 8951, + "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": 11882, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 12071, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 10513, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8582, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10860, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10714, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10274, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10382, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 9101, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9362, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8402, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9746, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 9389, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 10892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 11797, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8609, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 11808, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10568, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8620, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11530, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 10461, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 11698, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 11179, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 8918, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8555, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8422, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 8886, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8787, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 11144, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 11034, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 11320, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9438, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8637, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 10913, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 10149, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 11292, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9313, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11024, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 11626, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 11262, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 10414, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 12024, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 10102, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 11750, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9266, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 11068, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9256, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9261, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8417, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8412, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 8679, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 10929, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 11249, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 11120, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938": { + "entryPoint": 10746, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6": { + "entryPoint": 10638, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": { + "entryPoint": 10579, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b": { + "entryPoint": 10198, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c": { + "entryPoint": 10306, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 10942, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 11078, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 8978, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 9638, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8466, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 8797, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 11115, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:27485:23", + "nodeType": "YulBlock", + "src": "0:27485:23", + "statements": [ + { + "body": { + "nativeSrc": "47:35:23", + "nodeType": "YulBlock", + "src": "47:35:23", + "statements": [ + { + "nativeSrc": "57:19:23", + "nodeType": "YulAssignment", + "src": "57:19:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:23", + "nodeType": "YulLiteral", + "src": "73:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:23", + "nodeType": "YulIdentifier", + "src": "67:5:23" + }, + "nativeSrc": "67:9:23", + "nodeType": "YulFunctionCall", + "src": "67:9:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:23", + "nodeType": "YulIdentifier", + "src": "57:6:23" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:23", + "nodeType": "YulTypedName", + "src": "40:6:23", + "type": "" + } + ], + "src": "7:75:23" + }, + { + "body": { + "nativeSrc": "177:28:23", + "nodeType": "YulBlock", + "src": "177:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:23", + "nodeType": "YulLiteral", + "src": "194:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:23", + "nodeType": "YulLiteral", + "src": "197:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:23", + "nodeType": "YulIdentifier", + "src": "187:6:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulFunctionCall", + "src": "187:12:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulExpressionStatement", + "src": "187:12:23" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:23", + "nodeType": "YulFunctionDefinition", + "src": "88:117:23" + }, + { + "body": { + "nativeSrc": "300:28:23", + "nodeType": "YulBlock", + "src": "300:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:23", + "nodeType": "YulLiteral", + "src": "317:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:23", + "nodeType": "YulLiteral", + "src": "320:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:23", + "nodeType": "YulIdentifier", + "src": "310:6:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulFunctionCall", + "src": "310:12:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulExpressionStatement", + "src": "310:12:23" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:23", + "nodeType": "YulFunctionDefinition", + "src": "211:117:23" + }, + { + "body": { + "nativeSrc": "378:105:23", + "nodeType": "YulBlock", + "src": "378:105:23", + "statements": [ + { + "nativeSrc": "388:89:23", + "nodeType": "YulAssignment", + "src": "388:89:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:23", + "nodeType": "YulIdentifier", + "src": "403:5:23" + }, + { + "kind": "number", + "nativeSrc": "410:66:23", + "nodeType": "YulLiteral", + "src": "410:66:23", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:23", + "nodeType": "YulIdentifier", + "src": "399:3:23" + }, + "nativeSrc": "399:78:23", + "nodeType": "YulFunctionCall", + "src": "399:78:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:23", + "nodeType": "YulIdentifier", + "src": "388:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:23", + "nodeType": "YulTypedName", + "src": "360:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:23", + "nodeType": "YulTypedName", + "src": "370:7:23", + "type": "" + } + ], + "src": "334:149:23" + }, + { + "body": { + "nativeSrc": "531:78:23", + "nodeType": "YulBlock", + "src": "531:78:23", + "statements": [ + { + "body": { + "nativeSrc": "587:16:23", + "nodeType": "YulBlock", + "src": "587:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:23", + "nodeType": "YulLiteral", + "src": "596:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:23", + "nodeType": "YulLiteral", + "src": "599:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:23", + "nodeType": "YulIdentifier", + "src": "589:6:23" + }, + "nativeSrc": "589:12:23", + "nodeType": "YulFunctionCall", + "src": "589:12:23" + }, + "nativeSrc": "589:12:23", + "nodeType": "YulExpressionStatement", + "src": "589:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:23", + "nodeType": "YulIdentifier", + "src": "554:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:23", + "nodeType": "YulIdentifier", + "src": "578:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:23", + "nodeType": "YulIdentifier", + "src": "561:16:23" + }, + "nativeSrc": "561:23:23", + "nodeType": "YulFunctionCall", + "src": "561:23:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:23", + "nodeType": "YulIdentifier", + "src": "551:2:23" + }, + "nativeSrc": "551:34:23", + "nodeType": "YulFunctionCall", + "src": "551:34:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:23", + "nodeType": "YulIdentifier", + "src": "544:6:23" + }, + "nativeSrc": "544:42:23", + "nodeType": "YulFunctionCall", + "src": "544:42:23" + }, + "nativeSrc": "541:62:23", + "nodeType": "YulIf", + "src": "541:62:23" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:23", + "nodeType": "YulTypedName", + "src": "524:5:23", + "type": "" + } + ], + "src": "489:120:23" + }, + { + "body": { + "nativeSrc": "666:86:23", + "nodeType": "YulBlock", + "src": "666:86:23", + "statements": [ + { + "nativeSrc": "676:29:23", + "nodeType": "YulAssignment", + "src": "676:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:23", + "nodeType": "YulIdentifier", + "src": "698:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:23", + "nodeType": "YulIdentifier", + "src": "685:12:23" + }, + "nativeSrc": "685:20:23", + "nodeType": "YulFunctionCall", + "src": "685:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:23", + "nodeType": "YulIdentifier", + "src": "676:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:23", + "nodeType": "YulIdentifier", + "src": "740:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:23", + "nodeType": "YulIdentifier", + "src": "714:25:23" + }, + "nativeSrc": "714:32:23", + "nodeType": "YulFunctionCall", + "src": "714:32:23" + }, + "nativeSrc": "714:32:23", + "nodeType": "YulExpressionStatement", + "src": "714:32:23" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:23", + "nodeType": "YulTypedName", + "src": "644:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:23", + "nodeType": "YulTypedName", + "src": "652:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:23", + "nodeType": "YulTypedName", + "src": "660:5:23", + "type": "" + } + ], + "src": "615:137:23" + }, + { + "body": { + "nativeSrc": "823:262:23", + "nodeType": "YulBlock", + "src": "823:262:23", + "statements": [ + { + "body": { + "nativeSrc": "869:83:23", + "nodeType": "YulBlock", + "src": "869:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:23", + "nodeType": "YulIdentifier", + "src": "871:77:23" + }, + "nativeSrc": "871:79:23", + "nodeType": "YulFunctionCall", + "src": "871:79:23" + }, + "nativeSrc": "871:79:23", + "nodeType": "YulExpressionStatement", + "src": "871:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:23", + "nodeType": "YulIdentifier", + "src": "844:7:23" + }, + { + "name": "headStart", + "nativeSrc": "853:9:23", + "nodeType": "YulIdentifier", + "src": "853:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:23", + "nodeType": "YulIdentifier", + "src": "840:3:23" + }, + "nativeSrc": "840:23:23", + "nodeType": "YulFunctionCall", + "src": "840:23:23" + }, + { + "kind": "number", + "nativeSrc": "865:2:23", + "nodeType": "YulLiteral", + "src": "865:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:23", + "nodeType": "YulIdentifier", + "src": "836:3:23" + }, + "nativeSrc": "836:32:23", + "nodeType": "YulFunctionCall", + "src": "836:32:23" + }, + "nativeSrc": "833:119:23", + "nodeType": "YulIf", + "src": "833:119:23" + }, + { + "nativeSrc": "962:116:23", + "nodeType": "YulBlock", + "src": "962:116:23", + "statements": [ + { + "nativeSrc": "977:15:23", + "nodeType": "YulVariableDeclaration", + "src": "977:15:23", + "value": { + "kind": "number", + "nativeSrc": "991:1:23", + "nodeType": "YulLiteral", + "src": "991:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:23", + "nodeType": "YulTypedName", + "src": "981:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:23", + "nodeType": "YulAssignment", + "src": "1006:62:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:23", + "nodeType": "YulIdentifier", + "src": "1040:9:23" + }, + { + "name": "offset", + "nativeSrc": "1051:6:23", + "nodeType": "YulIdentifier", + "src": "1051:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:23", + "nodeType": "YulIdentifier", + "src": "1036:3:23" + }, + "nativeSrc": "1036:22:23", + "nodeType": "YulFunctionCall", + "src": "1036:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:23", + "nodeType": "YulIdentifier", + "src": "1060:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:23", + "nodeType": "YulIdentifier", + "src": "1016:19:23" + }, + "nativeSrc": "1016:52:23", + "nodeType": "YulFunctionCall", + "src": "1016:52:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:23", + "nodeType": "YulIdentifier", + "src": "1006:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:23", + "nodeType": "YulTypedName", + "src": "793:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:23", + "nodeType": "YulTypedName", + "src": "804:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:23", + "nodeType": "YulTypedName", + "src": "816:6:23", + "type": "" + } + ], + "src": "758:327:23" + }, + { + "body": { + "nativeSrc": "1133:48:23", + "nodeType": "YulBlock", + "src": "1133:48:23", + "statements": [ + { + "nativeSrc": "1143:32:23", + "nodeType": "YulAssignment", + "src": "1143:32:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:23", + "nodeType": "YulIdentifier", + "src": "1168:5:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:23", + "nodeType": "YulIdentifier", + "src": "1161:6:23" + }, + "nativeSrc": "1161:13:23", + "nodeType": "YulFunctionCall", + "src": "1161:13:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:23", + "nodeType": "YulIdentifier", + "src": "1154:6:23" + }, + "nativeSrc": "1154:21:23", + "nodeType": "YulFunctionCall", + "src": "1154:21:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:23", + "nodeType": "YulIdentifier", + "src": "1143:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:23", + "nodeType": "YulTypedName", + "src": "1115:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:23", + "nodeType": "YulTypedName", + "src": "1125:7:23", + "type": "" + } + ], + "src": "1091:90:23" + }, + { + "body": { + "nativeSrc": "1246:50:23", + "nodeType": "YulBlock", + "src": "1246:50:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:23", + "nodeType": "YulIdentifier", + "src": "1263:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:23", + "nodeType": "YulIdentifier", + "src": "1283:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:23", + "nodeType": "YulIdentifier", + "src": "1268:14:23" + }, + "nativeSrc": "1268:21:23", + "nodeType": "YulFunctionCall", + "src": "1268:21:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:23", + "nodeType": "YulIdentifier", + "src": "1256:6:23" + }, + "nativeSrc": "1256:34:23", + "nodeType": "YulFunctionCall", + "src": "1256:34:23" + }, + "nativeSrc": "1256:34:23", + "nodeType": "YulExpressionStatement", + "src": "1256:34:23" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:23", + "nodeType": "YulTypedName", + "src": "1234:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:23", + "nodeType": "YulTypedName", + "src": "1241:3:23", + "type": "" + } + ], + "src": "1187:109:23" + }, + { + "body": { + "nativeSrc": "1394:118:23", + "nodeType": "YulBlock", + "src": "1394:118:23", + "statements": [ + { + "nativeSrc": "1404:26:23", + "nodeType": "YulAssignment", + "src": "1404:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:23", + "nodeType": "YulIdentifier", + "src": "1416:9:23" + }, + { + "kind": "number", + "nativeSrc": "1427:2:23", + "nodeType": "YulLiteral", + "src": "1427:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:23", + "nodeType": "YulIdentifier", + "src": "1412:3:23" + }, + "nativeSrc": "1412:18:23", + "nodeType": "YulFunctionCall", + "src": "1412:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:23", + "nodeType": "YulIdentifier", + "src": "1404:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:23", + "nodeType": "YulIdentifier", + "src": "1478:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:23", + "nodeType": "YulIdentifier", + "src": "1491:9:23" + }, + { + "kind": "number", + "nativeSrc": "1502:1:23", + "nodeType": "YulLiteral", + "src": "1502:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:23", + "nodeType": "YulIdentifier", + "src": "1487:3:23" + }, + "nativeSrc": "1487:17:23", + "nodeType": "YulFunctionCall", + "src": "1487:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:23", + "nodeType": "YulIdentifier", + "src": "1440:37:23" + }, + "nativeSrc": "1440:65:23", + "nodeType": "YulFunctionCall", + "src": "1440:65:23" + }, + "nativeSrc": "1440:65:23", + "nodeType": "YulExpressionStatement", + "src": "1440:65:23" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:23", + "nodeType": "YulTypedName", + "src": "1366:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:23", + "nodeType": "YulTypedName", + "src": "1378:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:23", + "nodeType": "YulTypedName", + "src": "1389:4:23", + "type": "" + } + ], + "src": "1302:210:23" + }, + { + "body": { + "nativeSrc": "1577:40:23", + "nodeType": "YulBlock", + "src": "1577:40:23", + "statements": [ + { + "nativeSrc": "1588:22:23", + "nodeType": "YulAssignment", + "src": "1588:22:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1604:5:23", + "nodeType": "YulIdentifier", + "src": "1604:5:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1598:5:23", + "nodeType": "YulIdentifier", + "src": "1598:5:23" + }, + "nativeSrc": "1598:12:23", + "nodeType": "YulFunctionCall", + "src": "1598:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "1588:6:23", + "nodeType": "YulIdentifier", + "src": "1588:6:23" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "1518:99:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1560:5:23", + "nodeType": "YulTypedName", + "src": "1560:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "1570:6:23", + "nodeType": "YulTypedName", + "src": "1570:6:23", + "type": "" + } + ], + "src": "1518:99:23" + }, + { + "body": { + "nativeSrc": "1719:73:23", + "nodeType": "YulBlock", + "src": "1719:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1736:3:23", + "nodeType": "YulIdentifier", + "src": "1736:3:23" + }, + { + "name": "length", + "nativeSrc": "1741:6:23", + "nodeType": "YulIdentifier", + "src": "1741:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1729:6:23", + "nodeType": "YulIdentifier", + "src": "1729:6:23" + }, + "nativeSrc": "1729:19:23", + "nodeType": "YulFunctionCall", + "src": "1729:19:23" + }, + "nativeSrc": "1729:19:23", + "nodeType": "YulExpressionStatement", + "src": "1729:19:23" + }, + { + "nativeSrc": "1757:29:23", + "nodeType": "YulAssignment", + "src": "1757:29:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1776:3:23", + "nodeType": "YulIdentifier", + "src": "1776:3:23" + }, + { + "kind": "number", + "nativeSrc": "1781:4:23", + "nodeType": "YulLiteral", + "src": "1781:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:23", + "nodeType": "YulIdentifier", + "src": "1772:3:23" + }, + "nativeSrc": "1772:14:23", + "nodeType": "YulFunctionCall", + "src": "1772:14:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "1757:11:23", + "nodeType": "YulIdentifier", + "src": "1757:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1623:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1691:3:23", + "nodeType": "YulTypedName", + "src": "1691:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1696:6:23", + "nodeType": "YulTypedName", + "src": "1696:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "1707:11:23", + "nodeType": "YulTypedName", + "src": "1707:11:23", + "type": "" + } + ], + "src": "1623:169:23" + }, + { + "body": { + "nativeSrc": "1860:184:23", + "nodeType": "YulBlock", + "src": "1860:184:23", + "statements": [ + { + "nativeSrc": "1870:10:23", + "nodeType": "YulVariableDeclaration", + "src": "1870:10:23", + "value": { + "kind": "number", + "nativeSrc": "1879:1:23", + "nodeType": "YulLiteral", + "src": "1879:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1874:1:23", + "nodeType": "YulTypedName", + "src": "1874:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1939:63:23", + "nodeType": "YulBlock", + "src": "1939:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1964:3:23", + "nodeType": "YulIdentifier", + "src": "1964:3:23" + }, + { + "name": "i", + "nativeSrc": "1969:1:23", + "nodeType": "YulIdentifier", + "src": "1969:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1960:3:23", + "nodeType": "YulIdentifier", + "src": "1960:3:23" + }, + "nativeSrc": "1960:11:23", + "nodeType": "YulFunctionCall", + "src": "1960:11:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1983:3:23", + "nodeType": "YulIdentifier", + "src": "1983:3:23" + }, + { + "name": "i", + "nativeSrc": "1988:1:23", + "nodeType": "YulIdentifier", + "src": "1988:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1979:3:23", + "nodeType": "YulIdentifier", + "src": "1979:3:23" + }, + "nativeSrc": "1979:11:23", + "nodeType": "YulFunctionCall", + "src": "1979:11:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1973:5:23", + "nodeType": "YulIdentifier", + "src": "1973:5:23" + }, + "nativeSrc": "1973:18:23", + "nodeType": "YulFunctionCall", + "src": "1973:18:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1953:6:23", + "nodeType": "YulIdentifier", + "src": "1953:6:23" + }, + "nativeSrc": "1953:39:23", + "nodeType": "YulFunctionCall", + "src": "1953:39:23" + }, + "nativeSrc": "1953:39:23", + "nodeType": "YulExpressionStatement", + "src": "1953:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1900:1:23", + "nodeType": "YulIdentifier", + "src": "1900:1:23" + }, + { + "name": "length", + "nativeSrc": "1903:6:23", + "nodeType": "YulIdentifier", + "src": "1903:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1897:2:23", + "nodeType": "YulIdentifier", + "src": "1897:2:23" + }, + "nativeSrc": "1897:13:23", + "nodeType": "YulFunctionCall", + "src": "1897:13:23" + }, + "nativeSrc": "1889:113:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1911:19:23", + "nodeType": "YulBlock", + "src": "1911:19:23", + "statements": [ + { + "nativeSrc": "1913:15:23", + "nodeType": "YulAssignment", + "src": "1913:15:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1922:1:23", + "nodeType": "YulIdentifier", + "src": "1922:1:23" + }, + { + "kind": "number", + "nativeSrc": "1925:2:23", + "nodeType": "YulLiteral", + "src": "1925:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1918:3:23", + "nodeType": "YulIdentifier", + "src": "1918:3:23" + }, + "nativeSrc": "1918:10:23", + "nodeType": "YulFunctionCall", + "src": "1918:10:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1913:1:23", + "nodeType": "YulIdentifier", + "src": "1913:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1893:3:23", + "nodeType": "YulBlock", + "src": "1893:3:23", + "statements": [] + }, + "src": "1889:113:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2022:3:23", + "nodeType": "YulIdentifier", + "src": "2022:3:23" + }, + { + "name": "length", + "nativeSrc": "2027:6:23", + "nodeType": "YulIdentifier", + "src": "2027:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2018:3:23", + "nodeType": "YulIdentifier", + "src": "2018:3:23" + }, + "nativeSrc": "2018:16:23", + "nodeType": "YulFunctionCall", + "src": "2018:16:23" + }, + { + "kind": "number", + "nativeSrc": "2036:1:23", + "nodeType": "YulLiteral", + "src": "2036:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2011:6:23", + "nodeType": "YulIdentifier", + "src": "2011:6:23" + }, + "nativeSrc": "2011:27:23", + "nodeType": "YulFunctionCall", + "src": "2011:27:23" + }, + "nativeSrc": "2011:27:23", + "nodeType": "YulExpressionStatement", + "src": "2011:27:23" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1798:246:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1842:3:23", + "nodeType": "YulTypedName", + "src": "1842:3:23", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1847:3:23", + "nodeType": "YulTypedName", + "src": "1847:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1852:6:23", + "nodeType": "YulTypedName", + "src": "1852:6:23", + "type": "" + } + ], + "src": "1798:246:23" + }, + { + "body": { + "nativeSrc": "2098:54:23", + "nodeType": "YulBlock", + "src": "2098:54:23", + "statements": [ + { + "nativeSrc": "2108:38:23", + "nodeType": "YulAssignment", + "src": "2108:38:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2126:5:23", + "nodeType": "YulIdentifier", + "src": "2126:5:23" + }, + { + "kind": "number", + "nativeSrc": "2133:2:23", + "nodeType": "YulLiteral", + "src": "2133:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2122:3:23", + "nodeType": "YulIdentifier", + "src": "2122:3:23" + }, + "nativeSrc": "2122:14:23", + "nodeType": "YulFunctionCall", + "src": "2122:14:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2142:2:23", + "nodeType": "YulLiteral", + "src": "2142:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2138:3:23", + "nodeType": "YulIdentifier", + "src": "2138:3:23" + }, + "nativeSrc": "2138:7:23", + "nodeType": "YulFunctionCall", + "src": "2138:7:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2118:3:23", + "nodeType": "YulIdentifier", + "src": "2118:3:23" + }, + "nativeSrc": "2118:28:23", + "nodeType": "YulFunctionCall", + "src": "2118:28:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2108:6:23", + "nodeType": "YulIdentifier", + "src": "2108:6:23" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "2050:102:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2081:5:23", + "nodeType": "YulTypedName", + "src": "2081:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2091:6:23", + "nodeType": "YulTypedName", + "src": "2091:6:23", + "type": "" + } + ], + "src": "2050:102:23" + }, + { + "body": { + "nativeSrc": "2250:285:23", + "nodeType": "YulBlock", + "src": "2250:285:23", + "statements": [ + { + "nativeSrc": "2260:53:23", + "nodeType": "YulVariableDeclaration", + "src": "2260:53:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2307:5:23", + "nodeType": "YulIdentifier", + "src": "2307:5:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "2274:32:23", + "nodeType": "YulIdentifier", + "src": "2274:32:23" + }, + "nativeSrc": "2274:39:23", + "nodeType": "YulFunctionCall", + "src": "2274:39:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2264:6:23", + "nodeType": "YulTypedName", + "src": "2264:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "2322:78:23", + "nodeType": "YulAssignment", + "src": "2322:78:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2388:3:23", + "nodeType": "YulIdentifier", + "src": "2388:3:23" + }, + { + "name": "length", + "nativeSrc": "2393:6:23", + "nodeType": "YulIdentifier", + "src": "2393:6:23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2329:58:23", + "nodeType": "YulIdentifier", + "src": "2329:58:23" + }, + "nativeSrc": "2329:71:23", + "nodeType": "YulFunctionCall", + "src": "2329:71:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2322:3:23", + "nodeType": "YulIdentifier", + "src": "2322:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2448:5:23", + "nodeType": "YulIdentifier", + "src": "2448:5:23" + }, + { + "kind": "number", + "nativeSrc": "2455:4:23", + "nodeType": "YulLiteral", + "src": "2455:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2444:3:23", + "nodeType": "YulIdentifier", + "src": "2444:3:23" + }, + "nativeSrc": "2444:16:23", + "nodeType": "YulFunctionCall", + "src": "2444:16:23" + }, + { + "name": "pos", + "nativeSrc": "2462:3:23", + "nodeType": "YulIdentifier", + "src": "2462:3:23" + }, + { + "name": "length", + "nativeSrc": "2467:6:23", + "nodeType": "YulIdentifier", + "src": "2467:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2409:34:23", + "nodeType": "YulIdentifier", + "src": "2409:34:23" + }, + "nativeSrc": "2409:65:23", + "nodeType": "YulFunctionCall", + "src": "2409:65:23" + }, + "nativeSrc": "2409:65:23", + "nodeType": "YulExpressionStatement", + "src": "2409:65:23" + }, + { + "nativeSrc": "2483:46:23", + "nodeType": "YulAssignment", + "src": "2483:46:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2494:3:23", + "nodeType": "YulIdentifier", + "src": "2494:3:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2521:6:23", + "nodeType": "YulIdentifier", + "src": "2521:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2499:21:23", + "nodeType": "YulIdentifier", + "src": "2499:21:23" + }, + "nativeSrc": "2499:29:23", + "nodeType": "YulFunctionCall", + "src": "2499:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2490:3:23", + "nodeType": "YulIdentifier", + "src": "2490:3:23" + }, + "nativeSrc": "2490:39:23", + "nodeType": "YulFunctionCall", + "src": "2490:39:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2483:3:23", + "nodeType": "YulIdentifier", + "src": "2483:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2158:377:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2231:5:23", + "nodeType": "YulTypedName", + "src": "2231:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2238:3:23", + "nodeType": "YulTypedName", + "src": "2238:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2246:3:23", + "nodeType": "YulTypedName", + "src": "2246:3:23", + "type": "" + } + ], + "src": "2158:377:23" + }, + { + "body": { + "nativeSrc": "2659:195:23", + "nodeType": "YulBlock", + "src": "2659:195:23", + "statements": [ + { + "nativeSrc": "2669:26:23", + "nodeType": "YulAssignment", + "src": "2669:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2681:9:23", + "nodeType": "YulIdentifier", + "src": "2681:9:23" + }, + { + "kind": "number", + "nativeSrc": "2692:2:23", + "nodeType": "YulLiteral", + "src": "2692:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2677:3:23", + "nodeType": "YulIdentifier", + "src": "2677:3:23" + }, + "nativeSrc": "2677:18:23", + "nodeType": "YulFunctionCall", + "src": "2677:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2669:4:23", + "nodeType": "YulIdentifier", + "src": "2669:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2716:9:23", + "nodeType": "YulIdentifier", + "src": "2716:9:23" + }, + { + "kind": "number", + "nativeSrc": "2727:1:23", + "nodeType": "YulLiteral", + "src": "2727:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2712:3:23", + "nodeType": "YulIdentifier", + "src": "2712:3:23" + }, + "nativeSrc": "2712:17:23", + "nodeType": "YulFunctionCall", + "src": "2712:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "2735:4:23", + "nodeType": "YulIdentifier", + "src": "2735:4:23" + }, + { + "name": "headStart", + "nativeSrc": "2741:9:23", + "nodeType": "YulIdentifier", + "src": "2741:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2731:3:23", + "nodeType": "YulIdentifier", + "src": "2731:3:23" + }, + "nativeSrc": "2731:20:23", + "nodeType": "YulFunctionCall", + "src": "2731:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2705:6:23", + "nodeType": "YulIdentifier", + "src": "2705:6:23" + }, + "nativeSrc": "2705:47:23", + "nodeType": "YulFunctionCall", + "src": "2705:47:23" + }, + "nativeSrc": "2705:47:23", + "nodeType": "YulExpressionStatement", + "src": "2705:47:23" + }, + { + "nativeSrc": "2761:86:23", + "nodeType": "YulAssignment", + "src": "2761:86:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2833:6:23", + "nodeType": "YulIdentifier", + "src": "2833:6:23" + }, + { + "name": "tail", + "nativeSrc": "2842:4:23", + "nodeType": "YulIdentifier", + "src": "2842:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2769:63:23", + "nodeType": "YulIdentifier", + "src": "2769:63:23" + }, + "nativeSrc": "2769:78:23", + "nodeType": "YulFunctionCall", + "src": "2769:78:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2761:4:23", + "nodeType": "YulIdentifier", + "src": "2761:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2541:313:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2631:9:23", + "nodeType": "YulTypedName", + "src": "2631:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2643:6:23", + "nodeType": "YulTypedName", + "src": "2643:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2654:4:23", + "nodeType": "YulTypedName", + "src": "2654:4:23", + "type": "" + } + ], + "src": "2541:313:23" + }, + { + "body": { + "nativeSrc": "2905:32:23", + "nodeType": "YulBlock", + "src": "2905:32:23", + "statements": [ + { + "nativeSrc": "2915:16:23", + "nodeType": "YulAssignment", + "src": "2915:16:23", + "value": { + "name": "value", + "nativeSrc": "2926:5:23", + "nodeType": "YulIdentifier", + "src": "2926:5:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2915:7:23", + "nodeType": "YulIdentifier", + "src": "2915:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2860:77:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2887:5:23", + "nodeType": "YulTypedName", + "src": "2887:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2897:7:23", + "nodeType": "YulTypedName", + "src": "2897:7:23", + "type": "" + } + ], + "src": "2860:77:23" + }, + { + "body": { + "nativeSrc": "2986:79:23", + "nodeType": "YulBlock", + "src": "2986:79:23", + "statements": [ + { + "body": { + "nativeSrc": "3043:16:23", + "nodeType": "YulBlock", + "src": "3043:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3052:1:23", + "nodeType": "YulLiteral", + "src": "3052:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3055:1:23", + "nodeType": "YulLiteral", + "src": "3055:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3045:6:23", + "nodeType": "YulIdentifier", + "src": "3045:6:23" + }, + "nativeSrc": "3045:12:23", + "nodeType": "YulFunctionCall", + "src": "3045:12:23" + }, + "nativeSrc": "3045:12:23", + "nodeType": "YulExpressionStatement", + "src": "3045:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3009:5:23", + "nodeType": "YulIdentifier", + "src": "3009:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3034:5:23", + "nodeType": "YulIdentifier", + "src": "3034:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "3016:17:23", + "nodeType": "YulIdentifier", + "src": "3016:17:23" + }, + "nativeSrc": "3016:24:23", + "nodeType": "YulFunctionCall", + "src": "3016:24:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3006:2:23", + "nodeType": "YulIdentifier", + "src": "3006:2:23" + }, + "nativeSrc": "3006:35:23", + "nodeType": "YulFunctionCall", + "src": "3006:35:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2999:6:23", + "nodeType": "YulIdentifier", + "src": "2999:6:23" + }, + "nativeSrc": "2999:43:23", + "nodeType": "YulFunctionCall", + "src": "2999:43:23" + }, + "nativeSrc": "2996:63:23", + "nodeType": "YulIf", + "src": "2996:63:23" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2943:122:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2979:5:23", + "nodeType": "YulTypedName", + "src": "2979:5:23", + "type": "" + } + ], + "src": "2943:122:23" + }, + { + "body": { + "nativeSrc": "3123:87:23", + "nodeType": "YulBlock", + "src": "3123:87:23", + "statements": [ + { + "nativeSrc": "3133:29:23", + "nodeType": "YulAssignment", + "src": "3133:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3155:6:23", + "nodeType": "YulIdentifier", + "src": "3155:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3142:12:23", + "nodeType": "YulIdentifier", + "src": "3142:12:23" + }, + "nativeSrc": "3142:20:23", + "nodeType": "YulFunctionCall", + "src": "3142:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3133:5:23", + "nodeType": "YulIdentifier", + "src": "3133:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3198:5:23", + "nodeType": "YulIdentifier", + "src": "3198:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3171:26:23", + "nodeType": "YulIdentifier", + "src": "3171:26:23" + }, + "nativeSrc": "3171:33:23", + "nodeType": "YulFunctionCall", + "src": "3171:33:23" + }, + "nativeSrc": "3171:33:23", + "nodeType": "YulExpressionStatement", + "src": "3171:33:23" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "3071:139:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3101:6:23", + "nodeType": "YulTypedName", + "src": "3101:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3109:3:23", + "nodeType": "YulTypedName", + "src": "3109:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3117:5:23", + "nodeType": "YulTypedName", + "src": "3117:5:23", + "type": "" + } + ], + "src": "3071:139:23" + }, + { + "body": { + "nativeSrc": "3282:263:23", + "nodeType": "YulBlock", + "src": "3282:263:23", + "statements": [ + { + "body": { + "nativeSrc": "3328:83:23", + "nodeType": "YulBlock", + "src": "3328:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3330:77:23", + "nodeType": "YulIdentifier", + "src": "3330:77:23" + }, + "nativeSrc": "3330:79:23", + "nodeType": "YulFunctionCall", + "src": "3330:79:23" + }, + "nativeSrc": "3330:79:23", + "nodeType": "YulExpressionStatement", + "src": "3330:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3303:7:23", + "nodeType": "YulIdentifier", + "src": "3303:7:23" + }, + { + "name": "headStart", + "nativeSrc": "3312:9:23", + "nodeType": "YulIdentifier", + "src": "3312:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3299:3:23", + "nodeType": "YulIdentifier", + "src": "3299:3:23" + }, + "nativeSrc": "3299:23:23", + "nodeType": "YulFunctionCall", + "src": "3299:23:23" + }, + { + "kind": "number", + "nativeSrc": "3324:2:23", + "nodeType": "YulLiteral", + "src": "3324:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3295:3:23", + "nodeType": "YulIdentifier", + "src": "3295:3:23" + }, + "nativeSrc": "3295:32:23", + "nodeType": "YulFunctionCall", + "src": "3295:32:23" + }, + "nativeSrc": "3292:119:23", + "nodeType": "YulIf", + "src": "3292:119:23" + }, + { + "nativeSrc": "3421:117:23", + "nodeType": "YulBlock", + "src": "3421:117:23", + "statements": [ + { + "nativeSrc": "3436:15:23", + "nodeType": "YulVariableDeclaration", + "src": "3436:15:23", + "value": { + "kind": "number", + "nativeSrc": "3450:1:23", + "nodeType": "YulLiteral", + "src": "3450:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3440:6:23", + "nodeType": "YulTypedName", + "src": "3440:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "3465:63:23", + "nodeType": "YulAssignment", + "src": "3465:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3500:9:23", + "nodeType": "YulIdentifier", + "src": "3500:9:23" + }, + { + "name": "offset", + "nativeSrc": "3511:6:23", + "nodeType": "YulIdentifier", + "src": "3511:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3496:3:23", + "nodeType": "YulIdentifier", + "src": "3496:3:23" + }, + "nativeSrc": "3496:22:23", + "nodeType": "YulFunctionCall", + "src": "3496:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "3520:7:23", + "nodeType": "YulIdentifier", + "src": "3520:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3475:20:23", + "nodeType": "YulIdentifier", + "src": "3475:20:23" + }, + "nativeSrc": "3475:53:23", + "nodeType": "YulFunctionCall", + "src": "3475:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3465:6:23", + "nodeType": "YulIdentifier", + "src": "3465:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3216:329:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3252:9:23", + "nodeType": "YulTypedName", + "src": "3252:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3263:7:23", + "nodeType": "YulTypedName", + "src": "3263:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3275:6:23", + "nodeType": "YulTypedName", + "src": "3275:6:23", + "type": "" + } + ], + "src": "3216:329:23" + }, + { + "body": { + "nativeSrc": "3596:81:23", + "nodeType": "YulBlock", + "src": "3596:81:23", + "statements": [ + { + "nativeSrc": "3606:65:23", + "nodeType": "YulAssignment", + "src": "3606:65:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3621:5:23", + "nodeType": "YulIdentifier", + "src": "3621:5:23" + }, + { + "kind": "number", + "nativeSrc": "3628:42:23", + "nodeType": "YulLiteral", + "src": "3628:42:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3617:3:23", + "nodeType": "YulIdentifier", + "src": "3617:3:23" + }, + "nativeSrc": "3617:54:23", + "nodeType": "YulFunctionCall", + "src": "3617:54:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3606:7:23", + "nodeType": "YulIdentifier", + "src": "3606:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3551:126:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3578:5:23", + "nodeType": "YulTypedName", + "src": "3578:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3588:7:23", + "nodeType": "YulTypedName", + "src": "3588:7:23", + "type": "" + } + ], + "src": "3551:126:23" + }, + { + "body": { + "nativeSrc": "3728:51:23", + "nodeType": "YulBlock", + "src": "3728:51:23", + "statements": [ + { + "nativeSrc": "3738:35:23", + "nodeType": "YulAssignment", + "src": "3738:35:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3767:5:23", + "nodeType": "YulIdentifier", + "src": "3767:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3749:17:23", + "nodeType": "YulIdentifier", + "src": "3749:17:23" + }, + "nativeSrc": "3749:24:23", + "nodeType": "YulFunctionCall", + "src": "3749:24:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3738:7:23", + "nodeType": "YulIdentifier", + "src": "3738:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3683:96:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3710:5:23", + "nodeType": "YulTypedName", + "src": "3710:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3720:7:23", + "nodeType": "YulTypedName", + "src": "3720:7:23", + "type": "" + } + ], + "src": "3683:96:23" + }, + { + "body": { + "nativeSrc": "3850:53:23", + "nodeType": "YulBlock", + "src": "3850:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3867:3:23", + "nodeType": "YulIdentifier", + "src": "3867:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3890:5:23", + "nodeType": "YulIdentifier", + "src": "3890:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3872:17:23", + "nodeType": "YulIdentifier", + "src": "3872:17:23" + }, + "nativeSrc": "3872:24:23", + "nodeType": "YulFunctionCall", + "src": "3872:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3860:6:23", + "nodeType": "YulIdentifier", + "src": "3860:6:23" + }, + "nativeSrc": "3860:37:23", + "nodeType": "YulFunctionCall", + "src": "3860:37:23" + }, + "nativeSrc": "3860:37:23", + "nodeType": "YulExpressionStatement", + "src": "3860:37:23" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3785:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3838:5:23", + "nodeType": "YulTypedName", + "src": "3838:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3845:3:23", + "nodeType": "YulTypedName", + "src": "3845:3:23", + "type": "" + } + ], + "src": "3785:118:23" + }, + { + "body": { + "nativeSrc": "4007:124:23", + "nodeType": "YulBlock", + "src": "4007:124:23", + "statements": [ + { + "nativeSrc": "4017:26:23", + "nodeType": "YulAssignment", + "src": "4017:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4029:9:23", + "nodeType": "YulIdentifier", + "src": "4029:9:23" + }, + { + "kind": "number", + "nativeSrc": "4040:2:23", + "nodeType": "YulLiteral", + "src": "4040:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4025:3:23", + "nodeType": "YulIdentifier", + "src": "4025:3:23" + }, + "nativeSrc": "4025:18:23", + "nodeType": "YulFunctionCall", + "src": "4025:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4017:4:23", + "nodeType": "YulIdentifier", + "src": "4017:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4097:6:23", + "nodeType": "YulIdentifier", + "src": "4097:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4110:9:23", + "nodeType": "YulIdentifier", + "src": "4110:9:23" + }, + { + "kind": "number", + "nativeSrc": "4121:1:23", + "nodeType": "YulLiteral", + "src": "4121:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4106:3:23", + "nodeType": "YulIdentifier", + "src": "4106:3:23" + }, + "nativeSrc": "4106:17:23", + "nodeType": "YulFunctionCall", + "src": "4106:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4053:43:23", + "nodeType": "YulIdentifier", + "src": "4053:43:23" + }, + "nativeSrc": "4053:71:23", + "nodeType": "YulFunctionCall", + "src": "4053:71:23" + }, + "nativeSrc": "4053:71:23", + "nodeType": "YulExpressionStatement", + "src": "4053:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "3909:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3979:9:23", + "nodeType": "YulTypedName", + "src": "3979:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3991:6:23", + "nodeType": "YulTypedName", + "src": "3991:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4002:4:23", + "nodeType": "YulTypedName", + "src": "4002:4:23", + "type": "" + } + ], + "src": "3909:222:23" + }, + { + "body": { + "nativeSrc": "4180:79:23", + "nodeType": "YulBlock", + "src": "4180:79:23", + "statements": [ + { + "body": { + "nativeSrc": "4237:16:23", + "nodeType": "YulBlock", + "src": "4237:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4246:1:23", + "nodeType": "YulLiteral", + "src": "4246:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4249:1:23", + "nodeType": "YulLiteral", + "src": "4249:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4239:6:23", + "nodeType": "YulIdentifier", + "src": "4239:6:23" + }, + "nativeSrc": "4239:12:23", + "nodeType": "YulFunctionCall", + "src": "4239:12:23" + }, + "nativeSrc": "4239:12:23", + "nodeType": "YulExpressionStatement", + "src": "4239:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4203:5:23", + "nodeType": "YulIdentifier", + "src": "4203:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4228:5:23", + "nodeType": "YulIdentifier", + "src": "4228:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4210:17:23", + "nodeType": "YulIdentifier", + "src": "4210:17:23" + }, + "nativeSrc": "4210:24:23", + "nodeType": "YulFunctionCall", + "src": "4210:24:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4200:2:23", + "nodeType": "YulIdentifier", + "src": "4200:2:23" + }, + "nativeSrc": "4200:35:23", + "nodeType": "YulFunctionCall", + "src": "4200:35:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4193:6:23", + "nodeType": "YulIdentifier", + "src": "4193:6:23" + }, + "nativeSrc": "4193:43:23", + "nodeType": "YulFunctionCall", + "src": "4193:43:23" + }, + "nativeSrc": "4190:63:23", + "nodeType": "YulIf", + "src": "4190:63:23" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "4137:122:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4173:5:23", + "nodeType": "YulTypedName", + "src": "4173:5:23", + "type": "" + } + ], + "src": "4137:122:23" + }, + { + "body": { + "nativeSrc": "4317:87:23", + "nodeType": "YulBlock", + "src": "4317:87:23", + "statements": [ + { + "nativeSrc": "4327:29:23", + "nodeType": "YulAssignment", + "src": "4327:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4349:6:23", + "nodeType": "YulIdentifier", + "src": "4349:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4336:12:23", + "nodeType": "YulIdentifier", + "src": "4336:12:23" + }, + "nativeSrc": "4336:20:23", + "nodeType": "YulFunctionCall", + "src": "4336:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4327:5:23", + "nodeType": "YulIdentifier", + "src": "4327:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4392:5:23", + "nodeType": "YulIdentifier", + "src": "4392:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "4365:26:23", + "nodeType": "YulIdentifier", + "src": "4365:26:23" + }, + "nativeSrc": "4365:33:23", + "nodeType": "YulFunctionCall", + "src": "4365:33:23" + }, + "nativeSrc": "4365:33:23", + "nodeType": "YulExpressionStatement", + "src": "4365:33:23" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "4265:139:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4295:6:23", + "nodeType": "YulTypedName", + "src": "4295:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4303:3:23", + "nodeType": "YulTypedName", + "src": "4303:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4311:5:23", + "nodeType": "YulTypedName", + "src": "4311:5:23", + "type": "" + } + ], + "src": "4265:139:23" + }, + { + "body": { + "nativeSrc": "4493:391:23", + "nodeType": "YulBlock", + "src": "4493:391:23", + "statements": [ + { + "body": { + "nativeSrc": "4539:83:23", + "nodeType": "YulBlock", + "src": "4539:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4541:77:23", + "nodeType": "YulIdentifier", + "src": "4541:77:23" + }, + "nativeSrc": "4541:79:23", + "nodeType": "YulFunctionCall", + "src": "4541:79:23" + }, + "nativeSrc": "4541:79:23", + "nodeType": "YulExpressionStatement", + "src": "4541:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4514:7:23", + "nodeType": "YulIdentifier", + "src": "4514:7:23" + }, + { + "name": "headStart", + "nativeSrc": "4523:9:23", + "nodeType": "YulIdentifier", + "src": "4523:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4510:3:23", + "nodeType": "YulIdentifier", + "src": "4510:3:23" + }, + "nativeSrc": "4510:23:23", + "nodeType": "YulFunctionCall", + "src": "4510:23:23" + }, + { + "kind": "number", + "nativeSrc": "4535:2:23", + "nodeType": "YulLiteral", + "src": "4535:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4506:3:23", + "nodeType": "YulIdentifier", + "src": "4506:3:23" + }, + "nativeSrc": "4506:32:23", + "nodeType": "YulFunctionCall", + "src": "4506:32:23" + }, + "nativeSrc": "4503:119:23", + "nodeType": "YulIf", + "src": "4503:119:23" + }, + { + "nativeSrc": "4632:117:23", + "nodeType": "YulBlock", + "src": "4632:117:23", + "statements": [ + { + "nativeSrc": "4647:15:23", + "nodeType": "YulVariableDeclaration", + "src": "4647:15:23", + "value": { + "kind": "number", + "nativeSrc": "4661:1:23", + "nodeType": "YulLiteral", + "src": "4661:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4651:6:23", + "nodeType": "YulTypedName", + "src": "4651:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4676:63:23", + "nodeType": "YulAssignment", + "src": "4676:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4711:9:23", + "nodeType": "YulIdentifier", + "src": "4711:9:23" + }, + { + "name": "offset", + "nativeSrc": "4722:6:23", + "nodeType": "YulIdentifier", + "src": "4722:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4707:3:23", + "nodeType": "YulIdentifier", + "src": "4707:3:23" + }, + "nativeSrc": "4707:22:23", + "nodeType": "YulFunctionCall", + "src": "4707:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4731:7:23", + "nodeType": "YulIdentifier", + "src": "4731:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4686:20:23", + "nodeType": "YulIdentifier", + "src": "4686:20:23" + }, + "nativeSrc": "4686:53:23", + "nodeType": "YulFunctionCall", + "src": "4686:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4676:6:23", + "nodeType": "YulIdentifier", + "src": "4676:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "4759:118:23", + "nodeType": "YulBlock", + "src": "4759:118:23", + "statements": [ + { + "nativeSrc": "4774:16:23", + "nodeType": "YulVariableDeclaration", + "src": "4774:16:23", + "value": { + "kind": "number", + "nativeSrc": "4788:2:23", + "nodeType": "YulLiteral", + "src": "4788:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4778:6:23", + "nodeType": "YulTypedName", + "src": "4778:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4804:63:23", + "nodeType": "YulAssignment", + "src": "4804:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4839:9:23", + "nodeType": "YulIdentifier", + "src": "4839:9:23" + }, + { + "name": "offset", + "nativeSrc": "4850:6:23", + "nodeType": "YulIdentifier", + "src": "4850:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4835:3:23", + "nodeType": "YulIdentifier", + "src": "4835:3:23" + }, + "nativeSrc": "4835:22:23", + "nodeType": "YulFunctionCall", + "src": "4835:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4859:7:23", + "nodeType": "YulIdentifier", + "src": "4859:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4814:20:23", + "nodeType": "YulIdentifier", + "src": "4814:20:23" + }, + "nativeSrc": "4814:53:23", + "nodeType": "YulFunctionCall", + "src": "4814:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4804:6:23", + "nodeType": "YulIdentifier", + "src": "4804:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "4410:474:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4455:9:23", + "nodeType": "YulTypedName", + "src": "4455:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4466:7:23", + "nodeType": "YulTypedName", + "src": "4466:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4478:6:23", + "nodeType": "YulTypedName", + "src": "4478:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4486:6:23", + "nodeType": "YulTypedName", + "src": "4486:6:23", + "type": "" + } + ], + "src": "4410:474:23" + }, + { + "body": { + "nativeSrc": "4955:53:23", + "nodeType": "YulBlock", + "src": "4955:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4972:3:23", + "nodeType": "YulIdentifier", + "src": "4972:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4995:5:23", + "nodeType": "YulIdentifier", + "src": "4995:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4977:17:23", + "nodeType": "YulIdentifier", + "src": "4977:17:23" + }, + "nativeSrc": "4977:24:23", + "nodeType": "YulFunctionCall", + "src": "4977:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4965:6:23", + "nodeType": "YulIdentifier", + "src": "4965:6:23" + }, + "nativeSrc": "4965:37:23", + "nodeType": "YulFunctionCall", + "src": "4965:37:23" + }, + "nativeSrc": "4965:37:23", + "nodeType": "YulExpressionStatement", + "src": "4965:37:23" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4890:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4943:5:23", + "nodeType": "YulTypedName", + "src": "4943:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4950:3:23", + "nodeType": "YulTypedName", + "src": "4950:3:23", + "type": "" + } + ], + "src": "4890:118:23" + }, + { + "body": { + "nativeSrc": "5112:124:23", + "nodeType": "YulBlock", + "src": "5112:124:23", + "statements": [ + { + "nativeSrc": "5122:26:23", + "nodeType": "YulAssignment", + "src": "5122:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5134:9:23", + "nodeType": "YulIdentifier", + "src": "5134:9:23" + }, + { + "kind": "number", + "nativeSrc": "5145:2:23", + "nodeType": "YulLiteral", + "src": "5145:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5130:3:23", + "nodeType": "YulIdentifier", + "src": "5130:3:23" + }, + "nativeSrc": "5130:18:23", + "nodeType": "YulFunctionCall", + "src": "5130:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5122:4:23", + "nodeType": "YulIdentifier", + "src": "5122:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5202:6:23", + "nodeType": "YulIdentifier", + "src": "5202:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5215:9:23", + "nodeType": "YulIdentifier", + "src": "5215:9:23" + }, + { + "kind": "number", + "nativeSrc": "5226:1:23", + "nodeType": "YulLiteral", + "src": "5226:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5211:3:23", + "nodeType": "YulIdentifier", + "src": "5211:3:23" + }, + "nativeSrc": "5211:17:23", + "nodeType": "YulFunctionCall", + "src": "5211:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5158:43:23", + "nodeType": "YulIdentifier", + "src": "5158:43:23" + }, + "nativeSrc": "5158:71:23", + "nodeType": "YulFunctionCall", + "src": "5158:71:23" + }, + "nativeSrc": "5158:71:23", + "nodeType": "YulExpressionStatement", + "src": "5158:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "5014:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5084:9:23", + "nodeType": "YulTypedName", + "src": "5084:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5096:6:23", + "nodeType": "YulTypedName", + "src": "5096:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5107:4:23", + "nodeType": "YulTypedName", + "src": "5107:4:23", + "type": "" + } + ], + "src": "5014:222:23" + }, + { + "body": { + "nativeSrc": "5342:519:23", + "nodeType": "YulBlock", + "src": "5342:519:23", + "statements": [ + { + "body": { + "nativeSrc": "5388:83:23", + "nodeType": "YulBlock", + "src": "5388:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5390:77:23", + "nodeType": "YulIdentifier", + "src": "5390:77:23" + }, + "nativeSrc": "5390:79:23", + "nodeType": "YulFunctionCall", + "src": "5390:79:23" + }, + "nativeSrc": "5390:79:23", + "nodeType": "YulExpressionStatement", + "src": "5390:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5363:7:23", + "nodeType": "YulIdentifier", + "src": "5363:7:23" + }, + { + "name": "headStart", + "nativeSrc": "5372:9:23", + "nodeType": "YulIdentifier", + "src": "5372:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5359:3:23", + "nodeType": "YulIdentifier", + "src": "5359:3:23" + }, + "nativeSrc": "5359:23:23", + "nodeType": "YulFunctionCall", + "src": "5359:23:23" + }, + { + "kind": "number", + "nativeSrc": "5384:2:23", + "nodeType": "YulLiteral", + "src": "5384:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5355:3:23", + "nodeType": "YulIdentifier", + "src": "5355:3:23" + }, + "nativeSrc": "5355:32:23", + "nodeType": "YulFunctionCall", + "src": "5355:32:23" + }, + "nativeSrc": "5352:119:23", + "nodeType": "YulIf", + "src": "5352:119:23" + }, + { + "nativeSrc": "5481:117:23", + "nodeType": "YulBlock", + "src": "5481:117:23", + "statements": [ + { + "nativeSrc": "5496:15:23", + "nodeType": "YulVariableDeclaration", + "src": "5496:15:23", + "value": { + "kind": "number", + "nativeSrc": "5510:1:23", + "nodeType": "YulLiteral", + "src": "5510:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5500:6:23", + "nodeType": "YulTypedName", + "src": "5500:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5525:63:23", + "nodeType": "YulAssignment", + "src": "5525:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5560:9:23", + "nodeType": "YulIdentifier", + "src": "5560:9:23" + }, + { + "name": "offset", + "nativeSrc": "5571:6:23", + "nodeType": "YulIdentifier", + "src": "5571:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5556:3:23", + "nodeType": "YulIdentifier", + "src": "5556:3:23" + }, + "nativeSrc": "5556:22:23", + "nodeType": "YulFunctionCall", + "src": "5556:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "5580:7:23", + "nodeType": "YulIdentifier", + "src": "5580:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5535:20:23", + "nodeType": "YulIdentifier", + "src": "5535:20:23" + }, + "nativeSrc": "5535:53:23", + "nodeType": "YulFunctionCall", + "src": "5535:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5525:6:23", + "nodeType": "YulIdentifier", + "src": "5525:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "5608:118:23", + "nodeType": "YulBlock", + "src": "5608:118:23", + "statements": [ + { + "nativeSrc": "5623:16:23", + "nodeType": "YulVariableDeclaration", + "src": "5623:16:23", + "value": { + "kind": "number", + "nativeSrc": "5637:2:23", + "nodeType": "YulLiteral", + "src": "5637:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5627:6:23", + "nodeType": "YulTypedName", + "src": "5627:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5653:63:23", + "nodeType": "YulAssignment", + "src": "5653:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5688:9:23", + "nodeType": "YulIdentifier", + "src": "5688:9:23" + }, + { + "name": "offset", + "nativeSrc": "5699:6:23", + "nodeType": "YulIdentifier", + "src": "5699:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5684:3:23", + "nodeType": "YulIdentifier", + "src": "5684:3:23" + }, + "nativeSrc": "5684:22:23", + "nodeType": "YulFunctionCall", + "src": "5684:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "5708:7:23", + "nodeType": "YulIdentifier", + "src": "5708:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5663:20:23", + "nodeType": "YulIdentifier", + "src": "5663:20:23" + }, + "nativeSrc": "5663:53:23", + "nodeType": "YulFunctionCall", + "src": "5663:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5653:6:23", + "nodeType": "YulIdentifier", + "src": "5653:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "5736:118:23", + "nodeType": "YulBlock", + "src": "5736:118:23", + "statements": [ + { + "nativeSrc": "5751:16:23", + "nodeType": "YulVariableDeclaration", + "src": "5751:16:23", + "value": { + "kind": "number", + "nativeSrc": "5765:2:23", + "nodeType": "YulLiteral", + "src": "5765:2:23", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5755:6:23", + "nodeType": "YulTypedName", + "src": "5755:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5781:63:23", + "nodeType": "YulAssignment", + "src": "5781:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5816:9:23", + "nodeType": "YulIdentifier", + "src": "5816:9:23" + }, + { + "name": "offset", + "nativeSrc": "5827:6:23", + "nodeType": "YulIdentifier", + "src": "5827:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5812:3:23", + "nodeType": "YulIdentifier", + "src": "5812:3:23" + }, + "nativeSrc": "5812:22:23", + "nodeType": "YulFunctionCall", + "src": "5812:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "5836:7:23", + "nodeType": "YulIdentifier", + "src": "5836:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5791:20:23", + "nodeType": "YulIdentifier", + "src": "5791:20:23" + }, + "nativeSrc": "5791:53:23", + "nodeType": "YulFunctionCall", + "src": "5791:53:23" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5781:6:23", + "nodeType": "YulIdentifier", + "src": "5781:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "5242:619:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5296:9:23", + "nodeType": "YulTypedName", + "src": "5296:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5307:7:23", + "nodeType": "YulTypedName", + "src": "5307:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5319:6:23", + "nodeType": "YulTypedName", + "src": "5319:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5327:6:23", + "nodeType": "YulTypedName", + "src": "5327:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5335:6:23", + "nodeType": "YulTypedName", + "src": "5335:6:23", + "type": "" + } + ], + "src": "5242:619:23" + }, + { + "body": { + "nativeSrc": "5933:263:23", + "nodeType": "YulBlock", + "src": "5933:263:23", + "statements": [ + { + "body": { + "nativeSrc": "5979:83:23", + "nodeType": "YulBlock", + "src": "5979:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5981:77:23", + "nodeType": "YulIdentifier", + "src": "5981:77:23" + }, + "nativeSrc": "5981:79:23", + "nodeType": "YulFunctionCall", + "src": "5981:79:23" + }, + "nativeSrc": "5981:79:23", + "nodeType": "YulExpressionStatement", + "src": "5981:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5954:7:23", + "nodeType": "YulIdentifier", + "src": "5954:7:23" + }, + { + "name": "headStart", + "nativeSrc": "5963:9:23", + "nodeType": "YulIdentifier", + "src": "5963:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5950:3:23", + "nodeType": "YulIdentifier", + "src": "5950:3:23" + }, + "nativeSrc": "5950:23:23", + "nodeType": "YulFunctionCall", + "src": "5950:23:23" + }, + { + "kind": "number", + "nativeSrc": "5975:2:23", + "nodeType": "YulLiteral", + "src": "5975:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5946:3:23", + "nodeType": "YulIdentifier", + "src": "5946:3:23" + }, + "nativeSrc": "5946:32:23", + "nodeType": "YulFunctionCall", + "src": "5946:32:23" + }, + "nativeSrc": "5943:119:23", + "nodeType": "YulIf", + "src": "5943:119:23" + }, + { + "nativeSrc": "6072:117:23", + "nodeType": "YulBlock", + "src": "6072:117:23", + "statements": [ + { + "nativeSrc": "6087:15:23", + "nodeType": "YulVariableDeclaration", + "src": "6087:15:23", + "value": { + "kind": "number", + "nativeSrc": "6101:1:23", + "nodeType": "YulLiteral", + "src": "6101:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6091:6:23", + "nodeType": "YulTypedName", + "src": "6091:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "6116:63:23", + "nodeType": "YulAssignment", + "src": "6116:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6151:9:23", + "nodeType": "YulIdentifier", + "src": "6151:9:23" + }, + { + "name": "offset", + "nativeSrc": "6162:6:23", + "nodeType": "YulIdentifier", + "src": "6162:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6147:3:23", + "nodeType": "YulIdentifier", + "src": "6147:3:23" + }, + "nativeSrc": "6147:22:23", + "nodeType": "YulFunctionCall", + "src": "6147:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "6171:7:23", + "nodeType": "YulIdentifier", + "src": "6171:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6126:20:23", + "nodeType": "YulIdentifier", + "src": "6126:20:23" + }, + "nativeSrc": "6126:53:23", + "nodeType": "YulFunctionCall", + "src": "6126:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6116:6:23", + "nodeType": "YulIdentifier", + "src": "6116:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "5867:329:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5903:9:23", + "nodeType": "YulTypedName", + "src": "5903:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5914:7:23", + "nodeType": "YulTypedName", + "src": "5914:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5926:6:23", + "nodeType": "YulTypedName", + "src": "5926:6:23", + "type": "" + } + ], + "src": "5867:329:23" + }, + { + "body": { + "nativeSrc": "6291:28:23", + "nodeType": "YulBlock", + "src": "6291:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6308:1:23", + "nodeType": "YulLiteral", + "src": "6308:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6311:1:23", + "nodeType": "YulLiteral", + "src": "6311:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6301:6:23", + "nodeType": "YulIdentifier", + "src": "6301:6:23" + }, + "nativeSrc": "6301:12:23", + "nodeType": "YulFunctionCall", + "src": "6301:12:23" + }, + "nativeSrc": "6301:12:23", + "nodeType": "YulExpressionStatement", + "src": "6301:12:23" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "6202:117:23", + "nodeType": "YulFunctionDefinition", + "src": "6202:117:23" + }, + { + "body": { + "nativeSrc": "6414:28:23", + "nodeType": "YulBlock", + "src": "6414:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6431:1:23", + "nodeType": "YulLiteral", + "src": "6431:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6434:1:23", + "nodeType": "YulLiteral", + "src": "6434:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6424:6:23", + "nodeType": "YulIdentifier", + "src": "6424:6:23" + }, + "nativeSrc": "6424:12:23", + "nodeType": "YulFunctionCall", + "src": "6424:12:23" + }, + "nativeSrc": "6424:12:23", + "nodeType": "YulExpressionStatement", + "src": "6424:12:23" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "6325:117:23", + "nodeType": "YulFunctionDefinition", + "src": "6325:117:23" + }, + { + "body": { + "nativeSrc": "6476:152:23", + "nodeType": "YulBlock", + "src": "6476:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6493:1:23", + "nodeType": "YulLiteral", + "src": "6493:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6496:77:23", + "nodeType": "YulLiteral", + "src": "6496:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6486:6:23", + "nodeType": "YulIdentifier", + "src": "6486:6:23" + }, + "nativeSrc": "6486:88:23", + "nodeType": "YulFunctionCall", + "src": "6486:88:23" + }, + "nativeSrc": "6486:88:23", + "nodeType": "YulExpressionStatement", + "src": "6486:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6590:1:23", + "nodeType": "YulLiteral", + "src": "6590:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6593:4:23", + "nodeType": "YulLiteral", + "src": "6593:4:23", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6583:6:23", + "nodeType": "YulIdentifier", + "src": "6583:6:23" + }, + "nativeSrc": "6583:15:23", + "nodeType": "YulFunctionCall", + "src": "6583:15:23" + }, + "nativeSrc": "6583:15:23", + "nodeType": "YulExpressionStatement", + "src": "6583:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6614:1:23", + "nodeType": "YulLiteral", + "src": "6614:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6617:4:23", + "nodeType": "YulLiteral", + "src": "6617:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6607:6:23", + "nodeType": "YulIdentifier", + "src": "6607:6:23" + }, + "nativeSrc": "6607:15:23", + "nodeType": "YulFunctionCall", + "src": "6607:15:23" + }, + "nativeSrc": "6607:15:23", + "nodeType": "YulExpressionStatement", + "src": "6607:15:23" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6448:180:23", + "nodeType": "YulFunctionDefinition", + "src": "6448:180:23" + }, + { + "body": { + "nativeSrc": "6677:238:23", + "nodeType": "YulBlock", + "src": "6677:238:23", + "statements": [ + { + "nativeSrc": "6687:58:23", + "nodeType": "YulVariableDeclaration", + "src": "6687:58:23", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6709:6:23", + "nodeType": "YulIdentifier", + "src": "6709:6:23" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6739:4:23", + "nodeType": "YulIdentifier", + "src": "6739:4:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6717:21:23", + "nodeType": "YulIdentifier", + "src": "6717:21:23" + }, + "nativeSrc": "6717:27:23", + "nodeType": "YulFunctionCall", + "src": "6717:27:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6705:3:23", + "nodeType": "YulIdentifier", + "src": "6705:3:23" + }, + "nativeSrc": "6705:40:23", + "nodeType": "YulFunctionCall", + "src": "6705:40:23" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6691:10:23", + "nodeType": "YulTypedName", + "src": "6691:10:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6856:22:23", + "nodeType": "YulBlock", + "src": "6856:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6858:16:23", + "nodeType": "YulIdentifier", + "src": "6858:16:23" + }, + "nativeSrc": "6858:18:23", + "nodeType": "YulFunctionCall", + "src": "6858:18:23" + }, + "nativeSrc": "6858:18:23", + "nodeType": "YulExpressionStatement", + "src": "6858:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6799:10:23", + "nodeType": "YulIdentifier", + "src": "6799:10:23" + }, + { + "kind": "number", + "nativeSrc": "6811:18:23", + "nodeType": "YulLiteral", + "src": "6811:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6796:2:23", + "nodeType": "YulIdentifier", + "src": "6796:2:23" + }, + "nativeSrc": "6796:34:23", + "nodeType": "YulFunctionCall", + "src": "6796:34:23" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6835:10:23", + "nodeType": "YulIdentifier", + "src": "6835:10:23" + }, + { + "name": "memPtr", + "nativeSrc": "6847:6:23", + "nodeType": "YulIdentifier", + "src": "6847:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6832:2:23", + "nodeType": "YulIdentifier", + "src": "6832:2:23" + }, + "nativeSrc": "6832:22:23", + "nodeType": "YulFunctionCall", + "src": "6832:22:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6793:2:23", + "nodeType": "YulIdentifier", + "src": "6793:2:23" + }, + "nativeSrc": "6793:62:23", + "nodeType": "YulFunctionCall", + "src": "6793:62:23" + }, + "nativeSrc": "6790:88:23", + "nodeType": "YulIf", + "src": "6790:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6894:2:23", + "nodeType": "YulLiteral", + "src": "6894:2:23", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6898:10:23", + "nodeType": "YulIdentifier", + "src": "6898:10:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6887:6:23", + "nodeType": "YulIdentifier", + "src": "6887:6:23" + }, + "nativeSrc": "6887:22:23", + "nodeType": "YulFunctionCall", + "src": "6887:22:23" + }, + "nativeSrc": "6887:22:23", + "nodeType": "YulExpressionStatement", + "src": "6887:22:23" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6634:281:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6663:6:23", + "nodeType": "YulTypedName", + "src": "6663:6:23", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6671:4:23", + "nodeType": "YulTypedName", + "src": "6671:4:23", + "type": "" + } + ], + "src": "6634:281:23" + }, + { + "body": { + "nativeSrc": "6962:88:23", + "nodeType": "YulBlock", + "src": "6962:88:23", + "statements": [ + { + "nativeSrc": "6972:30:23", + "nodeType": "YulAssignment", + "src": "6972:30:23", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6982:18:23", + "nodeType": "YulIdentifier", + "src": "6982:18:23" + }, + "nativeSrc": "6982:20:23", + "nodeType": "YulFunctionCall", + "src": "6982:20:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6972:6:23", + "nodeType": "YulIdentifier", + "src": "6972:6:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7031:6:23", + "nodeType": "YulIdentifier", + "src": "7031:6:23" + }, + { + "name": "size", + "nativeSrc": "7039:4:23", + "nodeType": "YulIdentifier", + "src": "7039:4:23" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "7011:19:23", + "nodeType": "YulIdentifier", + "src": "7011:19:23" + }, + "nativeSrc": "7011:33:23", + "nodeType": "YulFunctionCall", + "src": "7011:33:23" + }, + "nativeSrc": "7011:33:23", + "nodeType": "YulExpressionStatement", + "src": "7011:33:23" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6921:129:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6946:4:23", + "nodeType": "YulTypedName", + "src": "6946:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6955:6:23", + "nodeType": "YulTypedName", + "src": "6955:6:23", + "type": "" + } + ], + "src": "6921:129:23" + }, + { + "body": { + "nativeSrc": "7123:241:23", + "nodeType": "YulBlock", + "src": "7123:241:23", + "statements": [ + { + "body": { + "nativeSrc": "7228:22:23", + "nodeType": "YulBlock", + "src": "7228:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7230:16:23", + "nodeType": "YulIdentifier", + "src": "7230:16:23" + }, + "nativeSrc": "7230:18:23", + "nodeType": "YulFunctionCall", + "src": "7230:18:23" + }, + "nativeSrc": "7230:18:23", + "nodeType": "YulExpressionStatement", + "src": "7230:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7200:6:23", + "nodeType": "YulIdentifier", + "src": "7200:6:23" + }, + { + "kind": "number", + "nativeSrc": "7208:18:23", + "nodeType": "YulLiteral", + "src": "7208:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7197:2:23", + "nodeType": "YulIdentifier", + "src": "7197:2:23" + }, + "nativeSrc": "7197:30:23", + "nodeType": "YulFunctionCall", + "src": "7197:30:23" + }, + "nativeSrc": "7194:56:23", + "nodeType": "YulIf", + "src": "7194:56:23" + }, + { + "nativeSrc": "7260:37:23", + "nodeType": "YulAssignment", + "src": "7260:37:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7290:6:23", + "nodeType": "YulIdentifier", + "src": "7290:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7268:21:23", + "nodeType": "YulIdentifier", + "src": "7268:21:23" + }, + "nativeSrc": "7268:29:23", + "nodeType": "YulFunctionCall", + "src": "7268:29:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7260:4:23", + "nodeType": "YulIdentifier", + "src": "7260:4:23" + } + ] + }, + { + "nativeSrc": "7334:23:23", + "nodeType": "YulAssignment", + "src": "7334:23:23", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "7346:4:23", + "nodeType": "YulIdentifier", + "src": "7346:4:23" + }, + { + "kind": "number", + "nativeSrc": "7352:4:23", + "nodeType": "YulLiteral", + "src": "7352:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7342:3:23", + "nodeType": "YulIdentifier", + "src": "7342:3:23" + }, + "nativeSrc": "7342:15:23", + "nodeType": "YulFunctionCall", + "src": "7342:15:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7334:4:23", + "nodeType": "YulIdentifier", + "src": "7334:4:23" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7056:308:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "7107:6:23", + "nodeType": "YulTypedName", + "src": "7107:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "7118:4:23", + "nodeType": "YulTypedName", + "src": "7118:4:23", + "type": "" + } + ], + "src": "7056:308:23" + }, + { + "body": { + "nativeSrc": "7434:82:23", + "nodeType": "YulBlock", + "src": "7434:82:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7457:3:23", + "nodeType": "YulIdentifier", + "src": "7457:3:23" + }, + { + "name": "src", + "nativeSrc": "7462:3:23", + "nodeType": "YulIdentifier", + "src": "7462:3:23" + }, + { + "name": "length", + "nativeSrc": "7467:6:23", + "nodeType": "YulIdentifier", + "src": "7467:6:23" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "7444:12:23", + "nodeType": "YulIdentifier", + "src": "7444:12:23" + }, + "nativeSrc": "7444:30:23", + "nodeType": "YulFunctionCall", + "src": "7444:30:23" + }, + "nativeSrc": "7444:30:23", + "nodeType": "YulExpressionStatement", + "src": "7444:30:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7494:3:23", + "nodeType": "YulIdentifier", + "src": "7494:3:23" + }, + { + "name": "length", + "nativeSrc": "7499:6:23", + "nodeType": "YulIdentifier", + "src": "7499:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7490:3:23", + "nodeType": "YulIdentifier", + "src": "7490:3:23" + }, + "nativeSrc": "7490:16:23", + "nodeType": "YulFunctionCall", + "src": "7490:16:23" + }, + { + "kind": "number", + "nativeSrc": "7508:1:23", + "nodeType": "YulLiteral", + "src": "7508:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7483:6:23", + "nodeType": "YulIdentifier", + "src": "7483:6:23" + }, + "nativeSrc": "7483:27:23", + "nodeType": "YulFunctionCall", + "src": "7483:27:23" + }, + "nativeSrc": "7483:27:23", + "nodeType": "YulExpressionStatement", + "src": "7483:27:23" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7370:146:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7416:3:23", + "nodeType": "YulTypedName", + "src": "7416:3:23", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "7421:3:23", + "nodeType": "YulTypedName", + "src": "7421:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7426:6:23", + "nodeType": "YulTypedName", + "src": "7426:6:23", + "type": "" + } + ], + "src": "7370:146:23" + }, + { + "body": { + "nativeSrc": "7606:341:23", + "nodeType": "YulBlock", + "src": "7606:341:23", + "statements": [ + { + "nativeSrc": "7616:75:23", + "nodeType": "YulAssignment", + "src": "7616:75:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7683:6:23", + "nodeType": "YulIdentifier", + "src": "7683:6:23" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7641:41:23", + "nodeType": "YulIdentifier", + "src": "7641:41:23" + }, + "nativeSrc": "7641:49:23", + "nodeType": "YulFunctionCall", + "src": "7641:49:23" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7625:15:23", + "nodeType": "YulIdentifier", + "src": "7625:15:23" + }, + "nativeSrc": "7625:66:23", + "nodeType": "YulFunctionCall", + "src": "7625:66:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7616:5:23", + "nodeType": "YulIdentifier", + "src": "7616:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7707:5:23", + "nodeType": "YulIdentifier", + "src": "7707:5:23" + }, + { + "name": "length", + "nativeSrc": "7714:6:23", + "nodeType": "YulIdentifier", + "src": "7714:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7700:6:23", + "nodeType": "YulIdentifier", + "src": "7700:6:23" + }, + "nativeSrc": "7700:21:23", + "nodeType": "YulFunctionCall", + "src": "7700:21:23" + }, + "nativeSrc": "7700:21:23", + "nodeType": "YulExpressionStatement", + "src": "7700:21:23" + }, + { + "nativeSrc": "7730:27:23", + "nodeType": "YulVariableDeclaration", + "src": "7730:27:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7745:5:23", + "nodeType": "YulIdentifier", + "src": "7745:5:23" + }, + { + "kind": "number", + "nativeSrc": "7752:4:23", + "nodeType": "YulLiteral", + "src": "7752:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7741:3:23", + "nodeType": "YulIdentifier", + "src": "7741:3:23" + }, + "nativeSrc": "7741:16:23", + "nodeType": "YulFunctionCall", + "src": "7741:16:23" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7734:3:23", + "nodeType": "YulTypedName", + "src": "7734:3:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7795:83:23", + "nodeType": "YulBlock", + "src": "7795:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7797:77:23", + "nodeType": "YulIdentifier", + "src": "7797:77:23" + }, + "nativeSrc": "7797:79:23", + "nodeType": "YulFunctionCall", + "src": "7797:79:23" + }, + "nativeSrc": "7797:79:23", + "nodeType": "YulExpressionStatement", + "src": "7797:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7776:3:23", + "nodeType": "YulIdentifier", + "src": "7776:3:23" + }, + { + "name": "length", + "nativeSrc": "7781:6:23", + "nodeType": "YulIdentifier", + "src": "7781:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7772:3:23", + "nodeType": "YulIdentifier", + "src": "7772:3:23" + }, + "nativeSrc": "7772:16:23", + "nodeType": "YulFunctionCall", + "src": "7772:16:23" + }, + { + "name": "end", + "nativeSrc": "7790:3:23", + "nodeType": "YulIdentifier", + "src": "7790:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7769:2:23", + "nodeType": "YulIdentifier", + "src": "7769:2:23" + }, + "nativeSrc": "7769:25:23", + "nodeType": "YulFunctionCall", + "src": "7769:25:23" + }, + "nativeSrc": "7766:112:23", + "nodeType": "YulIf", + "src": "7766:112:23" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7924:3:23", + "nodeType": "YulIdentifier", + "src": "7924:3:23" + }, + { + "name": "dst", + "nativeSrc": "7929:3:23", + "nodeType": "YulIdentifier", + "src": "7929:3:23" + }, + { + "name": "length", + "nativeSrc": "7934:6:23", + "nodeType": "YulIdentifier", + "src": "7934:6:23" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7887:36:23", + "nodeType": "YulIdentifier", + "src": "7887:36:23" + }, + "nativeSrc": "7887:54:23", + "nodeType": "YulFunctionCall", + "src": "7887:54:23" + }, + "nativeSrc": "7887:54:23", + "nodeType": "YulExpressionStatement", + "src": "7887:54:23" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "7522:425:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7579:3:23", + "nodeType": "YulTypedName", + "src": "7579:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7584:6:23", + "nodeType": "YulTypedName", + "src": "7584:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7592:3:23", + "nodeType": "YulTypedName", + "src": "7592:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7600:5:23", + "nodeType": "YulTypedName", + "src": "7600:5:23", + "type": "" + } + ], + "src": "7522:425:23" + }, + { + "body": { + "nativeSrc": "8029:278:23", + "nodeType": "YulBlock", + "src": "8029:278:23", + "statements": [ + { + "body": { + "nativeSrc": "8078:83:23", + "nodeType": "YulBlock", + "src": "8078:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "8080:77:23", + "nodeType": "YulIdentifier", + "src": "8080:77:23" + }, + "nativeSrc": "8080:79:23", + "nodeType": "YulFunctionCall", + "src": "8080:79:23" + }, + "nativeSrc": "8080:79:23", + "nodeType": "YulExpressionStatement", + "src": "8080:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8057:6:23", + "nodeType": "YulIdentifier", + "src": "8057:6:23" + }, + { + "kind": "number", + "nativeSrc": "8065:4:23", + "nodeType": "YulLiteral", + "src": "8065:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8053:3:23", + "nodeType": "YulIdentifier", + "src": "8053:3:23" + }, + "nativeSrc": "8053:17:23", + "nodeType": "YulFunctionCall", + "src": "8053:17:23" + }, + { + "name": "end", + "nativeSrc": "8072:3:23", + "nodeType": "YulIdentifier", + "src": "8072:3:23" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8049:3:23", + "nodeType": "YulIdentifier", + "src": "8049:3:23" + }, + "nativeSrc": "8049:27:23", + "nodeType": "YulFunctionCall", + "src": "8049:27:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8042:6:23", + "nodeType": "YulIdentifier", + "src": "8042:6:23" + }, + "nativeSrc": "8042:35:23", + "nodeType": "YulFunctionCall", + "src": "8042:35:23" + }, + "nativeSrc": "8039:122:23", + "nodeType": "YulIf", + "src": "8039:122:23" + }, + { + "nativeSrc": "8170:34:23", + "nodeType": "YulVariableDeclaration", + "src": "8170:34:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8197:6:23", + "nodeType": "YulIdentifier", + "src": "8197:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8184:12:23", + "nodeType": "YulIdentifier", + "src": "8184:12:23" + }, + "nativeSrc": "8184:20:23", + "nodeType": "YulFunctionCall", + "src": "8184:20:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8174:6:23", + "nodeType": "YulTypedName", + "src": "8174:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "8213:88:23", + "nodeType": "YulAssignment", + "src": "8213:88:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8274:6:23", + "nodeType": "YulIdentifier", + "src": "8274:6:23" + }, + { + "kind": "number", + "nativeSrc": "8282:4:23", + "nodeType": "YulLiteral", + "src": "8282:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8270:3:23", + "nodeType": "YulIdentifier", + "src": "8270:3:23" + }, + "nativeSrc": "8270:17:23", + "nodeType": "YulFunctionCall", + "src": "8270:17:23" + }, + { + "name": "length", + "nativeSrc": "8289:6:23", + "nodeType": "YulIdentifier", + "src": "8289:6:23" + }, + { + "name": "end", + "nativeSrc": "8297:3:23", + "nodeType": "YulIdentifier", + "src": "8297:3:23" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "8222:47:23", + "nodeType": "YulIdentifier", + "src": "8222:47:23" + }, + "nativeSrc": "8222:79:23", + "nodeType": "YulFunctionCall", + "src": "8222:79:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8213:5:23", + "nodeType": "YulIdentifier", + "src": "8213:5:23" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "7967:340:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8007:6:23", + "nodeType": "YulTypedName", + "src": "8007:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8015:3:23", + "nodeType": "YulTypedName", + "src": "8015:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8023:5:23", + "nodeType": "YulTypedName", + "src": "8023:5:23", + "type": "" + } + ], + "src": "7967:340:23" + }, + { + "body": { + "nativeSrc": "8389:433:23", + "nodeType": "YulBlock", + "src": "8389:433:23", + "statements": [ + { + "body": { + "nativeSrc": "8435:83:23", + "nodeType": "YulBlock", + "src": "8435:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8437:77:23", + "nodeType": "YulIdentifier", + "src": "8437:77:23" + }, + "nativeSrc": "8437:79:23", + "nodeType": "YulFunctionCall", + "src": "8437:79:23" + }, + "nativeSrc": "8437:79:23", + "nodeType": "YulExpressionStatement", + "src": "8437:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8410:7:23", + "nodeType": "YulIdentifier", + "src": "8410:7:23" + }, + { + "name": "headStart", + "nativeSrc": "8419:9:23", + "nodeType": "YulIdentifier", + "src": "8419:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8406:3:23", + "nodeType": "YulIdentifier", + "src": "8406:3:23" + }, + "nativeSrc": "8406:23:23", + "nodeType": "YulFunctionCall", + "src": "8406:23:23" + }, + { + "kind": "number", + "nativeSrc": "8431:2:23", + "nodeType": "YulLiteral", + "src": "8431:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8402:3:23", + "nodeType": "YulIdentifier", + "src": "8402:3:23" + }, + "nativeSrc": "8402:32:23", + "nodeType": "YulFunctionCall", + "src": "8402:32:23" + }, + "nativeSrc": "8399:119:23", + "nodeType": "YulIf", + "src": "8399:119:23" + }, + { + "nativeSrc": "8528:287:23", + "nodeType": "YulBlock", + "src": "8528:287:23", + "statements": [ + { + "nativeSrc": "8543:45:23", + "nodeType": "YulVariableDeclaration", + "src": "8543:45:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8574:9:23", + "nodeType": "YulIdentifier", + "src": "8574:9:23" + }, + { + "kind": "number", + "nativeSrc": "8585:1:23", + "nodeType": "YulLiteral", + "src": "8585:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8570:3:23", + "nodeType": "YulIdentifier", + "src": "8570:3:23" + }, + "nativeSrc": "8570:17:23", + "nodeType": "YulFunctionCall", + "src": "8570:17:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8557:12:23", + "nodeType": "YulIdentifier", + "src": "8557:12:23" + }, + "nativeSrc": "8557:31:23", + "nodeType": "YulFunctionCall", + "src": "8557:31:23" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8547:6:23", + "nodeType": "YulTypedName", + "src": "8547:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8635:83:23", + "nodeType": "YulBlock", + "src": "8635:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "8637:77:23", + "nodeType": "YulIdentifier", + "src": "8637:77:23" + }, + "nativeSrc": "8637:79:23", + "nodeType": "YulFunctionCall", + "src": "8637:79:23" + }, + "nativeSrc": "8637:79:23", + "nodeType": "YulExpressionStatement", + "src": "8637:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8607:6:23", + "nodeType": "YulIdentifier", + "src": "8607:6:23" + }, + { + "kind": "number", + "nativeSrc": "8615:18:23", + "nodeType": "YulLiteral", + "src": "8615:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8604:2:23", + "nodeType": "YulIdentifier", + "src": "8604:2:23" + }, + "nativeSrc": "8604:30:23", + "nodeType": "YulFunctionCall", + "src": "8604:30:23" + }, + "nativeSrc": "8601:117:23", + "nodeType": "YulIf", + "src": "8601:117:23" + }, + { + "nativeSrc": "8732:73:23", + "nodeType": "YulAssignment", + "src": "8732:73:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8777:9:23", + "nodeType": "YulIdentifier", + "src": "8777:9:23" + }, + { + "name": "offset", + "nativeSrc": "8788:6:23", + "nodeType": "YulIdentifier", + "src": "8788:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8773:3:23", + "nodeType": "YulIdentifier", + "src": "8773:3:23" + }, + "nativeSrc": "8773:22:23", + "nodeType": "YulFunctionCall", + "src": "8773:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "8797:7:23", + "nodeType": "YulIdentifier", + "src": "8797:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "8742:30:23", + "nodeType": "YulIdentifier", + "src": "8742:30:23" + }, + "nativeSrc": "8742:63:23", + "nodeType": "YulFunctionCall", + "src": "8742:63:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8732:6:23", + "nodeType": "YulIdentifier", + "src": "8732:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "8313:509:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8359:9:23", + "nodeType": "YulTypedName", + "src": "8359:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8370:7:23", + "nodeType": "YulTypedName", + "src": "8370:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8382:6:23", + "nodeType": "YulTypedName", + "src": "8382:6:23", + "type": "" + } + ], + "src": "8313:509:23" + }, + { + "body": { + "nativeSrc": "8868:76:23", + "nodeType": "YulBlock", + "src": "8868:76:23", + "statements": [ + { + "body": { + "nativeSrc": "8922:16:23", + "nodeType": "YulBlock", + "src": "8922:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8931:1:23", + "nodeType": "YulLiteral", + "src": "8931:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8934:1:23", + "nodeType": "YulLiteral", + "src": "8934:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8924:6:23", + "nodeType": "YulIdentifier", + "src": "8924:6:23" + }, + "nativeSrc": "8924:12:23", + "nodeType": "YulFunctionCall", + "src": "8924:12:23" + }, + "nativeSrc": "8924:12:23", + "nodeType": "YulExpressionStatement", + "src": "8924:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8891:5:23", + "nodeType": "YulIdentifier", + "src": "8891:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8913:5:23", + "nodeType": "YulIdentifier", + "src": "8913:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "8898:14:23", + "nodeType": "YulIdentifier", + "src": "8898:14:23" + }, + "nativeSrc": "8898:21:23", + "nodeType": "YulFunctionCall", + "src": "8898:21:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8888:2:23", + "nodeType": "YulIdentifier", + "src": "8888:2:23" + }, + "nativeSrc": "8888:32:23", + "nodeType": "YulFunctionCall", + "src": "8888:32:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8881:6:23", + "nodeType": "YulIdentifier", + "src": "8881:6:23" + }, + "nativeSrc": "8881:40:23", + "nodeType": "YulFunctionCall", + "src": "8881:40:23" + }, + "nativeSrc": "8878:60:23", + "nodeType": "YulIf", + "src": "8878:60:23" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "8828:116:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8861:5:23", + "nodeType": "YulTypedName", + "src": "8861:5:23", + "type": "" + } + ], + "src": "8828:116:23" + }, + { + "body": { + "nativeSrc": "8999:84:23", + "nodeType": "YulBlock", + "src": "8999:84:23", + "statements": [ + { + "nativeSrc": "9009:29:23", + "nodeType": "YulAssignment", + "src": "9009:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9031:6:23", + "nodeType": "YulIdentifier", + "src": "9031:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9018:12:23", + "nodeType": "YulIdentifier", + "src": "9018:12:23" + }, + "nativeSrc": "9018:20:23", + "nodeType": "YulFunctionCall", + "src": "9018:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9009:5:23", + "nodeType": "YulIdentifier", + "src": "9009:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9071:5:23", + "nodeType": "YulIdentifier", + "src": "9071:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "9047:23:23", + "nodeType": "YulIdentifier", + "src": "9047:23:23" + }, + "nativeSrc": "9047:30:23", + "nodeType": "YulFunctionCall", + "src": "9047:30:23" + }, + "nativeSrc": "9047:30:23", + "nodeType": "YulExpressionStatement", + "src": "9047:30:23" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "8950:133:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8977:6:23", + "nodeType": "YulTypedName", + "src": "8977:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8985:3:23", + "nodeType": "YulTypedName", + "src": "8985:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "8993:5:23", + "nodeType": "YulTypedName", + "src": "8993:5:23", + "type": "" + } + ], + "src": "8950:133:23" + }, + { + "body": { + "nativeSrc": "9169:388:23", + "nodeType": "YulBlock", + "src": "9169:388:23", + "statements": [ + { + "body": { + "nativeSrc": "9215:83:23", + "nodeType": "YulBlock", + "src": "9215:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9217:77:23", + "nodeType": "YulIdentifier", + "src": "9217:77:23" + }, + "nativeSrc": "9217:79:23", + "nodeType": "YulFunctionCall", + "src": "9217:79:23" + }, + "nativeSrc": "9217:79:23", + "nodeType": "YulExpressionStatement", + "src": "9217:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9190:7:23", + "nodeType": "YulIdentifier", + "src": "9190:7:23" + }, + { + "name": "headStart", + "nativeSrc": "9199:9:23", + "nodeType": "YulIdentifier", + "src": "9199:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9186:3:23", + "nodeType": "YulIdentifier", + "src": "9186:3:23" + }, + "nativeSrc": "9186:23:23", + "nodeType": "YulFunctionCall", + "src": "9186:23:23" + }, + { + "kind": "number", + "nativeSrc": "9211:2:23", + "nodeType": "YulLiteral", + "src": "9211:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9182:3:23", + "nodeType": "YulIdentifier", + "src": "9182:3:23" + }, + "nativeSrc": "9182:32:23", + "nodeType": "YulFunctionCall", + "src": "9182:32:23" + }, + "nativeSrc": "9179:119:23", + "nodeType": "YulIf", + "src": "9179:119:23" + }, + { + "nativeSrc": "9308:117:23", + "nodeType": "YulBlock", + "src": "9308:117:23", + "statements": [ + { + "nativeSrc": "9323:15:23", + "nodeType": "YulVariableDeclaration", + "src": "9323:15:23", + "value": { + "kind": "number", + "nativeSrc": "9337:1:23", + "nodeType": "YulLiteral", + "src": "9337:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9327:6:23", + "nodeType": "YulTypedName", + "src": "9327:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "9352:63:23", + "nodeType": "YulAssignment", + "src": "9352:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9387:9:23", + "nodeType": "YulIdentifier", + "src": "9387:9:23" + }, + { + "name": "offset", + "nativeSrc": "9398:6:23", + "nodeType": "YulIdentifier", + "src": "9398:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9383:3:23", + "nodeType": "YulIdentifier", + "src": "9383:3:23" + }, + "nativeSrc": "9383:22:23", + "nodeType": "YulFunctionCall", + "src": "9383:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "9407:7:23", + "nodeType": "YulIdentifier", + "src": "9407:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9362:20:23", + "nodeType": "YulIdentifier", + "src": "9362:20:23" + }, + "nativeSrc": "9362:53:23", + "nodeType": "YulFunctionCall", + "src": "9362:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9352:6:23", + "nodeType": "YulIdentifier", + "src": "9352:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "9435:115:23", + "nodeType": "YulBlock", + "src": "9435:115:23", + "statements": [ + { + "nativeSrc": "9450:16:23", + "nodeType": "YulVariableDeclaration", + "src": "9450:16:23", + "value": { + "kind": "number", + "nativeSrc": "9464:2:23", + "nodeType": "YulLiteral", + "src": "9464:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9454:6:23", + "nodeType": "YulTypedName", + "src": "9454:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "9480:60:23", + "nodeType": "YulAssignment", + "src": "9480:60:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9512:9:23", + "nodeType": "YulIdentifier", + "src": "9512:9:23" + }, + { + "name": "offset", + "nativeSrc": "9523:6:23", + "nodeType": "YulIdentifier", + "src": "9523:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9508:3:23", + "nodeType": "YulIdentifier", + "src": "9508:3:23" + }, + "nativeSrc": "9508:22:23", + "nodeType": "YulFunctionCall", + "src": "9508:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "9532:7:23", + "nodeType": "YulIdentifier", + "src": "9532:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "9490:17:23", + "nodeType": "YulIdentifier", + "src": "9490:17:23" + }, + "nativeSrc": "9490:50:23", + "nodeType": "YulFunctionCall", + "src": "9490:50:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9480:6:23", + "nodeType": "YulIdentifier", + "src": "9480:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "9089:468:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9131:9:23", + "nodeType": "YulTypedName", + "src": "9131:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9142:7:23", + "nodeType": "YulTypedName", + "src": "9142:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9154:6:23", + "nodeType": "YulTypedName", + "src": "9154:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9162:6:23", + "nodeType": "YulTypedName", + "src": "9162:6:23", + "type": "" + } + ], + "src": "9089:468:23" + }, + { + "body": { + "nativeSrc": "9629:241:23", + "nodeType": "YulBlock", + "src": "9629:241:23", + "statements": [ + { + "body": { + "nativeSrc": "9734:22:23", + "nodeType": "YulBlock", + "src": "9734:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "9736:16:23", + "nodeType": "YulIdentifier", + "src": "9736:16:23" + }, + "nativeSrc": "9736:18:23", + "nodeType": "YulFunctionCall", + "src": "9736:18:23" + }, + "nativeSrc": "9736:18:23", + "nodeType": "YulExpressionStatement", + "src": "9736:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9706:6:23", + "nodeType": "YulIdentifier", + "src": "9706:6:23" + }, + { + "kind": "number", + "nativeSrc": "9714:18:23", + "nodeType": "YulLiteral", + "src": "9714:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9703:2:23", + "nodeType": "YulIdentifier", + "src": "9703:2:23" + }, + "nativeSrc": "9703:30:23", + "nodeType": "YulFunctionCall", + "src": "9703:30:23" + }, + "nativeSrc": "9700:56:23", + "nodeType": "YulIf", + "src": "9700:56:23" + }, + { + "nativeSrc": "9766:37:23", + "nodeType": "YulAssignment", + "src": "9766:37:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9796:6:23", + "nodeType": "YulIdentifier", + "src": "9796:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "9774:21:23", + "nodeType": "YulIdentifier", + "src": "9774:21:23" + }, + "nativeSrc": "9774:29:23", + "nodeType": "YulFunctionCall", + "src": "9774:29:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9766:4:23", + "nodeType": "YulIdentifier", + "src": "9766:4:23" + } + ] + }, + { + "nativeSrc": "9840:23:23", + "nodeType": "YulAssignment", + "src": "9840:23:23", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "9852:4:23", + "nodeType": "YulIdentifier", + "src": "9852:4:23" + }, + { + "kind": "number", + "nativeSrc": "9858:4:23", + "nodeType": "YulLiteral", + "src": "9858:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9848:3:23", + "nodeType": "YulIdentifier", + "src": "9848:3:23" + }, + "nativeSrc": "9848:15:23", + "nodeType": "YulFunctionCall", + "src": "9848:15:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9840:4:23", + "nodeType": "YulIdentifier", + "src": "9840:4:23" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9563:307:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "9613:6:23", + "nodeType": "YulTypedName", + "src": "9613:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "9624:4:23", + "nodeType": "YulTypedName", + "src": "9624:4:23", + "type": "" + } + ], + "src": "9563:307:23" + }, + { + "body": { + "nativeSrc": "9959:340:23", + "nodeType": "YulBlock", + "src": "9959:340:23", + "statements": [ + { + "nativeSrc": "9969:74:23", + "nodeType": "YulAssignment", + "src": "9969:74:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "10035:6:23", + "nodeType": "YulIdentifier", + "src": "10035:6:23" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9994:40:23", + "nodeType": "YulIdentifier", + "src": "9994:40:23" + }, + "nativeSrc": "9994:48:23", + "nodeType": "YulFunctionCall", + "src": "9994:48:23" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9978:15:23", + "nodeType": "YulIdentifier", + "src": "9978:15:23" + }, + "nativeSrc": "9978:65:23", + "nodeType": "YulFunctionCall", + "src": "9978:65:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9969:5:23", + "nodeType": "YulIdentifier", + "src": "9969:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10059:5:23", + "nodeType": "YulIdentifier", + "src": "10059:5:23" + }, + { + "name": "length", + "nativeSrc": "10066:6:23", + "nodeType": "YulIdentifier", + "src": "10066:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10052:6:23", + "nodeType": "YulIdentifier", + "src": "10052:6:23" + }, + "nativeSrc": "10052:21:23", + "nodeType": "YulFunctionCall", + "src": "10052:21:23" + }, + "nativeSrc": "10052:21:23", + "nodeType": "YulExpressionStatement", + "src": "10052:21:23" + }, + { + "nativeSrc": "10082:27:23", + "nodeType": "YulVariableDeclaration", + "src": "10082:27:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10097:5:23", + "nodeType": "YulIdentifier", + "src": "10097:5:23" + }, + { + "kind": "number", + "nativeSrc": "10104:4:23", + "nodeType": "YulLiteral", + "src": "10104:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10093:3:23", + "nodeType": "YulIdentifier", + "src": "10093:3:23" + }, + "nativeSrc": "10093:16:23", + "nodeType": "YulFunctionCall", + "src": "10093:16:23" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "10086:3:23", + "nodeType": "YulTypedName", + "src": "10086:3:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10147:83:23", + "nodeType": "YulBlock", + "src": "10147:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "10149:77:23", + "nodeType": "YulIdentifier", + "src": "10149:77:23" + }, + "nativeSrc": "10149:79:23", + "nodeType": "YulFunctionCall", + "src": "10149:79:23" + }, + "nativeSrc": "10149:79:23", + "nodeType": "YulExpressionStatement", + "src": "10149:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "10128:3:23", + "nodeType": "YulIdentifier", + "src": "10128:3:23" + }, + { + "name": "length", + "nativeSrc": "10133:6:23", + "nodeType": "YulIdentifier", + "src": "10133:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10124:3:23", + "nodeType": "YulIdentifier", + "src": "10124:3:23" + }, + "nativeSrc": "10124:16:23", + "nodeType": "YulFunctionCall", + "src": "10124:16:23" + }, + { + "name": "end", + "nativeSrc": "10142:3:23", + "nodeType": "YulIdentifier", + "src": "10142:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10121:2:23", + "nodeType": "YulIdentifier", + "src": "10121:2:23" + }, + "nativeSrc": "10121:25:23", + "nodeType": "YulFunctionCall", + "src": "10121:25:23" + }, + "nativeSrc": "10118:112:23", + "nodeType": "YulIf", + "src": "10118:112:23" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "10276:3:23", + "nodeType": "YulIdentifier", + "src": "10276:3:23" + }, + { + "name": "dst", + "nativeSrc": "10281:3:23", + "nodeType": "YulIdentifier", + "src": "10281:3:23" + }, + { + "name": "length", + "nativeSrc": "10286:6:23", + "nodeType": "YulIdentifier", + "src": "10286:6:23" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "10239:36:23", + "nodeType": "YulIdentifier", + "src": "10239:36:23" + }, + "nativeSrc": "10239:54:23", + "nodeType": "YulFunctionCall", + "src": "10239:54:23" + }, + "nativeSrc": "10239:54:23", + "nodeType": "YulExpressionStatement", + "src": "10239:54:23" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9876:423:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "9932:3:23", + "nodeType": "YulTypedName", + "src": "9932:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9937:6:23", + "nodeType": "YulTypedName", + "src": "9937:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9945:3:23", + "nodeType": "YulTypedName", + "src": "9945:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9953:5:23", + "nodeType": "YulTypedName", + "src": "9953:5:23", + "type": "" + } + ], + "src": "9876:423:23" + }, + { + "body": { + "nativeSrc": "10379:277:23", + "nodeType": "YulBlock", + "src": "10379:277:23", + "statements": [ + { + "body": { + "nativeSrc": "10428:83:23", + "nodeType": "YulBlock", + "src": "10428:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "10430:77:23", + "nodeType": "YulIdentifier", + "src": "10430:77:23" + }, + "nativeSrc": "10430:79:23", + "nodeType": "YulFunctionCall", + "src": "10430:79:23" + }, + "nativeSrc": "10430:79:23", + "nodeType": "YulExpressionStatement", + "src": "10430:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10407:6:23", + "nodeType": "YulIdentifier", + "src": "10407:6:23" + }, + { + "kind": "number", + "nativeSrc": "10415:4:23", + "nodeType": "YulLiteral", + "src": "10415:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10403:3:23", + "nodeType": "YulIdentifier", + "src": "10403:3:23" + }, + "nativeSrc": "10403:17:23", + "nodeType": "YulFunctionCall", + "src": "10403:17:23" + }, + { + "name": "end", + "nativeSrc": "10422:3:23", + "nodeType": "YulIdentifier", + "src": "10422:3:23" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10399:3:23", + "nodeType": "YulIdentifier", + "src": "10399:3:23" + }, + "nativeSrc": "10399:27:23", + "nodeType": "YulFunctionCall", + "src": "10399:27:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10392:6:23", + "nodeType": "YulIdentifier", + "src": "10392:6:23" + }, + "nativeSrc": "10392:35:23", + "nodeType": "YulFunctionCall", + "src": "10392:35:23" + }, + "nativeSrc": "10389:122:23", + "nodeType": "YulIf", + "src": "10389:122:23" + }, + { + "nativeSrc": "10520:34:23", + "nodeType": "YulVariableDeclaration", + "src": "10520:34:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10547:6:23", + "nodeType": "YulIdentifier", + "src": "10547:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10534:12:23", + "nodeType": "YulIdentifier", + "src": "10534:12:23" + }, + "nativeSrc": "10534:20:23", + "nodeType": "YulFunctionCall", + "src": "10534:20:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10524:6:23", + "nodeType": "YulTypedName", + "src": "10524:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "10563:87:23", + "nodeType": "YulAssignment", + "src": "10563:87:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10623:6:23", + "nodeType": "YulIdentifier", + "src": "10623:6:23" + }, + { + "kind": "number", + "nativeSrc": "10631:4:23", + "nodeType": "YulLiteral", + "src": "10631:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10619:3:23", + "nodeType": "YulIdentifier", + "src": "10619:3:23" + }, + "nativeSrc": "10619:17:23", + "nodeType": "YulFunctionCall", + "src": "10619:17:23" + }, + { + "name": "length", + "nativeSrc": "10638:6:23", + "nodeType": "YulIdentifier", + "src": "10638:6:23" + }, + { + "name": "end", + "nativeSrc": "10646:3:23", + "nodeType": "YulIdentifier", + "src": "10646:3:23" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "10572:46:23", + "nodeType": "YulIdentifier", + "src": "10572:46:23" + }, + "nativeSrc": "10572:78:23", + "nodeType": "YulFunctionCall", + "src": "10572:78:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "10563:5:23", + "nodeType": "YulIdentifier", + "src": "10563:5:23" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "10318:338:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "10357:6:23", + "nodeType": "YulTypedName", + "src": "10357:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "10365:3:23", + "nodeType": "YulTypedName", + "src": "10365:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "10373:5:23", + "nodeType": "YulTypedName", + "src": "10373:5:23", + "type": "" + } + ], + "src": "10318:338:23" + }, + { + "body": { + "nativeSrc": "10788:817:23", + "nodeType": "YulBlock", + "src": "10788:817:23", + "statements": [ + { + "body": { + "nativeSrc": "10835:83:23", + "nodeType": "YulBlock", + "src": "10835:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10837:77:23", + "nodeType": "YulIdentifier", + "src": "10837:77:23" + }, + "nativeSrc": "10837:79:23", + "nodeType": "YulFunctionCall", + "src": "10837:79:23" + }, + "nativeSrc": "10837:79:23", + "nodeType": "YulExpressionStatement", + "src": "10837:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10809:7:23", + "nodeType": "YulIdentifier", + "src": "10809:7:23" + }, + { + "name": "headStart", + "nativeSrc": "10818:9:23", + "nodeType": "YulIdentifier", + "src": "10818:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10805:3:23", + "nodeType": "YulIdentifier", + "src": "10805:3:23" + }, + "nativeSrc": "10805:23:23", + "nodeType": "YulFunctionCall", + "src": "10805:23:23" + }, + { + "kind": "number", + "nativeSrc": "10830:3:23", + "nodeType": "YulLiteral", + "src": "10830:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10801:3:23", + "nodeType": "YulIdentifier", + "src": "10801:3:23" + }, + "nativeSrc": "10801:33:23", + "nodeType": "YulFunctionCall", + "src": "10801:33:23" + }, + "nativeSrc": "10798:120:23", + "nodeType": "YulIf", + "src": "10798:120:23" + }, + { + "nativeSrc": "10928:117:23", + "nodeType": "YulBlock", + "src": "10928:117:23", + "statements": [ + { + "nativeSrc": "10943:15:23", + "nodeType": "YulVariableDeclaration", + "src": "10943:15:23", + "value": { + "kind": "number", + "nativeSrc": "10957:1:23", + "nodeType": "YulLiteral", + "src": "10957:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10947:6:23", + "nodeType": "YulTypedName", + "src": "10947:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "10972:63:23", + "nodeType": "YulAssignment", + "src": "10972:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11007:9:23", + "nodeType": "YulIdentifier", + "src": "11007:9:23" + }, + { + "name": "offset", + "nativeSrc": "11018:6:23", + "nodeType": "YulIdentifier", + "src": "11018:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11003:3:23", + "nodeType": "YulIdentifier", + "src": "11003:3:23" + }, + "nativeSrc": "11003:22:23", + "nodeType": "YulFunctionCall", + "src": "11003:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11027:7:23", + "nodeType": "YulIdentifier", + "src": "11027:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10982:20:23", + "nodeType": "YulIdentifier", + "src": "10982:20:23" + }, + "nativeSrc": "10982:53:23", + "nodeType": "YulFunctionCall", + "src": "10982:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10972:6:23", + "nodeType": "YulIdentifier", + "src": "10972:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11055:118:23", + "nodeType": "YulBlock", + "src": "11055:118:23", + "statements": [ + { + "nativeSrc": "11070:16:23", + "nodeType": "YulVariableDeclaration", + "src": "11070:16:23", + "value": { + "kind": "number", + "nativeSrc": "11084:2:23", + "nodeType": "YulLiteral", + "src": "11084:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11074:6:23", + "nodeType": "YulTypedName", + "src": "11074:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "11100:63:23", + "nodeType": "YulAssignment", + "src": "11100:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11135:9:23", + "nodeType": "YulIdentifier", + "src": "11135:9:23" + }, + { + "name": "offset", + "nativeSrc": "11146:6:23", + "nodeType": "YulIdentifier", + "src": "11146:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11131:3:23", + "nodeType": "YulIdentifier", + "src": "11131:3:23" + }, + "nativeSrc": "11131:22:23", + "nodeType": "YulFunctionCall", + "src": "11131:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11155:7:23", + "nodeType": "YulIdentifier", + "src": "11155:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11110:20:23", + "nodeType": "YulIdentifier", + "src": "11110:20:23" + }, + "nativeSrc": "11110:53:23", + "nodeType": "YulFunctionCall", + "src": "11110:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11100:6:23", + "nodeType": "YulIdentifier", + "src": "11100:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11183:118:23", + "nodeType": "YulBlock", + "src": "11183:118:23", + "statements": [ + { + "nativeSrc": "11198:16:23", + "nodeType": "YulVariableDeclaration", + "src": "11198:16:23", + "value": { + "kind": "number", + "nativeSrc": "11212:2:23", + "nodeType": "YulLiteral", + "src": "11212:2:23", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11202:6:23", + "nodeType": "YulTypedName", + "src": "11202:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "11228:63:23", + "nodeType": "YulAssignment", + "src": "11228:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11263:9:23", + "nodeType": "YulIdentifier", + "src": "11263:9:23" + }, + { + "name": "offset", + "nativeSrc": "11274:6:23", + "nodeType": "YulIdentifier", + "src": "11274:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11259:3:23", + "nodeType": "YulIdentifier", + "src": "11259:3:23" + }, + "nativeSrc": "11259:22:23", + "nodeType": "YulFunctionCall", + "src": "11259:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11283:7:23", + "nodeType": "YulIdentifier", + "src": "11283:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "11238:20:23", + "nodeType": "YulIdentifier", + "src": "11238:20:23" + }, + "nativeSrc": "11238:53:23", + "nodeType": "YulFunctionCall", + "src": "11238:53:23" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11228:6:23", + "nodeType": "YulIdentifier", + "src": "11228:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11311:287:23", + "nodeType": "YulBlock", + "src": "11311:287:23", + "statements": [ + { + "nativeSrc": "11326:46:23", + "nodeType": "YulVariableDeclaration", + "src": "11326:46:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11357:9:23", + "nodeType": "YulIdentifier", + "src": "11357:9:23" + }, + { + "kind": "number", + "nativeSrc": "11368:2:23", + "nodeType": "YulLiteral", + "src": "11368:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11353:3:23", + "nodeType": "YulIdentifier", + "src": "11353:3:23" + }, + "nativeSrc": "11353:18:23", + "nodeType": "YulFunctionCall", + "src": "11353:18:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11340:12:23", + "nodeType": "YulIdentifier", + "src": "11340:12:23" + }, + "nativeSrc": "11340:32:23", + "nodeType": "YulFunctionCall", + "src": "11340:32:23" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11330:6:23", + "nodeType": "YulTypedName", + "src": "11330:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11419:83:23", + "nodeType": "YulBlock", + "src": "11419:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "11421:77:23", + "nodeType": "YulIdentifier", + "src": "11421:77:23" + }, + "nativeSrc": "11421:79:23", + "nodeType": "YulFunctionCall", + "src": "11421:79:23" + }, + "nativeSrc": "11421:79:23", + "nodeType": "YulExpressionStatement", + "src": "11421:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11391:6:23", + "nodeType": "YulIdentifier", + "src": "11391:6:23" + }, + { + "kind": "number", + "nativeSrc": "11399:18:23", + "nodeType": "YulLiteral", + "src": "11399:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11388:2:23", + "nodeType": "YulIdentifier", + "src": "11388:2:23" + }, + "nativeSrc": "11388:30:23", + "nodeType": "YulFunctionCall", + "src": "11388:30:23" + }, + "nativeSrc": "11385:117:23", + "nodeType": "YulIf", + "src": "11385:117:23" + }, + { + "nativeSrc": "11516:72:23", + "nodeType": "YulAssignment", + "src": "11516:72:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11560:9:23", + "nodeType": "YulIdentifier", + "src": "11560:9:23" + }, + { + "name": "offset", + "nativeSrc": "11571:6:23", + "nodeType": "YulIdentifier", + "src": "11571:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11556:3:23", + "nodeType": "YulIdentifier", + "src": "11556:3:23" + }, + "nativeSrc": "11556:22:23", + "nodeType": "YulFunctionCall", + "src": "11556:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11580:7:23", + "nodeType": "YulIdentifier", + "src": "11580:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11526:29:23", + "nodeType": "YulIdentifier", + "src": "11526:29:23" + }, + "nativeSrc": "11526:62:23", + "nodeType": "YulFunctionCall", + "src": "11526:62:23" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "11516:6:23", + "nodeType": "YulIdentifier", + "src": "11516:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "10662:943:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10734:9:23", + "nodeType": "YulTypedName", + "src": "10734:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10745:7:23", + "nodeType": "YulTypedName", + "src": "10745:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10757:6:23", + "nodeType": "YulTypedName", + "src": "10757:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10765:6:23", + "nodeType": "YulTypedName", + "src": "10765:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10773:6:23", + "nodeType": "YulTypedName", + "src": "10773:6:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "10781:6:23", + "nodeType": "YulTypedName", + "src": "10781:6:23", + "type": "" + } + ], + "src": "10662:943:23" + }, + { + "body": { + "nativeSrc": "11694:391:23", + "nodeType": "YulBlock", + "src": "11694:391:23", + "statements": [ + { + "body": { + "nativeSrc": "11740:83:23", + "nodeType": "YulBlock", + "src": "11740:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11742:77:23", + "nodeType": "YulIdentifier", + "src": "11742:77:23" + }, + "nativeSrc": "11742:79:23", + "nodeType": "YulFunctionCall", + "src": "11742:79:23" + }, + "nativeSrc": "11742:79:23", + "nodeType": "YulExpressionStatement", + "src": "11742:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11715:7:23", + "nodeType": "YulIdentifier", + "src": "11715:7:23" + }, + { + "name": "headStart", + "nativeSrc": "11724:9:23", + "nodeType": "YulIdentifier", + "src": "11724:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11711:3:23", + "nodeType": "YulIdentifier", + "src": "11711:3:23" + }, + "nativeSrc": "11711:23:23", + "nodeType": "YulFunctionCall", + "src": "11711:23:23" + }, + { + "kind": "number", + "nativeSrc": "11736:2:23", + "nodeType": "YulLiteral", + "src": "11736:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11707:3:23", + "nodeType": "YulIdentifier", + "src": "11707:3:23" + }, + "nativeSrc": "11707:32:23", + "nodeType": "YulFunctionCall", + "src": "11707:32:23" + }, + "nativeSrc": "11704:119:23", + "nodeType": "YulIf", + "src": "11704:119:23" + }, + { + "nativeSrc": "11833:117:23", + "nodeType": "YulBlock", + "src": "11833:117:23", + "statements": [ + { + "nativeSrc": "11848:15:23", + "nodeType": "YulVariableDeclaration", + "src": "11848:15:23", + "value": { + "kind": "number", + "nativeSrc": "11862:1:23", + "nodeType": "YulLiteral", + "src": "11862:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11852:6:23", + "nodeType": "YulTypedName", + "src": "11852:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "11877:63:23", + "nodeType": "YulAssignment", + "src": "11877:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11912:9:23", + "nodeType": "YulIdentifier", + "src": "11912:9:23" + }, + { + "name": "offset", + "nativeSrc": "11923:6:23", + "nodeType": "YulIdentifier", + "src": "11923:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11908:3:23", + "nodeType": "YulIdentifier", + "src": "11908:3:23" + }, + "nativeSrc": "11908:22:23", + "nodeType": "YulFunctionCall", + "src": "11908:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11932:7:23", + "nodeType": "YulIdentifier", + "src": "11932:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11887:20:23", + "nodeType": "YulIdentifier", + "src": "11887:20:23" + }, + "nativeSrc": "11887:53:23", + "nodeType": "YulFunctionCall", + "src": "11887:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11877:6:23", + "nodeType": "YulIdentifier", + "src": "11877:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11960:118:23", + "nodeType": "YulBlock", + "src": "11960:118:23", + "statements": [ + { + "nativeSrc": "11975:16:23", + "nodeType": "YulVariableDeclaration", + "src": "11975:16:23", + "value": { + "kind": "number", + "nativeSrc": "11989:2:23", + "nodeType": "YulLiteral", + "src": "11989:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11979:6:23", + "nodeType": "YulTypedName", + "src": "11979:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "12005:63:23", + "nodeType": "YulAssignment", + "src": "12005:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12040:9:23", + "nodeType": "YulIdentifier", + "src": "12040:9:23" + }, + { + "name": "offset", + "nativeSrc": "12051:6:23", + "nodeType": "YulIdentifier", + "src": "12051:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12036:3:23", + "nodeType": "YulIdentifier", + "src": "12036:3:23" + }, + "nativeSrc": "12036:22:23", + "nodeType": "YulFunctionCall", + "src": "12036:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "12060:7:23", + "nodeType": "YulIdentifier", + "src": "12060:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12015:20:23", + "nodeType": "YulIdentifier", + "src": "12015:20:23" + }, + "nativeSrc": "12015:53:23", + "nodeType": "YulFunctionCall", + "src": "12015:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12005:6:23", + "nodeType": "YulIdentifier", + "src": "12005:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "11611:474:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11656:9:23", + "nodeType": "YulTypedName", + "src": "11656:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11667:7:23", + "nodeType": "YulTypedName", + "src": "11667:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11679:6:23", + "nodeType": "YulTypedName", + "src": "11679:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11687:6:23", + "nodeType": "YulTypedName", + "src": "11687:6:23", + "type": "" + } + ], + "src": "11611:474:23" + }, + { + "body": { + "nativeSrc": "12119:152:23", + "nodeType": "YulBlock", + "src": "12119:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12136:1:23", + "nodeType": "YulLiteral", + "src": "12136:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12139:77:23", + "nodeType": "YulLiteral", + "src": "12139:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12129:6:23", + "nodeType": "YulIdentifier", + "src": "12129:6:23" + }, + "nativeSrc": "12129:88:23", + "nodeType": "YulFunctionCall", + "src": "12129:88:23" + }, + "nativeSrc": "12129:88:23", + "nodeType": "YulExpressionStatement", + "src": "12129:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12233:1:23", + "nodeType": "YulLiteral", + "src": "12233:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12236:4:23", + "nodeType": "YulLiteral", + "src": "12236:4:23", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12226:6:23", + "nodeType": "YulIdentifier", + "src": "12226:6:23" + }, + "nativeSrc": "12226:15:23", + "nodeType": "YulFunctionCall", + "src": "12226:15:23" + }, + "nativeSrc": "12226:15:23", + "nodeType": "YulExpressionStatement", + "src": "12226:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12257:1:23", + "nodeType": "YulLiteral", + "src": "12257:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12260:4:23", + "nodeType": "YulLiteral", + "src": "12260:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12250:6:23", + "nodeType": "YulIdentifier", + "src": "12250:6:23" + }, + "nativeSrc": "12250:15:23", + "nodeType": "YulFunctionCall", + "src": "12250:15:23" + }, + "nativeSrc": "12250:15:23", + "nodeType": "YulExpressionStatement", + "src": "12250:15:23" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "12091:180:23", + "nodeType": "YulFunctionDefinition", + "src": "12091:180:23" + }, + { + "body": { + "nativeSrc": "12328:269:23", + "nodeType": "YulBlock", + "src": "12328:269:23", + "statements": [ + { + "nativeSrc": "12338:22:23", + "nodeType": "YulAssignment", + "src": "12338:22:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12352:4:23", + "nodeType": "YulIdentifier", + "src": "12352:4:23" + }, + { + "kind": "number", + "nativeSrc": "12358:1:23", + "nodeType": "YulLiteral", + "src": "12358:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "12348:3:23", + "nodeType": "YulIdentifier", + "src": "12348:3:23" + }, + "nativeSrc": "12348:12:23", + "nodeType": "YulFunctionCall", + "src": "12348:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12338:6:23", + "nodeType": "YulIdentifier", + "src": "12338:6:23" + } + ] + }, + { + "nativeSrc": "12369:38:23", + "nodeType": "YulVariableDeclaration", + "src": "12369:38:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12399:4:23", + "nodeType": "YulIdentifier", + "src": "12399:4:23" + }, + { + "kind": "number", + "nativeSrc": "12405:1:23", + "nodeType": "YulLiteral", + "src": "12405:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12395:3:23", + "nodeType": "YulIdentifier", + "src": "12395:3:23" + }, + "nativeSrc": "12395:12:23", + "nodeType": "YulFunctionCall", + "src": "12395:12:23" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12373:18:23", + "nodeType": "YulTypedName", + "src": "12373:18:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12446:51:23", + "nodeType": "YulBlock", + "src": "12446:51:23", + "statements": [ + { + "nativeSrc": "12460:27:23", + "nodeType": "YulAssignment", + "src": "12460:27:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12474:6:23", + "nodeType": "YulIdentifier", + "src": "12474:6:23" + }, + { + "kind": "number", + "nativeSrc": "12482:4:23", + "nodeType": "YulLiteral", + "src": "12482:4:23", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12470:3:23", + "nodeType": "YulIdentifier", + "src": "12470:3:23" + }, + "nativeSrc": "12470:17:23", + "nodeType": "YulFunctionCall", + "src": "12470:17:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12460:6:23", + "nodeType": "YulIdentifier", + "src": "12460:6:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12426:18:23", + "nodeType": "YulIdentifier", + "src": "12426:18:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12419:6:23", + "nodeType": "YulIdentifier", + "src": "12419:6:23" + }, + "nativeSrc": "12419:26:23", + "nodeType": "YulFunctionCall", + "src": "12419:26:23" + }, + "nativeSrc": "12416:81:23", + "nodeType": "YulIf", + "src": "12416:81:23" + }, + { + "body": { + "nativeSrc": "12549:42:23", + "nodeType": "YulBlock", + "src": "12549:42:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "12563:16:23", + "nodeType": "YulIdentifier", + "src": "12563:16:23" + }, + "nativeSrc": "12563:18:23", + "nodeType": "YulFunctionCall", + "src": "12563:18:23" + }, + "nativeSrc": "12563:18:23", + "nodeType": "YulExpressionStatement", + "src": "12563:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12513:18:23", + "nodeType": "YulIdentifier", + "src": "12513:18:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12536:6:23", + "nodeType": "YulIdentifier", + "src": "12536:6:23" + }, + { + "kind": "number", + "nativeSrc": "12544:2:23", + "nodeType": "YulLiteral", + "src": "12544:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12533:2:23", + "nodeType": "YulIdentifier", + "src": "12533:2:23" + }, + "nativeSrc": "12533:14:23", + "nodeType": "YulFunctionCall", + "src": "12533:14:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "12510:2:23", + "nodeType": "YulIdentifier", + "src": "12510:2:23" + }, + "nativeSrc": "12510:38:23", + "nodeType": "YulFunctionCall", + "src": "12510:38:23" + }, + "nativeSrc": "12507:84:23", + "nodeType": "YulIf", + "src": "12507:84:23" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "12277:320:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "12312:4:23", + "nodeType": "YulTypedName", + "src": "12312:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "12321:6:23", + "nodeType": "YulTypedName", + "src": "12321:6:23", + "type": "" + } + ], + "src": "12277:320:23" + }, + { + "body": { + "nativeSrc": "12709:73:23", + "nodeType": "YulBlock", + "src": "12709:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12731:6:23", + "nodeType": "YulIdentifier", + "src": "12731:6:23" + }, + { + "kind": "number", + "nativeSrc": "12739:1:23", + "nodeType": "YulLiteral", + "src": "12739:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12727:3:23", + "nodeType": "YulIdentifier", + "src": "12727:3:23" + }, + "nativeSrc": "12727:14:23", + "nodeType": "YulFunctionCall", + "src": "12727:14:23" + }, + { + "hexValue": "302e3030303120657468657220726571756972656420746f206d696e74", + "kind": "string", + "nativeSrc": "12743:31:23", + "nodeType": "YulLiteral", + "src": "12743:31:23", + "type": "", + "value": "0.0001 ether required to mint" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12720:6:23", + "nodeType": "YulIdentifier", + "src": "12720:6:23" + }, + "nativeSrc": "12720:55:23", + "nodeType": "YulFunctionCall", + "src": "12720:55:23" + }, + "nativeSrc": "12720:55:23", + "nodeType": "YulExpressionStatement", + "src": "12720:55:23" + } + ] + }, + "name": "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "nativeSrc": "12603:179:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "12701:6:23", + "nodeType": "YulTypedName", + "src": "12701:6:23", + "type": "" + } + ], + "src": "12603:179:23" + }, + { + "body": { + "nativeSrc": "12934:220:23", + "nodeType": "YulBlock", + "src": "12934:220:23", + "statements": [ + { + "nativeSrc": "12944:74:23", + "nodeType": "YulAssignment", + "src": "12944:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13010:3:23", + "nodeType": "YulIdentifier", + "src": "13010:3:23" + }, + { + "kind": "number", + "nativeSrc": "13015:2:23", + "nodeType": "YulLiteral", + "src": "13015:2:23", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "12951:58:23", + "nodeType": "YulIdentifier", + "src": "12951:58:23" + }, + "nativeSrc": "12951:67:23", + "nodeType": "YulFunctionCall", + "src": "12951:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12944:3:23", + "nodeType": "YulIdentifier", + "src": "12944:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13116:3:23", + "nodeType": "YulIdentifier", + "src": "13116:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "nativeSrc": "13027:88:23", + "nodeType": "YulIdentifier", + "src": "13027:88:23" + }, + "nativeSrc": "13027:93:23", + "nodeType": "YulFunctionCall", + "src": "13027:93:23" + }, + "nativeSrc": "13027:93:23", + "nodeType": "YulExpressionStatement", + "src": "13027:93:23" + }, + { + "nativeSrc": "13129:19:23", + "nodeType": "YulAssignment", + "src": "13129:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13140:3:23", + "nodeType": "YulIdentifier", + "src": "13140:3:23" + }, + { + "kind": "number", + "nativeSrc": "13145:2:23", + "nodeType": "YulLiteral", + "src": "13145:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13136:3:23", + "nodeType": "YulIdentifier", + "src": "13136:3:23" + }, + "nativeSrc": "13136:12:23", + "nodeType": "YulFunctionCall", + "src": "13136:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13129:3:23", + "nodeType": "YulIdentifier", + "src": "13129:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12788:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "12922:3:23", + "nodeType": "YulTypedName", + "src": "12922:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "12930:3:23", + "nodeType": "YulTypedName", + "src": "12930:3:23", + "type": "" + } + ], + "src": "12788:366:23" + }, + { + "body": { + "nativeSrc": "13331:248:23", + "nodeType": "YulBlock", + "src": "13331:248:23", + "statements": [ + { + "nativeSrc": "13341:26:23", + "nodeType": "YulAssignment", + "src": "13341:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13353:9:23", + "nodeType": "YulIdentifier", + "src": "13353:9:23" + }, + { + "kind": "number", + "nativeSrc": "13364:2:23", + "nodeType": "YulLiteral", + "src": "13364:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13349:3:23", + "nodeType": "YulIdentifier", + "src": "13349:3:23" + }, + "nativeSrc": "13349:18:23", + "nodeType": "YulFunctionCall", + "src": "13349:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13341:4:23", + "nodeType": "YulIdentifier", + "src": "13341:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13388:9:23", + "nodeType": "YulIdentifier", + "src": "13388:9:23" + }, + { + "kind": "number", + "nativeSrc": "13399:1:23", + "nodeType": "YulLiteral", + "src": "13399:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13384:3:23", + "nodeType": "YulIdentifier", + "src": "13384:3:23" + }, + "nativeSrc": "13384:17:23", + "nodeType": "YulFunctionCall", + "src": "13384:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13407:4:23", + "nodeType": "YulIdentifier", + "src": "13407:4:23" + }, + { + "name": "headStart", + "nativeSrc": "13413:9:23", + "nodeType": "YulIdentifier", + "src": "13413:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13403:3:23", + "nodeType": "YulIdentifier", + "src": "13403:3:23" + }, + "nativeSrc": "13403:20:23", + "nodeType": "YulFunctionCall", + "src": "13403:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13377:6:23", + "nodeType": "YulIdentifier", + "src": "13377:6:23" + }, + "nativeSrc": "13377:47:23", + "nodeType": "YulFunctionCall", + "src": "13377:47:23" + }, + "nativeSrc": "13377:47:23", + "nodeType": "YulExpressionStatement", + "src": "13377:47:23" + }, + { + "nativeSrc": "13433:139:23", + "nodeType": "YulAssignment", + "src": "13433:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13567:4:23", + "nodeType": "YulIdentifier", + "src": "13567:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13441:124:23", + "nodeType": "YulIdentifier", + "src": "13441:124:23" + }, + "nativeSrc": "13441:131:23", + "nodeType": "YulFunctionCall", + "src": "13441:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13433:4:23", + "nodeType": "YulIdentifier", + "src": "13433:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13160:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13311:9:23", + "nodeType": "YulTypedName", + "src": "13311:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13326:4:23", + "nodeType": "YulTypedName", + "src": "13326:4:23", + "type": "" + } + ], + "src": "13160:419:23" + }, + { + "body": { + "nativeSrc": "13691:69:23", + "nodeType": "YulBlock", + "src": "13691:69:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "13713:6:23", + "nodeType": "YulIdentifier", + "src": "13713:6:23" + }, + { + "kind": "number", + "nativeSrc": "13721:1:23", + "nodeType": "YulLiteral", + "src": "13721:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13709:3:23", + "nodeType": "YulIdentifier", + "src": "13709:3:23" + }, + "nativeSrc": "13709:14:23", + "nodeType": "YulFunctionCall", + "src": "13709:14:23" + }, + { + "hexValue": "6d696e7473207065722077616c6c6574206578636565646564", + "kind": "string", + "nativeSrc": "13725:27:23", + "nodeType": "YulLiteral", + "src": "13725:27:23", + "type": "", + "value": "mints per wallet exceeded" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13702:6:23", + "nodeType": "YulIdentifier", + "src": "13702:6:23" + }, + "nativeSrc": "13702:51:23", + "nodeType": "YulFunctionCall", + "src": "13702:51:23" + }, + "nativeSrc": "13702:51:23", + "nodeType": "YulExpressionStatement", + "src": "13702:51:23" + } + ] + }, + "name": "store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "nativeSrc": "13585:175:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "13683:6:23", + "nodeType": "YulTypedName", + "src": "13683:6:23", + "type": "" + } + ], + "src": "13585:175:23" + }, + { + "body": { + "nativeSrc": "13912:220:23", + "nodeType": "YulBlock", + "src": "13912:220:23", + "statements": [ + { + "nativeSrc": "13922:74:23", + "nodeType": "YulAssignment", + "src": "13922:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13988:3:23", + "nodeType": "YulIdentifier", + "src": "13988:3:23" + }, + { + "kind": "number", + "nativeSrc": "13993:2:23", + "nodeType": "YulLiteral", + "src": "13993:2:23", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13929:58:23", + "nodeType": "YulIdentifier", + "src": "13929:58:23" + }, + "nativeSrc": "13929:67:23", + "nodeType": "YulFunctionCall", + "src": "13929:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13922:3:23", + "nodeType": "YulIdentifier", + "src": "13922:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14094:3:23", + "nodeType": "YulIdentifier", + "src": "14094:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "nativeSrc": "14005:88:23", + "nodeType": "YulIdentifier", + "src": "14005:88:23" + }, + "nativeSrc": "14005:93:23", + "nodeType": "YulFunctionCall", + "src": "14005:93:23" + }, + "nativeSrc": "14005:93:23", + "nodeType": "YulExpressionStatement", + "src": "14005:93:23" + }, + { + "nativeSrc": "14107:19:23", + "nodeType": "YulAssignment", + "src": "14107:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14118:3:23", + "nodeType": "YulIdentifier", + "src": "14118:3:23" + }, + { + "kind": "number", + "nativeSrc": "14123:2:23", + "nodeType": "YulLiteral", + "src": "14123:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14114:3:23", + "nodeType": "YulIdentifier", + "src": "14114:3:23" + }, + "nativeSrc": "14114:12:23", + "nodeType": "YulFunctionCall", + "src": "14114:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14107:3:23", + "nodeType": "YulIdentifier", + "src": "14107:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13766:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13900:3:23", + "nodeType": "YulTypedName", + "src": "13900:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13908:3:23", + "nodeType": "YulTypedName", + "src": "13908:3:23", + "type": "" + } + ], + "src": "13766:366:23" + }, + { + "body": { + "nativeSrc": "14309:248:23", + "nodeType": "YulBlock", + "src": "14309:248:23", + "statements": [ + { + "nativeSrc": "14319:26:23", + "nodeType": "YulAssignment", + "src": "14319:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14331:9:23", + "nodeType": "YulIdentifier", + "src": "14331:9:23" + }, + { + "kind": "number", + "nativeSrc": "14342:2:23", + "nodeType": "YulLiteral", + "src": "14342:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14327:3:23", + "nodeType": "YulIdentifier", + "src": "14327:3:23" + }, + "nativeSrc": "14327:18:23", + "nodeType": "YulFunctionCall", + "src": "14327:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14319:4:23", + "nodeType": "YulIdentifier", + "src": "14319:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14366:9:23", + "nodeType": "YulIdentifier", + "src": "14366:9:23" + }, + { + "kind": "number", + "nativeSrc": "14377:1:23", + "nodeType": "YulLiteral", + "src": "14377:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14362:3:23", + "nodeType": "YulIdentifier", + "src": "14362:3:23" + }, + "nativeSrc": "14362:17:23", + "nodeType": "YulFunctionCall", + "src": "14362:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "14385:4:23", + "nodeType": "YulIdentifier", + "src": "14385:4:23" + }, + { + "name": "headStart", + "nativeSrc": "14391:9:23", + "nodeType": "YulIdentifier", + "src": "14391:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14381:3:23", + "nodeType": "YulIdentifier", + "src": "14381:3:23" + }, + "nativeSrc": "14381:20:23", + "nodeType": "YulFunctionCall", + "src": "14381:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14355:6:23", + "nodeType": "YulIdentifier", + "src": "14355:6:23" + }, + "nativeSrc": "14355:47:23", + "nodeType": "YulFunctionCall", + "src": "14355:47:23" + }, + "nativeSrc": "14355:47:23", + "nodeType": "YulExpressionStatement", + "src": "14355:47:23" + }, + { + "nativeSrc": "14411:139:23", + "nodeType": "YulAssignment", + "src": "14411:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "14545:4:23", + "nodeType": "YulIdentifier", + "src": "14545:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "14419:124:23", + "nodeType": "YulIdentifier", + "src": "14419:124:23" + }, + "nativeSrc": "14419:131:23", + "nodeType": "YulFunctionCall", + "src": "14419:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14411:4:23", + "nodeType": "YulIdentifier", + "src": "14411:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "14138:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14289:9:23", + "nodeType": "YulTypedName", + "src": "14289:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14304:4:23", + "nodeType": "YulTypedName", + "src": "14304:4:23", + "type": "" + } + ], + "src": "14138:419:23" + }, + { + "body": { + "nativeSrc": "14591:152:23", + "nodeType": "YulBlock", + "src": "14591:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14608:1:23", + "nodeType": "YulLiteral", + "src": "14608:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14611:77:23", + "nodeType": "YulLiteral", + "src": "14611:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14601:6:23", + "nodeType": "YulIdentifier", + "src": "14601:6:23" + }, + "nativeSrc": "14601:88:23", + "nodeType": "YulFunctionCall", + "src": "14601:88:23" + }, + "nativeSrc": "14601:88:23", + "nodeType": "YulExpressionStatement", + "src": "14601:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14705:1:23", + "nodeType": "YulLiteral", + "src": "14705:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "14708:4:23", + "nodeType": "YulLiteral", + "src": "14708:4:23", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14698:6:23", + "nodeType": "YulIdentifier", + "src": "14698:6:23" + }, + "nativeSrc": "14698:15:23", + "nodeType": "YulFunctionCall", + "src": "14698:15:23" + }, + "nativeSrc": "14698:15:23", + "nodeType": "YulExpressionStatement", + "src": "14698:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14729:1:23", + "nodeType": "YulLiteral", + "src": "14729:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14732:4:23", + "nodeType": "YulLiteral", + "src": "14732:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14722:6:23", + "nodeType": "YulIdentifier", + "src": "14722:6:23" + }, + "nativeSrc": "14722:15:23", + "nodeType": "YulFunctionCall", + "src": "14722:15:23" + }, + "nativeSrc": "14722:15:23", + "nodeType": "YulExpressionStatement", + "src": "14722:15:23" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "14563:180:23", + "nodeType": "YulFunctionDefinition", + "src": "14563:180:23" + }, + { + "body": { + "nativeSrc": "14793:147:23", + "nodeType": "YulBlock", + "src": "14793:147:23", + "statements": [ + { + "nativeSrc": "14803:25:23", + "nodeType": "YulAssignment", + "src": "14803:25:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "14826:1:23", + "nodeType": "YulIdentifier", + "src": "14826:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "14808:17:23", + "nodeType": "YulIdentifier", + "src": "14808:17:23" + }, + "nativeSrc": "14808:20:23", + "nodeType": "YulFunctionCall", + "src": "14808:20:23" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "14803:1:23", + "nodeType": "YulIdentifier", + "src": "14803:1:23" + } + ] + }, + { + "nativeSrc": "14837:25:23", + "nodeType": "YulAssignment", + "src": "14837:25:23", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "14860:1:23", + "nodeType": "YulIdentifier", + "src": "14860:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "14842:17:23", + "nodeType": "YulIdentifier", + "src": "14842:17:23" + }, + "nativeSrc": "14842:20:23", + "nodeType": "YulFunctionCall", + "src": "14842:20:23" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "14837:1:23", + "nodeType": "YulIdentifier", + "src": "14837:1:23" + } + ] + }, + { + "nativeSrc": "14871:16:23", + "nodeType": "YulAssignment", + "src": "14871:16:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "14882:1:23", + "nodeType": "YulIdentifier", + "src": "14882:1:23" + }, + { + "name": "y", + "nativeSrc": "14885:1:23", + "nodeType": "YulIdentifier", + "src": "14885:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14878:3:23", + "nodeType": "YulIdentifier", + "src": "14878:3:23" + }, + "nativeSrc": "14878:9:23", + "nodeType": "YulFunctionCall", + "src": "14878:9:23" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "14871:3:23", + "nodeType": "YulIdentifier", + "src": "14871:3:23" + } + ] + }, + { + "body": { + "nativeSrc": "14911:22:23", + "nodeType": "YulBlock", + "src": "14911:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "14913:16:23", + "nodeType": "YulIdentifier", + "src": "14913:16:23" + }, + "nativeSrc": "14913:18:23", + "nodeType": "YulFunctionCall", + "src": "14913:18:23" + }, + "nativeSrc": "14913:18:23", + "nodeType": "YulExpressionStatement", + "src": "14913:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "14903:1:23", + "nodeType": "YulIdentifier", + "src": "14903:1:23" + }, + { + "name": "sum", + "nativeSrc": "14906:3:23", + "nodeType": "YulIdentifier", + "src": "14906:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14900:2:23", + "nodeType": "YulIdentifier", + "src": "14900:2:23" + }, + "nativeSrc": "14900:10:23", + "nodeType": "YulFunctionCall", + "src": "14900:10:23" + }, + "nativeSrc": "14897:36:23", + "nodeType": "YulIf", + "src": "14897:36:23" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "14749:191:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "14780:1:23", + "nodeType": "YulTypedName", + "src": "14780:1:23", + "type": "" + }, + { + "name": "y", + "nativeSrc": "14783:1:23", + "nodeType": "YulTypedName", + "src": "14783:1:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "14789:3:23", + "nodeType": "YulTypedName", + "src": "14789:3:23", + "type": "" + } + ], + "src": "14749:191:23" + }, + { + "body": { + "nativeSrc": "15100:288:23", + "nodeType": "YulBlock", + "src": "15100:288:23", + "statements": [ + { + "nativeSrc": "15110:26:23", + "nodeType": "YulAssignment", + "src": "15110:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15122:9:23", + "nodeType": "YulIdentifier", + "src": "15122:9:23" + }, + { + "kind": "number", + "nativeSrc": "15133:2:23", + "nodeType": "YulLiteral", + "src": "15133:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15118:3:23", + "nodeType": "YulIdentifier", + "src": "15118:3:23" + }, + "nativeSrc": "15118:18:23", + "nodeType": "YulFunctionCall", + "src": "15118:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15110:4:23", + "nodeType": "YulIdentifier", + "src": "15110:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15190:6:23", + "nodeType": "YulIdentifier", + "src": "15190:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15203:9:23", + "nodeType": "YulIdentifier", + "src": "15203:9:23" + }, + { + "kind": "number", + "nativeSrc": "15214:1:23", + "nodeType": "YulLiteral", + "src": "15214:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15199:3:23", + "nodeType": "YulIdentifier", + "src": "15199:3:23" + }, + "nativeSrc": "15199:17:23", + "nodeType": "YulFunctionCall", + "src": "15199:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "15146:43:23", + "nodeType": "YulIdentifier", + "src": "15146:43:23" + }, + "nativeSrc": "15146:71:23", + "nodeType": "YulFunctionCall", + "src": "15146:71:23" + }, + "nativeSrc": "15146:71:23", + "nodeType": "YulExpressionStatement", + "src": "15146:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "15271:6:23", + "nodeType": "YulIdentifier", + "src": "15271:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15284:9:23", + "nodeType": "YulIdentifier", + "src": "15284:9:23" + }, + { + "kind": "number", + "nativeSrc": "15295:2:23", + "nodeType": "YulLiteral", + "src": "15295:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15280:3:23", + "nodeType": "YulIdentifier", + "src": "15280:3:23" + }, + "nativeSrc": "15280:18:23", + "nodeType": "YulFunctionCall", + "src": "15280:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "15227:43:23", + "nodeType": "YulIdentifier", + "src": "15227:43:23" + }, + "nativeSrc": "15227:72:23", + "nodeType": "YulFunctionCall", + "src": "15227:72:23" + }, + "nativeSrc": "15227:72:23", + "nodeType": "YulExpressionStatement", + "src": "15227:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "15353:6:23", + "nodeType": "YulIdentifier", + "src": "15353:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15366:9:23", + "nodeType": "YulIdentifier", + "src": "15366:9:23" + }, + { + "kind": "number", + "nativeSrc": "15377:2:23", + "nodeType": "YulLiteral", + "src": "15377:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15362:3:23", + "nodeType": "YulIdentifier", + "src": "15362:3:23" + }, + "nativeSrc": "15362:18:23", + "nodeType": "YulFunctionCall", + "src": "15362:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "15309:43:23", + "nodeType": "YulIdentifier", + "src": "15309:43:23" + }, + "nativeSrc": "15309:72:23", + "nodeType": "YulFunctionCall", + "src": "15309:72:23" + }, + "nativeSrc": "15309:72:23", + "nodeType": "YulExpressionStatement", + "src": "15309:72:23" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "14946:442:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15056:9:23", + "nodeType": "YulTypedName", + "src": "15056:9:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "15068:6:23", + "nodeType": "YulTypedName", + "src": "15068:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15076:6:23", + "nodeType": "YulTypedName", + "src": "15076:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15084:6:23", + "nodeType": "YulTypedName", + "src": "15084:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15095:4:23", + "nodeType": "YulTypedName", + "src": "15095:4:23", + "type": "" + } + ], + "src": "14946:442:23" + }, + { + "body": { + "nativeSrc": "15507:34:23", + "nodeType": "YulBlock", + "src": "15507:34:23", + "statements": [ + { + "nativeSrc": "15517:18:23", + "nodeType": "YulAssignment", + "src": "15517:18:23", + "value": { + "name": "pos", + "nativeSrc": "15532:3:23", + "nodeType": "YulIdentifier", + "src": "15532:3:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "15517:11:23", + "nodeType": "YulIdentifier", + "src": "15517:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15394:147:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15479:3:23", + "nodeType": "YulTypedName", + "src": "15479:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "15484:6:23", + "nodeType": "YulTypedName", + "src": "15484:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "15495:11:23", + "nodeType": "YulTypedName", + "src": "15495:11:23", + "type": "" + } + ], + "src": "15394:147:23" + }, + { + "body": { + "nativeSrc": "15653:8:23", + "nodeType": "YulBlock", + "src": "15653:8:23", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15547:114:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "15645:6:23", + "nodeType": "YulTypedName", + "src": "15645:6:23", + "type": "" + } + ], + "src": "15547:114:23" + }, + { + "body": { + "nativeSrc": "15830:235:23", + "nodeType": "YulBlock", + "src": "15830:235:23", + "statements": [ + { + "nativeSrc": "15840:90:23", + "nodeType": "YulAssignment", + "src": "15840:90:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15923:3:23", + "nodeType": "YulIdentifier", + "src": "15923:3:23" + }, + { + "kind": "number", + "nativeSrc": "15928:1:23", + "nodeType": "YulLiteral", + "src": "15928:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15847:75:23", + "nodeType": "YulIdentifier", + "src": "15847:75:23" + }, + "nativeSrc": "15847:83:23", + "nodeType": "YulFunctionCall", + "src": "15847:83:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15840:3:23", + "nodeType": "YulIdentifier", + "src": "15840:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16028:3:23", + "nodeType": "YulIdentifier", + "src": "16028:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15939:88:23", + "nodeType": "YulIdentifier", + "src": "15939:88:23" + }, + "nativeSrc": "15939:93:23", + "nodeType": "YulFunctionCall", + "src": "15939:93:23" + }, + "nativeSrc": "15939:93:23", + "nodeType": "YulExpressionStatement", + "src": "15939:93:23" + }, + { + "nativeSrc": "16041:18:23", + "nodeType": "YulAssignment", + "src": "16041:18:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16052:3:23", + "nodeType": "YulIdentifier", + "src": "16052:3:23" + }, + { + "kind": "number", + "nativeSrc": "16057:1:23", + "nodeType": "YulLiteral", + "src": "16057:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16048:3:23", + "nodeType": "YulIdentifier", + "src": "16048:3:23" + }, + "nativeSrc": "16048:11:23", + "nodeType": "YulFunctionCall", + "src": "16048:11:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16041:3:23", + "nodeType": "YulIdentifier", + "src": "16041:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15667:398:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15818:3:23", + "nodeType": "YulTypedName", + "src": "15818:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15826:3:23", + "nodeType": "YulTypedName", + "src": "15826:3:23", + "type": "" + } + ], + "src": "15667:398:23" + }, + { + "body": { + "nativeSrc": "16259:191:23", + "nodeType": "YulBlock", + "src": "16259:191:23", + "statements": [ + { + "nativeSrc": "16270:154:23", + "nodeType": "YulAssignment", + "src": "16270:154:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16420:3:23", + "nodeType": "YulIdentifier", + "src": "16420:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "16277:141:23", + "nodeType": "YulIdentifier", + "src": "16277:141:23" + }, + "nativeSrc": "16277:147:23", + "nodeType": "YulFunctionCall", + "src": "16277:147:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16270:3:23", + "nodeType": "YulIdentifier", + "src": "16270:3:23" + } + ] + }, + { + "nativeSrc": "16434:10:23", + "nodeType": "YulAssignment", + "src": "16434:10:23", + "value": { + "name": "pos", + "nativeSrc": "16441:3:23", + "nodeType": "YulIdentifier", + "src": "16441:3:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16434:3:23", + "nodeType": "YulIdentifier", + "src": "16434:3:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "16071:379:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16246:3:23", + "nodeType": "YulTypedName", + "src": "16246:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16255:3:23", + "nodeType": "YulTypedName", + "src": "16255:3:23", + "type": "" + } + ], + "src": "16071:379:23" + }, + { + "body": { + "nativeSrc": "16562:61:23", + "nodeType": "YulBlock", + "src": "16562:61:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16584:6:23", + "nodeType": "YulIdentifier", + "src": "16584:6:23" + }, + { + "kind": "number", + "nativeSrc": "16592:1:23", + "nodeType": "YulLiteral", + "src": "16592:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16580:3:23", + "nodeType": "YulIdentifier", + "src": "16580:3:23" + }, + "nativeSrc": "16580:14:23", + "nodeType": "YulFunctionCall", + "src": "16580:14:23" + }, + { + "hexValue": "7769746864726177616c206661696c6564", + "kind": "string", + "nativeSrc": "16596:19:23", + "nodeType": "YulLiteral", + "src": "16596:19:23", + "type": "", + "value": "withdrawal failed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16573:6:23", + "nodeType": "YulIdentifier", + "src": "16573:6:23" + }, + "nativeSrc": "16573:43:23", + "nodeType": "YulFunctionCall", + "src": "16573:43:23" + }, + "nativeSrc": "16573:43:23", + "nodeType": "YulExpressionStatement", + "src": "16573:43:23" + } + ] + }, + "name": "store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "nativeSrc": "16456:167:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "16554:6:23", + "nodeType": "YulTypedName", + "src": "16554:6:23", + "type": "" + } + ], + "src": "16456:167:23" + }, + { + "body": { + "nativeSrc": "16775:220:23", + "nodeType": "YulBlock", + "src": "16775:220:23", + "statements": [ + { + "nativeSrc": "16785:74:23", + "nodeType": "YulAssignment", + "src": "16785:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16851:3:23", + "nodeType": "YulIdentifier", + "src": "16851:3:23" + }, + { + "kind": "number", + "nativeSrc": "16856:2:23", + "nodeType": "YulLiteral", + "src": "16856:2:23", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "16792:58:23", + "nodeType": "YulIdentifier", + "src": "16792:58:23" + }, + "nativeSrc": "16792:67:23", + "nodeType": "YulFunctionCall", + "src": "16792:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16785:3:23", + "nodeType": "YulIdentifier", + "src": "16785:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16957:3:23", + "nodeType": "YulIdentifier", + "src": "16957:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "nativeSrc": "16868:88:23", + "nodeType": "YulIdentifier", + "src": "16868:88:23" + }, + "nativeSrc": "16868:93:23", + "nodeType": "YulFunctionCall", + "src": "16868:93:23" + }, + "nativeSrc": "16868:93:23", + "nodeType": "YulExpressionStatement", + "src": "16868:93:23" + }, + { + "nativeSrc": "16970:19:23", + "nodeType": "YulAssignment", + "src": "16970:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16981:3:23", + "nodeType": "YulIdentifier", + "src": "16981:3:23" + }, + { + "kind": "number", + "nativeSrc": "16986:2:23", + "nodeType": "YulLiteral", + "src": "16986:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16977:3:23", + "nodeType": "YulIdentifier", + "src": "16977:3:23" + }, + "nativeSrc": "16977:12:23", + "nodeType": "YulFunctionCall", + "src": "16977:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16970:3:23", + "nodeType": "YulIdentifier", + "src": "16970:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "16629:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16763:3:23", + "nodeType": "YulTypedName", + "src": "16763:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16771:3:23", + "nodeType": "YulTypedName", + "src": "16771:3:23", + "type": "" + } + ], + "src": "16629:366:23" + }, + { + "body": { + "nativeSrc": "17172:248:23", + "nodeType": "YulBlock", + "src": "17172:248:23", + "statements": [ + { + "nativeSrc": "17182:26:23", + "nodeType": "YulAssignment", + "src": "17182:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17194:9:23", + "nodeType": "YulIdentifier", + "src": "17194:9:23" + }, + { + "kind": "number", + "nativeSrc": "17205:2:23", + "nodeType": "YulLiteral", + "src": "17205:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17190:3:23", + "nodeType": "YulIdentifier", + "src": "17190:3:23" + }, + "nativeSrc": "17190:18:23", + "nodeType": "YulFunctionCall", + "src": "17190:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17182:4:23", + "nodeType": "YulIdentifier", + "src": "17182:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17229:9:23", + "nodeType": "YulIdentifier", + "src": "17229:9:23" + }, + { + "kind": "number", + "nativeSrc": "17240:1:23", + "nodeType": "YulLiteral", + "src": "17240:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17225:3:23", + "nodeType": "YulIdentifier", + "src": "17225:3:23" + }, + "nativeSrc": "17225:17:23", + "nodeType": "YulFunctionCall", + "src": "17225:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17248:4:23", + "nodeType": "YulIdentifier", + "src": "17248:4:23" + }, + { + "name": "headStart", + "nativeSrc": "17254:9:23", + "nodeType": "YulIdentifier", + "src": "17254:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "17244:3:23", + "nodeType": "YulIdentifier", + "src": "17244:3:23" + }, + "nativeSrc": "17244:20:23", + "nodeType": "YulFunctionCall", + "src": "17244:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17218:6:23", + "nodeType": "YulIdentifier", + "src": "17218:6:23" + }, + "nativeSrc": "17218:47:23", + "nodeType": "YulFunctionCall", + "src": "17218:47:23" + }, + "nativeSrc": "17218:47:23", + "nodeType": "YulExpressionStatement", + "src": "17218:47:23" + }, + { + "nativeSrc": "17274:139:23", + "nodeType": "YulAssignment", + "src": "17274:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17408:4:23", + "nodeType": "YulIdentifier", + "src": "17408:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "17282:124:23", + "nodeType": "YulIdentifier", + "src": "17282:124:23" + }, + "nativeSrc": "17282:131:23", + "nodeType": "YulFunctionCall", + "src": "17282:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17274:4:23", + "nodeType": "YulIdentifier", + "src": "17274:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "17001:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17152:9:23", + "nodeType": "YulTypedName", + "src": "17152:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "17167:4:23", + "nodeType": "YulTypedName", + "src": "17167:4:23", + "type": "" + } + ], + "src": "17001:419:23" + }, + { + "body": { + "nativeSrc": "17532:131:23", + "nodeType": "YulBlock", + "src": "17532:131:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "17554:6:23", + "nodeType": "YulIdentifier", + "src": "17554:6:23" + }, + { + "kind": "number", + "nativeSrc": "17562:1:23", + "nodeType": "YulLiteral", + "src": "17562:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17550:3:23", + "nodeType": "YulIdentifier", + "src": "17550:3:23" + }, + "nativeSrc": "17550:14:23", + "nodeType": "YulFunctionCall", + "src": "17550:14:23" + }, + { + "hexValue": "496e76616c6964206173736574206d657461646174613a206d75737420696e63", + "kind": "string", + "nativeSrc": "17566:34:23", + "nodeType": "YulLiteral", + "src": "17566:34:23", + "type": "", + "value": "Invalid asset metadata: must inc" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17543:6:23", + "nodeType": "YulIdentifier", + "src": "17543:6:23" + }, + "nativeSrc": "17543:58:23", + "nodeType": "YulFunctionCall", + "src": "17543:58:23" + }, + "nativeSrc": "17543:58:23", + "nodeType": "YulExpressionStatement", + "src": "17543:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "17622:6:23", + "nodeType": "YulIdentifier", + "src": "17622:6:23" + }, + { + "kind": "number", + "nativeSrc": "17630:2:23", + "nodeType": "YulLiteral", + "src": "17630:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17618:3:23", + "nodeType": "YulIdentifier", + "src": "17618:3:23" + }, + "nativeSrc": "17618:15:23", + "nodeType": "YulFunctionCall", + "src": "17618:15:23" + }, + { + "hexValue": "6c7564652027697066733a2f2f27", + "kind": "string", + "nativeSrc": "17635:16:23", + "nodeType": "YulLiteral", + "src": "17635:16:23", + "type": "", + "value": "lude 'ipfs://'" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17611:6:23", + "nodeType": "YulIdentifier", + "src": "17611:6:23" + }, + "nativeSrc": "17611:41:23", + "nodeType": "YulFunctionCall", + "src": "17611:41:23" + }, + "nativeSrc": "17611:41:23", + "nodeType": "YulExpressionStatement", + "src": "17611:41:23" + } + ] + }, + "name": "store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "nativeSrc": "17426:237:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "17524:6:23", + "nodeType": "YulTypedName", + "src": "17524:6:23", + "type": "" + } + ], + "src": "17426:237:23" + }, + { + "body": { + "nativeSrc": "17819:236:23", + "nodeType": "YulBlock", + "src": "17819:236:23", + "statements": [ + { + "nativeSrc": "17833:74:23", + "nodeType": "YulAssignment", + "src": "17833:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17899:3:23", + "nodeType": "YulIdentifier", + "src": "17899:3:23" + }, + { + "kind": "number", + "nativeSrc": "17904:2:23", + "nodeType": "YulLiteral", + "src": "17904:2:23", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "17840:58:23", + "nodeType": "YulIdentifier", + "src": "17840:58:23" + }, + "nativeSrc": "17840:67:23", + "nodeType": "YulFunctionCall", + "src": "17840:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "17833:3:23", + "nodeType": "YulIdentifier", + "src": "17833:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "18009:3:23", + "nodeType": "YulIdentifier", + "src": "18009:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "nativeSrc": "17920:88:23", + "nodeType": "YulIdentifier", + "src": "17920:88:23" + }, + "nativeSrc": "17920:93:23", + "nodeType": "YulFunctionCall", + "src": "17920:93:23" + }, + "nativeSrc": "17920:93:23", + "nodeType": "YulExpressionStatement", + "src": "17920:93:23" + }, + { + "nativeSrc": "18026:19:23", + "nodeType": "YulAssignment", + "src": "18026:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "18037:3:23", + "nodeType": "YulIdentifier", + "src": "18037:3:23" + }, + { + "kind": "number", + "nativeSrc": "18042:2:23", + "nodeType": "YulLiteral", + "src": "18042:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18033:3:23", + "nodeType": "YulIdentifier", + "src": "18033:3:23" + }, + "nativeSrc": "18033:12:23", + "nodeType": "YulFunctionCall", + "src": "18033:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "18026:3:23", + "nodeType": "YulIdentifier", + "src": "18026:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack", + "nativeSrc": "17673:382:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "17807:3:23", + "nodeType": "YulTypedName", + "src": "17807:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "17815:3:23", + "nodeType": "YulTypedName", + "src": "17815:3:23", + "type": "" + } + ], + "src": "17673:382:23" + }, + { + "body": { + "nativeSrc": "18236:264:23", + "nodeType": "YulBlock", + "src": "18236:264:23", + "statements": [ + { + "nativeSrc": "18250:26:23", + "nodeType": "YulAssignment", + "src": "18250:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18262:9:23", + "nodeType": "YulIdentifier", + "src": "18262:9:23" + }, + { + "kind": "number", + "nativeSrc": "18273:2:23", + "nodeType": "YulLiteral", + "src": "18273:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18258:3:23", + "nodeType": "YulIdentifier", + "src": "18258:3:23" + }, + "nativeSrc": "18258:18:23", + "nodeType": "YulFunctionCall", + "src": "18258:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "18250:4:23", + "nodeType": "YulIdentifier", + "src": "18250:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18301:9:23", + "nodeType": "YulIdentifier", + "src": "18301:9:23" + }, + { + "kind": "number", + "nativeSrc": "18312:1:23", + "nodeType": "YulLiteral", + "src": "18312:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18297:3:23", + "nodeType": "YulIdentifier", + "src": "18297:3:23" + }, + "nativeSrc": "18297:17:23", + "nodeType": "YulFunctionCall", + "src": "18297:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "18320:4:23", + "nodeType": "YulIdentifier", + "src": "18320:4:23" + }, + { + "name": "headStart", + "nativeSrc": "18326:9:23", + "nodeType": "YulIdentifier", + "src": "18326:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18316:3:23", + "nodeType": "YulIdentifier", + "src": "18316:3:23" + }, + "nativeSrc": "18316:20:23", + "nodeType": "YulFunctionCall", + "src": "18316:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18290:6:23", + "nodeType": "YulIdentifier", + "src": "18290:6:23" + }, + "nativeSrc": "18290:47:23", + "nodeType": "YulFunctionCall", + "src": "18290:47:23" + }, + "nativeSrc": "18290:47:23", + "nodeType": "YulExpressionStatement", + "src": "18290:47:23" + }, + { + "nativeSrc": "18350:139:23", + "nodeType": "YulAssignment", + "src": "18350:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "18484:4:23", + "nodeType": "YulIdentifier", + "src": "18484:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack", + "nativeSrc": "18358:124:23", + "nodeType": "YulIdentifier", + "src": "18358:124:23" + }, + "nativeSrc": "18358:131:23", + "nodeType": "YulFunctionCall", + "src": "18358:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "18350:4:23", + "nodeType": "YulIdentifier", + "src": "18350:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "18065:435:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18216:9:23", + "nodeType": "YulTypedName", + "src": "18216:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "18231:4:23", + "nodeType": "YulTypedName", + "src": "18231:4:23", + "type": "" + } + ], + "src": "18065:435:23" + }, + { + "body": { + "nativeSrc": "18564:103:23", + "nodeType": "YulBlock", + "src": "18564:103:23", + "statements": [ + { + "nativeSrc": "18578:11:23", + "nodeType": "YulAssignment", + "src": "18578:11:23", + "value": { + "name": "ptr", + "nativeSrc": "18586:3:23", + "nodeType": "YulIdentifier", + "src": "18586:3:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "18578:4:23", + "nodeType": "YulIdentifier", + "src": "18578:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18610:1:23", + "nodeType": "YulLiteral", + "src": "18610:1:23", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "18613:3:23", + "nodeType": "YulIdentifier", + "src": "18613:3:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18603:6:23", + "nodeType": "YulIdentifier", + "src": "18603:6:23" + }, + "nativeSrc": "18603:14:23", + "nodeType": "YulFunctionCall", + "src": "18603:14:23" + }, + "nativeSrc": "18603:14:23", + "nodeType": "YulExpressionStatement", + "src": "18603:14:23" + }, + { + "nativeSrc": "18630:26:23", + "nodeType": "YulAssignment", + "src": "18630:26:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18648:1:23", + "nodeType": "YulLiteral", + "src": "18648:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "18651:4:23", + "nodeType": "YulLiteral", + "src": "18651:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "18638:9:23", + "nodeType": "YulIdentifier", + "src": "18638:9:23" + }, + "nativeSrc": "18638:18:23", + "nodeType": "YulFunctionCall", + "src": "18638:18:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "18630:4:23", + "nodeType": "YulIdentifier", + "src": "18630:4:23" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "18510:157:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "18551:3:23", + "nodeType": "YulTypedName", + "src": "18551:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "18559:4:23", + "nodeType": "YulTypedName", + "src": "18559:4:23", + "type": "" + } + ], + "src": "18510:157:23" + }, + { + "body": { + "nativeSrc": "18721:57:23", + "nodeType": "YulBlock", + "src": "18721:57:23", + "statements": [ + { + "nativeSrc": "18735:33:23", + "nodeType": "YulAssignment", + "src": "18735:33:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18753:5:23", + "nodeType": "YulIdentifier", + "src": "18753:5:23" + }, + { + "kind": "number", + "nativeSrc": "18760:2:23", + "nodeType": "YulLiteral", + "src": "18760:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18749:3:23", + "nodeType": "YulIdentifier", + "src": "18749:3:23" + }, + "nativeSrc": "18749:14:23", + "nodeType": "YulFunctionCall", + "src": "18749:14:23" + }, + { + "kind": "number", + "nativeSrc": "18765:2:23", + "nodeType": "YulLiteral", + "src": "18765:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "18745:3:23", + "nodeType": "YulIdentifier", + "src": "18745:3:23" + }, + "nativeSrc": "18745:23:23", + "nodeType": "YulFunctionCall", + "src": "18745:23:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18735:6:23", + "nodeType": "YulIdentifier", + "src": "18735:6:23" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "18677:101:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "18704:5:23", + "nodeType": "YulTypedName", + "src": "18704:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "18714:6:23", + "nodeType": "YulTypedName", + "src": "18714:6:23", + "type": "" + } + ], + "src": "18677:101:23" + }, + { + "body": { + "nativeSrc": "18841:66:23", + "nodeType": "YulBlock", + "src": "18841:66:23", + "statements": [ + { + "nativeSrc": "18855:41:23", + "nodeType": "YulAssignment", + "src": "18855:41:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "18884:4:23", + "nodeType": "YulIdentifier", + "src": "18884:4:23" + }, + { + "name": "value", + "nativeSrc": "18890:5:23", + "nodeType": "YulIdentifier", + "src": "18890:5:23" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18880:3:23", + "nodeType": "YulIdentifier", + "src": "18880:3:23" + }, + "nativeSrc": "18880:16:23", + "nodeType": "YulFunctionCall", + "src": "18880:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "18855:8:23", + "nodeType": "YulIdentifier", + "src": "18855:8:23" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "18788:119:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "18816:4:23", + "nodeType": "YulTypedName", + "src": "18816:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "18822:5:23", + "nodeType": "YulTypedName", + "src": "18822:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "18832:8:23", + "nodeType": "YulTypedName", + "src": "18832:8:23", + "type": "" + } + ], + "src": "18788:119:23" + }, + { + "body": { + "nativeSrc": "18993:341:23", + "nodeType": "YulBlock", + "src": "18993:341:23", + "statements": [ + { + "nativeSrc": "19007:35:23", + "nodeType": "YulVariableDeclaration", + "src": "19007:35:23", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "19028:10:23", + "nodeType": "YulIdentifier", + "src": "19028:10:23" + }, + { + "kind": "number", + "nativeSrc": "19040:1:23", + "nodeType": "YulLiteral", + "src": "19040:1:23", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19024:3:23", + "nodeType": "YulIdentifier", + "src": "19024:3:23" + }, + "nativeSrc": "19024:18:23", + "nodeType": "YulFunctionCall", + "src": "19024:18:23" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "19011:9:23", + "nodeType": "YulTypedName", + "src": "19011:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "19055:109:23", + "nodeType": "YulVariableDeclaration", + "src": "19055:109:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "19086:9:23", + "nodeType": "YulIdentifier", + "src": "19086:9:23" + }, + { + "kind": "number", + "nativeSrc": "19097:66:23", + "nodeType": "YulLiteral", + "src": "19097:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "19067:18:23", + "nodeType": "YulIdentifier", + "src": "19067:18:23" + }, + "nativeSrc": "19067:97:23", + "nodeType": "YulFunctionCall", + "src": "19067:97:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "19059:4:23", + "nodeType": "YulTypedName", + "src": "19059:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "19177:51:23", + "nodeType": "YulAssignment", + "src": "19177:51:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "19208:9:23", + "nodeType": "YulIdentifier", + "src": "19208:9:23" + }, + { + "name": "toInsert", + "nativeSrc": "19219:8:23", + "nodeType": "YulIdentifier", + "src": "19219:8:23" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "19189:18:23", + "nodeType": "YulIdentifier", + "src": "19189:18:23" + }, + "nativeSrc": "19189:39:23", + "nodeType": "YulFunctionCall", + "src": "19189:39:23" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "19177:8:23", + "nodeType": "YulIdentifier", + "src": "19177:8:23" + } + ] + }, + { + "nativeSrc": "19241:30:23", + "nodeType": "YulAssignment", + "src": "19241:30:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "19254:5:23", + "nodeType": "YulIdentifier", + "src": "19254:5:23" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "19265:4:23", + "nodeType": "YulIdentifier", + "src": "19265:4:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19261:3:23", + "nodeType": "YulIdentifier", + "src": "19261:3:23" + }, + "nativeSrc": "19261:9:23", + "nodeType": "YulFunctionCall", + "src": "19261:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19250:3:23", + "nodeType": "YulIdentifier", + "src": "19250:3:23" + }, + "nativeSrc": "19250:21:23", + "nodeType": "YulFunctionCall", + "src": "19250:21:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19241:5:23", + "nodeType": "YulIdentifier", + "src": "19241:5:23" + } + ] + }, + { + "nativeSrc": "19284:40:23", + "nodeType": "YulAssignment", + "src": "19284:40:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "19297:5:23", + "nodeType": "YulIdentifier", + "src": "19297:5:23" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "19308:8:23", + "nodeType": "YulIdentifier", + "src": "19308:8:23" + }, + { + "name": "mask", + "nativeSrc": "19318:4:23", + "nodeType": "YulIdentifier", + "src": "19318:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19304:3:23", + "nodeType": "YulIdentifier", + "src": "19304:3:23" + }, + "nativeSrc": "19304:19:23", + "nodeType": "YulFunctionCall", + "src": "19304:19:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "19294:2:23", + "nodeType": "YulIdentifier", + "src": "19294:2:23" + }, + "nativeSrc": "19294:30:23", + "nodeType": "YulFunctionCall", + "src": "19294:30:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "19284:6:23", + "nodeType": "YulIdentifier", + "src": "19284:6:23" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "18917:417:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "18954:5:23", + "nodeType": "YulTypedName", + "src": "18954:5:23", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "18961:10:23", + "nodeType": "YulTypedName", + "src": "18961:10:23", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "18973:8:23", + "nodeType": "YulTypedName", + "src": "18973:8:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "18986:6:23", + "nodeType": "YulTypedName", + "src": "18986:6:23", + "type": "" + } + ], + "src": "18917:417:23" + }, + { + "body": { + "nativeSrc": "19376:36:23", + "nodeType": "YulBlock", + "src": "19376:36:23", + "statements": [ + { + "nativeSrc": "19390:12:23", + "nodeType": "YulAssignment", + "src": "19390:12:23", + "value": { + "name": "value", + "nativeSrc": "19397:5:23", + "nodeType": "YulIdentifier", + "src": "19397:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "19390:3:23", + "nodeType": "YulIdentifier", + "src": "19390:3:23" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "19344:68:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19362:5:23", + "nodeType": "YulTypedName", + "src": "19362:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "19372:3:23", + "nodeType": "YulTypedName", + "src": "19372:3:23", + "type": "" + } + ], + "src": "19344:68:23" + }, + { + "body": { + "nativeSrc": "19482:90:23", + "nodeType": "YulBlock", + "src": "19482:90:23", + "statements": [ + { + "nativeSrc": "19496:66:23", + "nodeType": "YulAssignment", + "src": "19496:66:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19554:5:23", + "nodeType": "YulIdentifier", + "src": "19554:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "19536:17:23", + "nodeType": "YulIdentifier", + "src": "19536:17:23" + }, + "nativeSrc": "19536:24:23", + "nodeType": "YulFunctionCall", + "src": "19536:24:23" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "19527:8:23", + "nodeType": "YulIdentifier", + "src": "19527:8:23" + }, + "nativeSrc": "19527:34:23", + "nodeType": "YulFunctionCall", + "src": "19527:34:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "19509:17:23", + "nodeType": "YulIdentifier", + "src": "19509:17:23" + }, + "nativeSrc": "19509:53:23", + "nodeType": "YulFunctionCall", + "src": "19509:53:23" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "19496:9:23", + "nodeType": "YulIdentifier", + "src": "19496:9:23" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "19422:150:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19462:5:23", + "nodeType": "YulTypedName", + "src": "19462:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "19472:9:23", + "nodeType": "YulTypedName", + "src": "19472:9:23", + "type": "" + } + ], + "src": "19422:150:23" + }, + { + "body": { + "nativeSrc": "19629:36:23", + "nodeType": "YulBlock", + "src": "19629:36:23", + "statements": [ + { + "nativeSrc": "19643:12:23", + "nodeType": "YulAssignment", + "src": "19643:12:23", + "value": { + "name": "value", + "nativeSrc": "19650:5:23", + "nodeType": "YulIdentifier", + "src": "19650:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "19643:3:23", + "nodeType": "YulIdentifier", + "src": "19643:3:23" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "19582:83:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19615:5:23", + "nodeType": "YulTypedName", + "src": "19615:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "19625:3:23", + "nodeType": "YulTypedName", + "src": "19625:3:23", + "type": "" + } + ], + "src": "19582:83:23" + }, + { + "body": { + "nativeSrc": "19751:205:23", + "nodeType": "YulBlock", + "src": "19751:205:23", + "statements": [ + { + "nativeSrc": "19765:63:23", + "nodeType": "YulVariableDeclaration", + "src": "19765:63:23", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "19820:7:23", + "nodeType": "YulIdentifier", + "src": "19820:7:23" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "19789:30:23", + "nodeType": "YulIdentifier", + "src": "19789:30:23" + }, + "nativeSrc": "19789:39:23", + "nodeType": "YulFunctionCall", + "src": "19789:39:23" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "19769:16:23", + "nodeType": "YulTypedName", + "src": "19769:16:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19848:4:23", + "nodeType": "YulIdentifier", + "src": "19848:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19888:4:23", + "nodeType": "YulIdentifier", + "src": "19888:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "19882:5:23", + "nodeType": "YulIdentifier", + "src": "19882:5:23" + }, + "nativeSrc": "19882:11:23", + "nodeType": "YulFunctionCall", + "src": "19882:11:23" + }, + { + "name": "offset", + "nativeSrc": "19895:6:23", + "nodeType": "YulIdentifier", + "src": "19895:6:23" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "19927:16:23", + "nodeType": "YulIdentifier", + "src": "19927:16:23" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "19903:23:23", + "nodeType": "YulIdentifier", + "src": "19903:23:23" + }, + "nativeSrc": "19903:41:23", + "nodeType": "YulFunctionCall", + "src": "19903:41:23" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "19854:27:23", + "nodeType": "YulIdentifier", + "src": "19854:27:23" + }, + "nativeSrc": "19854:91:23", + "nodeType": "YulFunctionCall", + "src": "19854:91:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19841:6:23", + "nodeType": "YulIdentifier", + "src": "19841:6:23" + }, + "nativeSrc": "19841:105:23", + "nodeType": "YulFunctionCall", + "src": "19841:105:23" + }, + "nativeSrc": "19841:105:23", + "nodeType": "YulExpressionStatement", + "src": "19841:105:23" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "19675:281:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "19728:4:23", + "nodeType": "YulTypedName", + "src": "19728:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "19734:6:23", + "nodeType": "YulTypedName", + "src": "19734:6:23", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "19742:7:23", + "nodeType": "YulTypedName", + "src": "19742:7:23", + "type": "" + } + ], + "src": "19675:281:23" + }, + { + "body": { + "nativeSrc": "20015:32:23", + "nodeType": "YulBlock", + "src": "20015:32:23", + "statements": [ + { + "nativeSrc": "20029:8:23", + "nodeType": "YulAssignment", + "src": "20029:8:23", + "value": { + "kind": "number", + "nativeSrc": "20036:1:23", + "nodeType": "YulLiteral", + "src": "20036:1:23", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "20029:3:23", + "nodeType": "YulIdentifier", + "src": "20029:3:23" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "19966:81:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "20011:3:23", + "nodeType": "YulTypedName", + "src": "20011:3:23", + "type": "" + } + ], + "src": "19966:81:23" + }, + { + "body": { + "nativeSrc": "20110:148:23", + "nodeType": "YulBlock", + "src": "20110:148:23", + "statements": [ + { + "nativeSrc": "20124:46:23", + "nodeType": "YulVariableDeclaration", + "src": "20124:46:23", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "20138:30:23", + "nodeType": "YulIdentifier", + "src": "20138:30:23" + }, + "nativeSrc": "20138:32:23", + "nodeType": "YulFunctionCall", + "src": "20138:32:23" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "20128:6:23", + "nodeType": "YulTypedName", + "src": "20128:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20227:4:23", + "nodeType": "YulIdentifier", + "src": "20227:4:23" + }, + { + "name": "offset", + "nativeSrc": "20233:6:23", + "nodeType": "YulIdentifier", + "src": "20233:6:23" + }, + { + "name": "zero_0", + "nativeSrc": "20241:6:23", + "nodeType": "YulIdentifier", + "src": "20241:6:23" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "20183:43:23", + "nodeType": "YulIdentifier", + "src": "20183:43:23" + }, + "nativeSrc": "20183:65:23", + "nodeType": "YulFunctionCall", + "src": "20183:65:23" + }, + "nativeSrc": "20183:65:23", + "nodeType": "YulExpressionStatement", + "src": "20183:65:23" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "20057:201:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "20096:4:23", + "nodeType": "YulTypedName", + "src": "20096:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "20102:6:23", + "nodeType": "YulTypedName", + "src": "20102:6:23", + "type": "" + } + ], + "src": "20057:201:23" + }, + { + "body": { + "nativeSrc": "20318:156:23", + "nodeType": "YulBlock", + "src": "20318:156:23", + "statements": [ + { + "body": { + "nativeSrc": "20393:71:23", + "nodeType": "YulBlock", + "src": "20393:71:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "20441:5:23", + "nodeType": "YulIdentifier", + "src": "20441:5:23" + }, + { + "kind": "number", + "nativeSrc": "20448:1:23", + "nodeType": "YulLiteral", + "src": "20448:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "20411:29:23", + "nodeType": "YulIdentifier", + "src": "20411:29:23" + }, + "nativeSrc": "20411:39:23", + "nodeType": "YulFunctionCall", + "src": "20411:39:23" + }, + "nativeSrc": "20411:39:23", + "nodeType": "YulExpressionStatement", + "src": "20411:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "20342:5:23", + "nodeType": "YulIdentifier", + "src": "20342:5:23" + }, + { + "name": "end", + "nativeSrc": "20349:3:23", + "nodeType": "YulIdentifier", + "src": "20349:3:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "20339:2:23", + "nodeType": "YulIdentifier", + "src": "20339:2:23" + }, + "nativeSrc": "20339:14:23", + "nodeType": "YulFunctionCall", + "src": "20339:14:23" + }, + "nativeSrc": "20332:132:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "20354:26:23", + "nodeType": "YulBlock", + "src": "20354:26:23", + "statements": [ + { + "nativeSrc": "20356:22:23", + "nodeType": "YulAssignment", + "src": "20356:22:23", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "20369:5:23", + "nodeType": "YulIdentifier", + "src": "20369:5:23" + }, + { + "kind": "number", + "nativeSrc": "20376:1:23", + "nodeType": "YulLiteral", + "src": "20376:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20365:3:23", + "nodeType": "YulIdentifier", + "src": "20365:3:23" + }, + "nativeSrc": "20365:13:23", + "nodeType": "YulFunctionCall", + "src": "20365:13:23" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "20356:5:23", + "nodeType": "YulIdentifier", + "src": "20356:5:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "20336:2:23", + "nodeType": "YulBlock", + "src": "20336:2:23", + "statements": [] + }, + "src": "20332:132:23" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "20268:206:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "20306:5:23", + "nodeType": "YulTypedName", + "src": "20306:5:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "20313:3:23", + "nodeType": "YulTypedName", + "src": "20313:3:23", + "type": "" + } + ], + "src": "20268:206:23" + }, + { + "body": { + "nativeSrc": "20563:496:23", + "nodeType": "YulBlock", + "src": "20563:496:23", + "statements": [ + { + "body": { + "nativeSrc": "20593:455:23", + "nodeType": "YulBlock", + "src": "20593:455:23", + "statements": [ + { + "nativeSrc": "20611:54:23", + "nodeType": "YulVariableDeclaration", + "src": "20611:54:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "20659:5:23", + "nodeType": "YulIdentifier", + "src": "20659:5:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "20627:31:23", + "nodeType": "YulIdentifier", + "src": "20627:31:23" + }, + "nativeSrc": "20627:38:23", + "nodeType": "YulFunctionCall", + "src": "20627:38:23" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "20615:8:23", + "nodeType": "YulTypedName", + "src": "20615:8:23", + "type": "" + } + ] + }, + { + "nativeSrc": "20682:63:23", + "nodeType": "YulVariableDeclaration", + "src": "20682:63:23", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "20705:8:23", + "nodeType": "YulIdentifier", + "src": "20705:8:23" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "20733:10:23", + "nodeType": "YulIdentifier", + "src": "20733:10:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "20715:17:23", + "nodeType": "YulIdentifier", + "src": "20715:17:23" + }, + "nativeSrc": "20715:29:23", + "nodeType": "YulFunctionCall", + "src": "20715:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20701:3:23", + "nodeType": "YulIdentifier", + "src": "20701:3:23" + }, + "nativeSrc": "20701:44:23", + "nodeType": "YulFunctionCall", + "src": "20701:44:23" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "20686:11:23", + "nodeType": "YulTypedName", + "src": "20686:11:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20910:27:23", + "nodeType": "YulBlock", + "src": "20910:27:23", + "statements": [ + { + "nativeSrc": "20912:23:23", + "nodeType": "YulAssignment", + "src": "20912:23:23", + "value": { + "name": "dataArea", + "nativeSrc": "20927:8:23", + "nodeType": "YulIdentifier", + "src": "20927:8:23" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "20912:11:23", + "nodeType": "YulIdentifier", + "src": "20912:11:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "20894:10:23", + "nodeType": "YulIdentifier", + "src": "20894:10:23" + }, + { + "kind": "number", + "nativeSrc": "20906:2:23", + "nodeType": "YulLiteral", + "src": "20906:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "20891:2:23", + "nodeType": "YulIdentifier", + "src": "20891:2:23" + }, + "nativeSrc": "20891:18:23", + "nodeType": "YulFunctionCall", + "src": "20891:18:23" + }, + "nativeSrc": "20888:49:23", + "nodeType": "YulIf", + "src": "20888:49:23" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "20983:11:23", + "nodeType": "YulIdentifier", + "src": "20983:11:23" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "21000:8:23", + "nodeType": "YulIdentifier", + "src": "21000:8:23" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "21028:3:23", + "nodeType": "YulIdentifier", + "src": "21028:3:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "21010:17:23", + "nodeType": "YulIdentifier", + "src": "21010:17:23" + }, + "nativeSrc": "21010:22:23", + "nodeType": "YulFunctionCall", + "src": "21010:22:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20996:3:23", + "nodeType": "YulIdentifier", + "src": "20996:3:23" + }, + "nativeSrc": "20996:37:23", + "nodeType": "YulFunctionCall", + "src": "20996:37:23" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "20954:28:23", + "nodeType": "YulIdentifier", + "src": "20954:28:23" + }, + "nativeSrc": "20954:80:23", + "nodeType": "YulFunctionCall", + "src": "20954:80:23" + }, + "nativeSrc": "20954:80:23", + "nodeType": "YulExpressionStatement", + "src": "20954:80:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "20584:3:23", + "nodeType": "YulIdentifier", + "src": "20584:3:23" + }, + { + "kind": "number", + "nativeSrc": "20589:2:23", + "nodeType": "YulLiteral", + "src": "20589:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20581:2:23", + "nodeType": "YulIdentifier", + "src": "20581:2:23" + }, + "nativeSrc": "20581:11:23", + "nodeType": "YulFunctionCall", + "src": "20581:11:23" + }, + "nativeSrc": "20578:470:23", + "nodeType": "YulIf", + "src": "20578:470:23" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "20484:575:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "20539:5:23", + "nodeType": "YulTypedName", + "src": "20539:5:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "20546:3:23", + "nodeType": "YulTypedName", + "src": "20546:3:23", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "20551:10:23", + "nodeType": "YulTypedName", + "src": "20551:10:23", + "type": "" + } + ], + "src": "20484:575:23" + }, + { + "body": { + "nativeSrc": "21132:66:23", + "nodeType": "YulBlock", + "src": "21132:66:23", + "statements": [ + { + "nativeSrc": "21146:41:23", + "nodeType": "YulAssignment", + "src": "21146:41:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "21175:4:23", + "nodeType": "YulIdentifier", + "src": "21175:4:23" + }, + { + "name": "value", + "nativeSrc": "21181:5:23", + "nodeType": "YulIdentifier", + "src": "21181:5:23" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "21171:3:23", + "nodeType": "YulIdentifier", + "src": "21171:3:23" + }, + "nativeSrc": "21171:16:23", + "nodeType": "YulFunctionCall", + "src": "21171:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "21146:8:23", + "nodeType": "YulIdentifier", + "src": "21146:8:23" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "21069:129:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "21107:4:23", + "nodeType": "YulTypedName", + "src": "21107:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "21113:5:23", + "nodeType": "YulTypedName", + "src": "21113:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "21123:8:23", + "nodeType": "YulTypedName", + "src": "21123:8:23", + "type": "" + } + ], + "src": "21069:129:23" + }, + { + "body": { + "nativeSrc": "21259:130:23", + "nodeType": "YulBlock", + "src": "21259:130:23", + "statements": [ + { + "nativeSrc": "21273:68:23", + "nodeType": "YulVariableDeclaration", + "src": "21273:68:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21322:1:23", + "nodeType": "YulLiteral", + "src": "21322:1:23", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "21325:5:23", + "nodeType": "YulIdentifier", + "src": "21325:5:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "21318:3:23", + "nodeType": "YulIdentifier", + "src": "21318:3:23" + }, + "nativeSrc": "21318:13:23", + "nodeType": "YulFunctionCall", + "src": "21318:13:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21337:1:23", + "nodeType": "YulLiteral", + "src": "21337:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "21333:3:23", + "nodeType": "YulIdentifier", + "src": "21333:3:23" + }, + "nativeSrc": "21333:6:23", + "nodeType": "YulFunctionCall", + "src": "21333:6:23" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "21289:28:23", + "nodeType": "YulIdentifier", + "src": "21289:28:23" + }, + "nativeSrc": "21289:51:23", + "nodeType": "YulFunctionCall", + "src": "21289:51:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "21285:3:23", + "nodeType": "YulIdentifier", + "src": "21285:3:23" + }, + "nativeSrc": "21285:56:23", + "nodeType": "YulFunctionCall", + "src": "21285:56:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "21277:4:23", + "nodeType": "YulTypedName", + "src": "21277:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "21354:25:23", + "nodeType": "YulAssignment", + "src": "21354:25:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "21368:4:23", + "nodeType": "YulIdentifier", + "src": "21368:4:23" + }, + { + "name": "mask", + "nativeSrc": "21374:4:23", + "nodeType": "YulIdentifier", + "src": "21374:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21364:3:23", + "nodeType": "YulIdentifier", + "src": "21364:3:23" + }, + "nativeSrc": "21364:15:23", + "nodeType": "YulFunctionCall", + "src": "21364:15:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "21354:6:23", + "nodeType": "YulIdentifier", + "src": "21354:6:23" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "21208:181:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "21236:4:23", + "nodeType": "YulTypedName", + "src": "21236:4:23", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "21242:5:23", + "nodeType": "YulTypedName", + "src": "21242:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "21252:6:23", + "nodeType": "YulTypedName", + "src": "21252:6:23", + "type": "" + } + ], + "src": "21208:181:23" + }, + { + "body": { + "nativeSrc": "21479:234:23", + "nodeType": "YulBlock", + "src": "21479:234:23", + "statements": [ + { + "nativeSrc": "21624:37:23", + "nodeType": "YulAssignment", + "src": "21624:37:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "21651:4:23", + "nodeType": "YulIdentifier", + "src": "21651:4:23" + }, + { + "name": "len", + "nativeSrc": "21657:3:23", + "nodeType": "YulIdentifier", + "src": "21657:3:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "21632:18:23", + "nodeType": "YulIdentifier", + "src": "21632:18:23" + }, + "nativeSrc": "21632:29:23", + "nodeType": "YulFunctionCall", + "src": "21632:29:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "21624:4:23", + "nodeType": "YulIdentifier", + "src": "21624:4:23" + } + ] + }, + { + "nativeSrc": "21674:29:23", + "nodeType": "YulAssignment", + "src": "21674:29:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "21685:4:23", + "nodeType": "YulIdentifier", + "src": "21685:4:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21695:1:23", + "nodeType": "YulLiteral", + "src": "21695:1:23", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "21698:3:23", + "nodeType": "YulIdentifier", + "src": "21698:3:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "21691:3:23", + "nodeType": "YulIdentifier", + "src": "21691:3:23" + }, + "nativeSrc": "21691:11:23", + "nodeType": "YulFunctionCall", + "src": "21691:11:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "21682:2:23", + "nodeType": "YulIdentifier", + "src": "21682:2:23" + }, + "nativeSrc": "21682:21:23", + "nodeType": "YulFunctionCall", + "src": "21682:21:23" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "21674:4:23", + "nodeType": "YulIdentifier", + "src": "21674:4:23" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "21398:315:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "21460:4:23", + "nodeType": "YulTypedName", + "src": "21460:4:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "21466:3:23", + "nodeType": "YulTypedName", + "src": "21466:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "21474:4:23", + "nodeType": "YulTypedName", + "src": "21474:4:23", + "type": "" + } + ], + "src": "21398:315:23" + }, + { + "body": { + "nativeSrc": "21814:1431:23", + "nodeType": "YulBlock", + "src": "21814:1431:23", + "statements": [ + { + "nativeSrc": "21829:51:23", + "nodeType": "YulVariableDeclaration", + "src": "21829:51:23", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "21876:3:23", + "nodeType": "YulIdentifier", + "src": "21876:3:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "21843:32:23", + "nodeType": "YulIdentifier", + "src": "21843:32:23" + }, + "nativeSrc": "21843:37:23", + "nodeType": "YulFunctionCall", + "src": "21843:37:23" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "21833:6:23", + "nodeType": "YulTypedName", + "src": "21833:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21973:22:23", + "nodeType": "YulBlock", + "src": "21973:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "21975:16:23", + "nodeType": "YulIdentifier", + "src": "21975:16:23" + }, + "nativeSrc": "21975:18:23", + "nodeType": "YulFunctionCall", + "src": "21975:18:23" + }, + "nativeSrc": "21975:18:23", + "nodeType": "YulExpressionStatement", + "src": "21975:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "21945:6:23", + "nodeType": "YulIdentifier", + "src": "21945:6:23" + }, + { + "kind": "number", + "nativeSrc": "21953:18:23", + "nodeType": "YulLiteral", + "src": "21953:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21942:2:23", + "nodeType": "YulIdentifier", + "src": "21942:2:23" + }, + "nativeSrc": "21942:30:23", + "nodeType": "YulFunctionCall", + "src": "21942:30:23" + }, + "nativeSrc": "21939:56:23", + "nodeType": "YulIf", + "src": "21939:56:23" + }, + { + "nativeSrc": "22009:52:23", + "nodeType": "YulVariableDeclaration", + "src": "22009:52:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "22055:4:23", + "nodeType": "YulIdentifier", + "src": "22055:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "22049:5:23", + "nodeType": "YulIdentifier", + "src": "22049:5:23" + }, + "nativeSrc": "22049:11:23", + "nodeType": "YulFunctionCall", + "src": "22049:11:23" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "22023:25:23", + "nodeType": "YulIdentifier", + "src": "22023:25:23" + }, + "nativeSrc": "22023:38:23", + "nodeType": "YulFunctionCall", + "src": "22023:38:23" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "22013:6:23", + "nodeType": "YulTypedName", + "src": "22013:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "22162:4:23", + "nodeType": "YulIdentifier", + "src": "22162:4:23" + }, + { + "name": "oldLen", + "nativeSrc": "22168:6:23", + "nodeType": "YulIdentifier", + "src": "22168:6:23" + }, + { + "name": "newLen", + "nativeSrc": "22176:6:23", + "nodeType": "YulIdentifier", + "src": "22176:6:23" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "22116:45:23", + "nodeType": "YulIdentifier", + "src": "22116:45:23" + }, + "nativeSrc": "22116:67:23", + "nodeType": "YulFunctionCall", + "src": "22116:67:23" + }, + "nativeSrc": "22116:67:23", + "nodeType": "YulExpressionStatement", + "src": "22116:67:23" + }, + { + "nativeSrc": "22197:18:23", + "nodeType": "YulVariableDeclaration", + "src": "22197:18:23", + "value": { + "kind": "number", + "nativeSrc": "22214:1:23", + "nodeType": "YulLiteral", + "src": "22214:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "22201:9:23", + "nodeType": "YulTypedName", + "src": "22201:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "22229:17:23", + "nodeType": "YulAssignment", + "src": "22229:17:23", + "value": { + "kind": "number", + "nativeSrc": "22242:4:23", + "nodeType": "YulLiteral", + "src": "22242:4:23", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "22229:9:23", + "nodeType": "YulIdentifier", + "src": "22229:9:23" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "22301:667:23", + "nodeType": "YulBlock", + "src": "22301:667:23", + "statements": [ + { + "nativeSrc": "22319:37:23", + "nodeType": "YulVariableDeclaration", + "src": "22319:37:23", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "22338:6:23", + "nodeType": "YulIdentifier", + "src": "22338:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22350:4:23", + "nodeType": "YulLiteral", + "src": "22350:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "22346:3:23", + "nodeType": "YulIdentifier", + "src": "22346:3:23" + }, + "nativeSrc": "22346:9:23", + "nodeType": "YulFunctionCall", + "src": "22346:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22334:3:23", + "nodeType": "YulIdentifier", + "src": "22334:3:23" + }, + "nativeSrc": "22334:22:23", + "nodeType": "YulFunctionCall", + "src": "22334:22:23" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "22323:7:23", + "nodeType": "YulTypedName", + "src": "22323:7:23", + "type": "" + } + ] + }, + { + "nativeSrc": "22374:51:23", + "nodeType": "YulVariableDeclaration", + "src": "22374:51:23", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "22420:4:23", + "nodeType": "YulIdentifier", + "src": "22420:4:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "22388:31:23", + "nodeType": "YulIdentifier", + "src": "22388:31:23" + }, + "nativeSrc": "22388:37:23", + "nodeType": "YulFunctionCall", + "src": "22388:37:23" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "22378:6:23", + "nodeType": "YulTypedName", + "src": "22378:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "22442:10:23", + "nodeType": "YulVariableDeclaration", + "src": "22442:10:23", + "value": { + "kind": "number", + "nativeSrc": "22451:1:23", + "nodeType": "YulLiteral", + "src": "22451:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "22446:1:23", + "nodeType": "YulTypedName", + "src": "22446:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22514:179:23", + "nodeType": "YulBlock", + "src": "22514:179:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "22543:6:23", + "nodeType": "YulIdentifier", + "src": "22543:6:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "22561:3:23", + "nodeType": "YulIdentifier", + "src": "22561:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "22566:9:23", + "nodeType": "YulIdentifier", + "src": "22566:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22557:3:23", + "nodeType": "YulIdentifier", + "src": "22557:3:23" + }, + "nativeSrc": "22557:19:23", + "nodeType": "YulFunctionCall", + "src": "22557:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22551:5:23", + "nodeType": "YulIdentifier", + "src": "22551:5:23" + }, + "nativeSrc": "22551:26:23", + "nodeType": "YulFunctionCall", + "src": "22551:26:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "22536:6:23", + "nodeType": "YulIdentifier", + "src": "22536:6:23" + }, + "nativeSrc": "22536:42:23", + "nodeType": "YulFunctionCall", + "src": "22536:42:23" + }, + "nativeSrc": "22536:42:23", + "nodeType": "YulExpressionStatement", + "src": "22536:42:23" + }, + { + "nativeSrc": "22599:24:23", + "nodeType": "YulAssignment", + "src": "22599:24:23", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "22613:6:23", + "nodeType": "YulIdentifier", + "src": "22613:6:23" + }, + { + "kind": "number", + "nativeSrc": "22621:1:23", + "nodeType": "YulLiteral", + "src": "22621:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22609:3:23", + "nodeType": "YulIdentifier", + "src": "22609:3:23" + }, + "nativeSrc": "22609:14:23", + "nodeType": "YulFunctionCall", + "src": "22609:14:23" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "22599:6:23", + "nodeType": "YulIdentifier", + "src": "22599:6:23" + } + ] + }, + { + "nativeSrc": "22644:31:23", + "nodeType": "YulAssignment", + "src": "22644:31:23", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "22661:9:23", + "nodeType": "YulIdentifier", + "src": "22661:9:23" + }, + { + "kind": "number", + "nativeSrc": "22672:2:23", + "nodeType": "YulLiteral", + "src": "22672:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22657:3:23", + "nodeType": "YulIdentifier", + "src": "22657:3:23" + }, + "nativeSrc": "22657:18:23", + "nodeType": "YulFunctionCall", + "src": "22657:18:23" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "22644:9:23", + "nodeType": "YulIdentifier", + "src": "22644:9:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "22480:1:23", + "nodeType": "YulIdentifier", + "src": "22480:1:23" + }, + { + "name": "loopEnd", + "nativeSrc": "22483:7:23", + "nodeType": "YulIdentifier", + "src": "22483:7:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22477:2:23", + "nodeType": "YulIdentifier", + "src": "22477:2:23" + }, + "nativeSrc": "22477:14:23", + "nodeType": "YulFunctionCall", + "src": "22477:14:23" + }, + "nativeSrc": "22469:224:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "22492:21:23", + "nodeType": "YulBlock", + "src": "22492:21:23", + "statements": [ + { + "nativeSrc": "22494:17:23", + "nodeType": "YulAssignment", + "src": "22494:17:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "22503:1:23", + "nodeType": "YulIdentifier", + "src": "22503:1:23" + }, + { + "kind": "number", + "nativeSrc": "22506:4:23", + "nodeType": "YulLiteral", + "src": "22506:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22499:3:23", + "nodeType": "YulIdentifier", + "src": "22499:3:23" + }, + "nativeSrc": "22499:12:23", + "nodeType": "YulFunctionCall", + "src": "22499:12:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "22494:1:23", + "nodeType": "YulIdentifier", + "src": "22494:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "22473:3:23", + "nodeType": "YulBlock", + "src": "22473:3:23", + "statements": [] + }, + "src": "22469:224:23" + }, + { + "body": { + "nativeSrc": "22733:168:23", + "nodeType": "YulBlock", + "src": "22733:168:23", + "statements": [ + { + "nativeSrc": "22755:43:23", + "nodeType": "YulVariableDeclaration", + "src": "22755:43:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "22782:3:23", + "nodeType": "YulIdentifier", + "src": "22782:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "22787:9:23", + "nodeType": "YulIdentifier", + "src": "22787:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22778:3:23", + "nodeType": "YulIdentifier", + "src": "22778:3:23" + }, + "nativeSrc": "22778:19:23", + "nodeType": "YulFunctionCall", + "src": "22778:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22772:5:23", + "nodeType": "YulIdentifier", + "src": "22772:5:23" + }, + "nativeSrc": "22772:26:23", + "nodeType": "YulFunctionCall", + "src": "22772:26:23" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "22759:9:23", + "nodeType": "YulTypedName", + "src": "22759:9:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "22826:6:23", + "nodeType": "YulIdentifier", + "src": "22826:6:23" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "22853:9:23", + "nodeType": "YulIdentifier", + "src": "22853:9:23" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "22868:6:23", + "nodeType": "YulIdentifier", + "src": "22868:6:23" + }, + { + "kind": "number", + "nativeSrc": "22876:4:23", + "nodeType": "YulLiteral", + "src": "22876:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22864:3:23", + "nodeType": "YulIdentifier", + "src": "22864:3:23" + }, + "nativeSrc": "22864:17:23", + "nodeType": "YulFunctionCall", + "src": "22864:17:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "22834:18:23", + "nodeType": "YulIdentifier", + "src": "22834:18:23" + }, + "nativeSrc": "22834:48:23", + "nodeType": "YulFunctionCall", + "src": "22834:48:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "22819:6:23", + "nodeType": "YulIdentifier", + "src": "22819:6:23" + }, + "nativeSrc": "22819:64:23", + "nodeType": "YulFunctionCall", + "src": "22819:64:23" + }, + "nativeSrc": "22819:64:23", + "nodeType": "YulExpressionStatement", + "src": "22819:64:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "22716:7:23", + "nodeType": "YulIdentifier", + "src": "22716:7:23" + }, + { + "name": "newLen", + "nativeSrc": "22725:6:23", + "nodeType": "YulIdentifier", + "src": "22725:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22713:2:23", + "nodeType": "YulIdentifier", + "src": "22713:2:23" + }, + "nativeSrc": "22713:19:23", + "nodeType": "YulFunctionCall", + "src": "22713:19:23" + }, + "nativeSrc": "22710:191:23", + "nodeType": "YulIf", + "src": "22710:191:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "22925:4:23", + "nodeType": "YulIdentifier", + "src": "22925:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "22939:6:23", + "nodeType": "YulIdentifier", + "src": "22939:6:23" + }, + { + "kind": "number", + "nativeSrc": "22947:1:23", + "nodeType": "YulLiteral", + "src": "22947:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "22935:3:23", + "nodeType": "YulIdentifier", + "src": "22935:3:23" + }, + "nativeSrc": "22935:14:23", + "nodeType": "YulFunctionCall", + "src": "22935:14:23" + }, + { + "kind": "number", + "nativeSrc": "22951:1:23", + "nodeType": "YulLiteral", + "src": "22951:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22931:3:23", + "nodeType": "YulIdentifier", + "src": "22931:3:23" + }, + "nativeSrc": "22931:22:23", + "nodeType": "YulFunctionCall", + "src": "22931:22:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "22918:6:23", + "nodeType": "YulIdentifier", + "src": "22918:6:23" + }, + "nativeSrc": "22918:36:23", + "nodeType": "YulFunctionCall", + "src": "22918:36:23" + }, + "nativeSrc": "22918:36:23", + "nodeType": "YulExpressionStatement", + "src": "22918:36:23" + } + ] + }, + "nativeSrc": "22294:674:23", + "nodeType": "YulCase", + "src": "22294:674:23", + "value": { + "kind": "number", + "nativeSrc": "22299:1:23", + "nodeType": "YulLiteral", + "src": "22299:1:23", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "22989:246:23", + "nodeType": "YulBlock", + "src": "22989:246:23", + "statements": [ + { + "nativeSrc": "23007:14:23", + "nodeType": "YulVariableDeclaration", + "src": "23007:14:23", + "value": { + "kind": "number", + "nativeSrc": "23020:1:23", + "nodeType": "YulLiteral", + "src": "23020:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "23011:5:23", + "nodeType": "YulTypedName", + "src": "23011:5:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "23048:75:23", + "nodeType": "YulBlock", + "src": "23048:75:23", + "statements": [ + { + "nativeSrc": "23070:35:23", + "nodeType": "YulAssignment", + "src": "23070:35:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "23089:3:23", + "nodeType": "YulIdentifier", + "src": "23089:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "23094:9:23", + "nodeType": "YulIdentifier", + "src": "23094:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23085:3:23", + "nodeType": "YulIdentifier", + "src": "23085:3:23" + }, + "nativeSrc": "23085:19:23", + "nodeType": "YulFunctionCall", + "src": "23085:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23079:5:23", + "nodeType": "YulIdentifier", + "src": "23079:5:23" + }, + "nativeSrc": "23079:26:23", + "nodeType": "YulFunctionCall", + "src": "23079:26:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "23070:5:23", + "nodeType": "YulIdentifier", + "src": "23070:5:23" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "23041:6:23", + "nodeType": "YulIdentifier", + "src": "23041:6:23" + }, + "nativeSrc": "23038:85:23", + "nodeType": "YulIf", + "src": "23038:85:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "23147:4:23", + "nodeType": "YulIdentifier", + "src": "23147:4:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "23206:5:23", + "nodeType": "YulIdentifier", + "src": "23206:5:23" + }, + { + "name": "newLen", + "nativeSrc": "23213:6:23", + "nodeType": "YulIdentifier", + "src": "23213:6:23" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "23153:52:23", + "nodeType": "YulIdentifier", + "src": "23153:52:23" + }, + "nativeSrc": "23153:67:23", + "nodeType": "YulFunctionCall", + "src": "23153:67:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "23140:6:23", + "nodeType": "YulIdentifier", + "src": "23140:6:23" + }, + "nativeSrc": "23140:81:23", + "nodeType": "YulFunctionCall", + "src": "23140:81:23" + }, + "nativeSrc": "23140:81:23", + "nodeType": "YulExpressionStatement", + "src": "23140:81:23" + } + ] + }, + "nativeSrc": "22981:254:23", + "nodeType": "YulCase", + "src": "22981:254:23", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "22270:6:23", + "nodeType": "YulIdentifier", + "src": "22270:6:23" + }, + { + "kind": "number", + "nativeSrc": "22278:2:23", + "nodeType": "YulLiteral", + "src": "22278:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22267:2:23", + "nodeType": "YulIdentifier", + "src": "22267:2:23" + }, + "nativeSrc": "22267:14:23", + "nodeType": "YulFunctionCall", + "src": "22267:14:23" + }, + "nativeSrc": "22260:975:23", + "nodeType": "YulSwitch", + "src": "22260:975:23" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "21722:1523:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "21803:4:23", + "nodeType": "YulTypedName", + "src": "21803:4:23", + "type": "" + }, + { + "name": "src", + "nativeSrc": "21809:3:23", + "nodeType": "YulTypedName", + "src": "21809:3:23", + "type": "" + } + ], + "src": "21722:1523:23" + }, + { + "body": { + "nativeSrc": "23369:42:23", + "nodeType": "YulBlock", + "src": "23369:42:23", + "statements": [ + { + "nativeSrc": "23383:18:23", + "nodeType": "YulAssignment", + "src": "23383:18:23", + "value": { + "name": "pos", + "nativeSrc": "23398:3:23", + "nodeType": "YulIdentifier", + "src": "23398:3:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "23383:11:23", + "nodeType": "YulIdentifier", + "src": "23383:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "23255:156:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23341:3:23", + "nodeType": "YulTypedName", + "src": "23341:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "23346:6:23", + "nodeType": "YulTypedName", + "src": "23346:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "23357:11:23", + "nodeType": "YulTypedName", + "src": "23357:11:23", + "type": "" + } + ], + "src": "23255:156:23" + }, + { + "body": { + "nativeSrc": "23531:300:23", + "nodeType": "YulBlock", + "src": "23531:300:23", + "statements": [ + { + "nativeSrc": "23545:53:23", + "nodeType": "YulVariableDeclaration", + "src": "23545:53:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "23592:5:23", + "nodeType": "YulIdentifier", + "src": "23592:5:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "23559:32:23", + "nodeType": "YulIdentifier", + "src": "23559:32:23" + }, + "nativeSrc": "23559:39:23", + "nodeType": "YulFunctionCall", + "src": "23559:39:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "23549:6:23", + "nodeType": "YulTypedName", + "src": "23549:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "23611:96:23", + "nodeType": "YulAssignment", + "src": "23611:96:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23695:3:23", + "nodeType": "YulIdentifier", + "src": "23695:3:23" + }, + { + "name": "length", + "nativeSrc": "23700:6:23", + "nodeType": "YulIdentifier", + "src": "23700:6:23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "23618:76:23", + "nodeType": "YulIdentifier", + "src": "23618:76:23" + }, + "nativeSrc": "23618:89:23", + "nodeType": "YulFunctionCall", + "src": "23618:89:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "23611:3:23", + "nodeType": "YulIdentifier", + "src": "23611:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "23759:5:23", + "nodeType": "YulIdentifier", + "src": "23759:5:23" + }, + { + "kind": "number", + "nativeSrc": "23766:4:23", + "nodeType": "YulLiteral", + "src": "23766:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23755:3:23", + "nodeType": "YulIdentifier", + "src": "23755:3:23" + }, + "nativeSrc": "23755:16:23", + "nodeType": "YulFunctionCall", + "src": "23755:16:23" + }, + { + "name": "pos", + "nativeSrc": "23773:3:23", + "nodeType": "YulIdentifier", + "src": "23773:3:23" + }, + { + "name": "length", + "nativeSrc": "23778:6:23", + "nodeType": "YulIdentifier", + "src": "23778:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "23720:34:23", + "nodeType": "YulIdentifier", + "src": "23720:34:23" + }, + "nativeSrc": "23720:65:23", + "nodeType": "YulFunctionCall", + "src": "23720:65:23" + }, + "nativeSrc": "23720:65:23", + "nodeType": "YulExpressionStatement", + "src": "23720:65:23" + }, + { + "nativeSrc": "23798:23:23", + "nodeType": "YulAssignment", + "src": "23798:23:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23809:3:23", + "nodeType": "YulIdentifier", + "src": "23809:3:23" + }, + { + "name": "length", + "nativeSrc": "23814:6:23", + "nodeType": "YulIdentifier", + "src": "23814:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23805:3:23", + "nodeType": "YulIdentifier", + "src": "23805:3:23" + }, + "nativeSrc": "23805:16:23", + "nodeType": "YulFunctionCall", + "src": "23805:16:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "23798:3:23", + "nodeType": "YulIdentifier", + "src": "23798:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "23421:410:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23512:5:23", + "nodeType": "YulTypedName", + "src": "23512:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "23519:3:23", + "nodeType": "YulTypedName", + "src": "23519:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23527:3:23", + "nodeType": "YulTypedName", + "src": "23527:3:23", + "type": "" + } + ], + "src": "23421:410:23" + }, + { + "body": { + "nativeSrc": "24025:267:23", + "nodeType": "YulBlock", + "src": "24025:267:23", + "statements": [ + { + "nativeSrc": "24040:102:23", + "nodeType": "YulAssignment", + "src": "24040:102:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24129:6:23", + "nodeType": "YulIdentifier", + "src": "24129:6:23" + }, + { + "name": "pos", + "nativeSrc": "24138:3:23", + "nodeType": "YulIdentifier", + "src": "24138:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "24047:81:23", + "nodeType": "YulIdentifier", + "src": "24047:81:23" + }, + "nativeSrc": "24047:95:23", + "nodeType": "YulFunctionCall", + "src": "24047:95:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "24040:3:23", + "nodeType": "YulIdentifier", + "src": "24040:3:23" + } + ] + }, + { + "nativeSrc": "24156:102:23", + "nodeType": "YulAssignment", + "src": "24156:102:23", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "24245:6:23", + "nodeType": "YulIdentifier", + "src": "24245:6:23" + }, + { + "name": "pos", + "nativeSrc": "24254:3:23", + "nodeType": "YulIdentifier", + "src": "24254:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "24163:81:23", + "nodeType": "YulIdentifier", + "src": "24163:81:23" + }, + "nativeSrc": "24163:95:23", + "nodeType": "YulFunctionCall", + "src": "24163:95:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "24156:3:23", + "nodeType": "YulIdentifier", + "src": "24156:3:23" + } + ] + }, + { + "nativeSrc": "24272:10:23", + "nodeType": "YulAssignment", + "src": "24272:10:23", + "value": { + "name": "pos", + "nativeSrc": "24279:3:23", + "nodeType": "YulIdentifier", + "src": "24279:3:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "24272:3:23", + "nodeType": "YulIdentifier", + "src": "24272:3:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "23841:451:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23996:3:23", + "nodeType": "YulTypedName", + "src": "23996:3:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24002:6:23", + "nodeType": "YulTypedName", + "src": "24002:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24010:6:23", + "nodeType": "YulTypedName", + "src": "24010:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24021:3:23", + "nodeType": "YulTypedName", + "src": "24021:3:23", + "type": "" + } + ], + "src": "23841:451:23" + }, + { + "body": { + "nativeSrc": "24345:206:23", + "nodeType": "YulBlock", + "src": "24345:206:23", + "statements": [ + { + "nativeSrc": "24359:33:23", + "nodeType": "YulAssignment", + "src": "24359:33:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24386:5:23", + "nodeType": "YulIdentifier", + "src": "24386:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24368:17:23", + "nodeType": "YulIdentifier", + "src": "24368:17:23" + }, + "nativeSrc": "24368:24:23", + "nodeType": "YulFunctionCall", + "src": "24368:24:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24359:5:23", + "nodeType": "YulIdentifier", + "src": "24359:5:23" + } + ] + }, + { + "body": { + "nativeSrc": "24486:22:23", + "nodeType": "YulBlock", + "src": "24486:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "24488:16:23", + "nodeType": "YulIdentifier", + "src": "24488:16:23" + }, + "nativeSrc": "24488:18:23", + "nodeType": "YulFunctionCall", + "src": "24488:18:23" + }, + "nativeSrc": "24488:18:23", + "nodeType": "YulExpressionStatement", + "src": "24488:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24411:5:23", + "nodeType": "YulIdentifier", + "src": "24411:5:23" + }, + { + "kind": "number", + "nativeSrc": "24418:66:23", + "nodeType": "YulLiteral", + "src": "24418:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "24408:2:23", + "nodeType": "YulIdentifier", + "src": "24408:2:23" + }, + "nativeSrc": "24408:77:23", + "nodeType": "YulFunctionCall", + "src": "24408:77:23" + }, + "nativeSrc": "24405:103:23", + "nodeType": "YulIf", + "src": "24405:103:23" + }, + { + "nativeSrc": "24521:20:23", + "nodeType": "YulAssignment", + "src": "24521:20:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24532:5:23", + "nodeType": "YulIdentifier", + "src": "24532:5:23" + }, + { + "kind": "number", + "nativeSrc": "24539:1:23", + "nodeType": "YulLiteral", + "src": "24539:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24528:3:23", + "nodeType": "YulIdentifier", + "src": "24528:3:23" + }, + "nativeSrc": "24528:13:23", + "nodeType": "YulFunctionCall", + "src": "24528:13:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "24521:3:23", + "nodeType": "YulIdentifier", + "src": "24521:3:23" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "24302:249:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24331:5:23", + "nodeType": "YulTypedName", + "src": "24331:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24341:3:23", + "nodeType": "YulTypedName", + "src": "24341:3:23", + "type": "" + } + ], + "src": "24302:249:23" + }, + { + "body": { + "nativeSrc": "24606:169:23", + "nodeType": "YulBlock", + "src": "24606:169:23", + "statements": [ + { + "nativeSrc": "24620:25:23", + "nodeType": "YulAssignment", + "src": "24620:25:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "24643:1:23", + "nodeType": "YulIdentifier", + "src": "24643:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24625:17:23", + "nodeType": "YulIdentifier", + "src": "24625:17:23" + }, + "nativeSrc": "24625:20:23", + "nodeType": "YulFunctionCall", + "src": "24625:20:23" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "24620:1:23", + "nodeType": "YulIdentifier", + "src": "24620:1:23" + } + ] + }, + { + "nativeSrc": "24658:25:23", + "nodeType": "YulAssignment", + "src": "24658:25:23", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "24681:1:23", + "nodeType": "YulIdentifier", + "src": "24681:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24663:17:23", + "nodeType": "YulIdentifier", + "src": "24663:17:23" + }, + "nativeSrc": "24663:20:23", + "nodeType": "YulFunctionCall", + "src": "24663:20:23" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "24658:1:23", + "nodeType": "YulIdentifier", + "src": "24658:1:23" + } + ] + }, + { + "nativeSrc": "24696:17:23", + "nodeType": "YulAssignment", + "src": "24696:17:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "24708:1:23", + "nodeType": "YulIdentifier", + "src": "24708:1:23" + }, + { + "name": "y", + "nativeSrc": "24711:1:23", + "nodeType": "YulIdentifier", + "src": "24711:1:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24704:3:23", + "nodeType": "YulIdentifier", + "src": "24704:3:23" + }, + "nativeSrc": "24704:9:23", + "nodeType": "YulFunctionCall", + "src": "24704:9:23" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "24696:4:23", + "nodeType": "YulIdentifier", + "src": "24696:4:23" + } + ] + }, + { + "body": { + "nativeSrc": "24742:22:23", + "nodeType": "YulBlock", + "src": "24742:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "24744:16:23", + "nodeType": "YulIdentifier", + "src": "24744:16:23" + }, + "nativeSrc": "24744:18:23", + "nodeType": "YulFunctionCall", + "src": "24744:18:23" + }, + "nativeSrc": "24744:18:23", + "nodeType": "YulExpressionStatement", + "src": "24744:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "24733:4:23", + "nodeType": "YulIdentifier", + "src": "24733:4:23" + }, + { + "name": "x", + "nativeSrc": "24739:1:23", + "nodeType": "YulIdentifier", + "src": "24739:1:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "24730:2:23", + "nodeType": "YulIdentifier", + "src": "24730:2:23" + }, + "nativeSrc": "24730:11:23", + "nodeType": "YulFunctionCall", + "src": "24730:11:23" + }, + "nativeSrc": "24727:37:23", + "nodeType": "YulIf", + "src": "24727:37:23" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "24561:214:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "24592:1:23", + "nodeType": "YulTypedName", + "src": "24592:1:23", + "type": "" + }, + { + "name": "y", + "nativeSrc": "24595:1:23", + "nodeType": "YulTypedName", + "src": "24595:1:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "24601:4:23", + "nodeType": "YulTypedName", + "src": "24601:4:23", + "type": "" + } + ], + "src": "24561:214:23" + }, + { + "body": { + "nativeSrc": "24813:168:23", + "nodeType": "YulBlock", + "src": "24813:168:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24834:1:23", + "nodeType": "YulLiteral", + "src": "24834:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24837:77:23", + "nodeType": "YulLiteral", + "src": "24837:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24827:6:23", + "nodeType": "YulIdentifier", + "src": "24827:6:23" + }, + "nativeSrc": "24827:88:23", + "nodeType": "YulFunctionCall", + "src": "24827:88:23" + }, + "nativeSrc": "24827:88:23", + "nodeType": "YulExpressionStatement", + "src": "24827:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24935:1:23", + "nodeType": "YulLiteral", + "src": "24935:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "24938:4:23", + "nodeType": "YulLiteral", + "src": "24938:4:23", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24928:6:23", + "nodeType": "YulIdentifier", + "src": "24928:6:23" + }, + "nativeSrc": "24928:15:23", + "nodeType": "YulFunctionCall", + "src": "24928:15:23" + }, + "nativeSrc": "24928:15:23", + "nodeType": "YulExpressionStatement", + "src": "24928:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24963:1:23", + "nodeType": "YulLiteral", + "src": "24963:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24966:4:23", + "nodeType": "YulLiteral", + "src": "24966:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24956:6:23", + "nodeType": "YulIdentifier", + "src": "24956:6:23" + }, + "nativeSrc": "24956:15:23", + "nodeType": "YulFunctionCall", + "src": "24956:15:23" + }, + "nativeSrc": "24956:15:23", + "nodeType": "YulExpressionStatement", + "src": "24956:15:23" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "24785:196:23", + "nodeType": "YulFunctionDefinition", + "src": "24785:196:23" + }, + { + "body": { + "nativeSrc": "25049:48:23", + "nodeType": "YulBlock", + "src": "25049:48:23", + "statements": [ + { + "nativeSrc": "25064:22:23", + "nodeType": "YulAssignment", + "src": "25064:22:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25080:5:23", + "nodeType": "YulIdentifier", + "src": "25080:5:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25074:5:23", + "nodeType": "YulIdentifier", + "src": "25074:5:23" + }, + "nativeSrc": "25074:12:23", + "nodeType": "YulFunctionCall", + "src": "25074:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "25064:6:23", + "nodeType": "YulIdentifier", + "src": "25064:6:23" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "24991:106:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25032:5:23", + "nodeType": "YulTypedName", + "src": "25032:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "25042:6:23", + "nodeType": "YulTypedName", + "src": "25042:6:23", + "type": "" + } + ], + "src": "24991:106:23" + }, + { + "body": { + "nativeSrc": "25202:85:23", + "nodeType": "YulBlock", + "src": "25202:85:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25223:3:23", + "nodeType": "YulIdentifier", + "src": "25223:3:23" + }, + { + "name": "length", + "nativeSrc": "25228:6:23", + "nodeType": "YulIdentifier", + "src": "25228:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25216:6:23", + "nodeType": "YulIdentifier", + "src": "25216:6:23" + }, + "nativeSrc": "25216:19:23", + "nodeType": "YulFunctionCall", + "src": "25216:19:23" + }, + "nativeSrc": "25216:19:23", + "nodeType": "YulExpressionStatement", + "src": "25216:19:23" + }, + { + "nativeSrc": "25248:29:23", + "nodeType": "YulAssignment", + "src": "25248:29:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25267:3:23", + "nodeType": "YulIdentifier", + "src": "25267:3:23" + }, + { + "kind": "number", + "nativeSrc": "25272:4:23", + "nodeType": "YulLiteral", + "src": "25272:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25263:3:23", + "nodeType": "YulIdentifier", + "src": "25263:3:23" + }, + "nativeSrc": "25263:14:23", + "nodeType": "YulFunctionCall", + "src": "25263:14:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "25248:11:23", + "nodeType": "YulIdentifier", + "src": "25248:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "25107:180:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "25174:3:23", + "nodeType": "YulTypedName", + "src": "25174:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "25179:6:23", + "nodeType": "YulTypedName", + "src": "25179:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "25190:11:23", + "nodeType": "YulTypedName", + "src": "25190:11:23", + "type": "" + } + ], + "src": "25107:180:23" + }, + { + "body": { + "nativeSrc": "25387:303:23", + "nodeType": "YulBlock", + "src": "25387:303:23", + "statements": [ + { + "nativeSrc": "25401:52:23", + "nodeType": "YulVariableDeclaration", + "src": "25401:52:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25447:5:23", + "nodeType": "YulIdentifier", + "src": "25447:5:23" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "25415:31:23", + "nodeType": "YulIdentifier", + "src": "25415:31:23" + }, + "nativeSrc": "25415:38:23", + "nodeType": "YulFunctionCall", + "src": "25415:38:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "25405:6:23", + "nodeType": "YulTypedName", + "src": "25405:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "25466:77:23", + "nodeType": "YulAssignment", + "src": "25466:77:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25531:3:23", + "nodeType": "YulIdentifier", + "src": "25531:3:23" + }, + { + "name": "length", + "nativeSrc": "25536:6:23", + "nodeType": "YulIdentifier", + "src": "25536:6:23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "25473:57:23", + "nodeType": "YulIdentifier", + "src": "25473:57:23" + }, + "nativeSrc": "25473:70:23", + "nodeType": "YulFunctionCall", + "src": "25473:70:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25466:3:23", + "nodeType": "YulIdentifier", + "src": "25466:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25595:5:23", + "nodeType": "YulIdentifier", + "src": "25595:5:23" + }, + { + "kind": "number", + "nativeSrc": "25602:4:23", + "nodeType": "YulLiteral", + "src": "25602:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25591:3:23", + "nodeType": "YulIdentifier", + "src": "25591:3:23" + }, + "nativeSrc": "25591:16:23", + "nodeType": "YulFunctionCall", + "src": "25591:16:23" + }, + { + "name": "pos", + "nativeSrc": "25609:3:23", + "nodeType": "YulIdentifier", + "src": "25609:3:23" + }, + { + "name": "length", + "nativeSrc": "25614:6:23", + "nodeType": "YulIdentifier", + "src": "25614:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "25556:34:23", + "nodeType": "YulIdentifier", + "src": "25556:34:23" + }, + "nativeSrc": "25556:65:23", + "nodeType": "YulFunctionCall", + "src": "25556:65:23" + }, + "nativeSrc": "25556:65:23", + "nodeType": "YulExpressionStatement", + "src": "25556:65:23" + }, + { + "nativeSrc": "25634:46:23", + "nodeType": "YulAssignment", + "src": "25634:46:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25645:3:23", + "nodeType": "YulIdentifier", + "src": "25645:3:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "25672:6:23", + "nodeType": "YulIdentifier", + "src": "25672:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "25650:21:23", + "nodeType": "YulIdentifier", + "src": "25650:21:23" + }, + "nativeSrc": "25650:29:23", + "nodeType": "YulFunctionCall", + "src": "25650:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25641:3:23", + "nodeType": "YulIdentifier", + "src": "25641:3:23" + }, + "nativeSrc": "25641:39:23", + "nodeType": "YulFunctionCall", + "src": "25641:39:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25634:3:23", + "nodeType": "YulIdentifier", + "src": "25634:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "25297:393:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25368:5:23", + "nodeType": "YulTypedName", + "src": "25368:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "25375:3:23", + "nodeType": "YulTypedName", + "src": "25375:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "25383:3:23", + "nodeType": "YulTypedName", + "src": "25383:3:23", + "type": "" + } + ], + "src": "25297:393:23" + }, + { + "body": { + "nativeSrc": "25900:468:23", + "nodeType": "YulBlock", + "src": "25900:468:23", + "statements": [ + { + "nativeSrc": "25914:27:23", + "nodeType": "YulAssignment", + "src": "25914:27:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25926:9:23", + "nodeType": "YulIdentifier", + "src": "25926:9:23" + }, + { + "kind": "number", + "nativeSrc": "25937:3:23", + "nodeType": "YulLiteral", + "src": "25937:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25922:3:23", + "nodeType": "YulIdentifier", + "src": "25922:3:23" + }, + "nativeSrc": "25922:19:23", + "nodeType": "YulFunctionCall", + "src": "25922:19:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25914:4:23", + "nodeType": "YulIdentifier", + "src": "25914:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "25999:6:23", + "nodeType": "YulIdentifier", + "src": "25999:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26012:9:23", + "nodeType": "YulIdentifier", + "src": "26012:9:23" + }, + { + "kind": "number", + "nativeSrc": "26023:1:23", + "nodeType": "YulLiteral", + "src": "26023:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26008:3:23", + "nodeType": "YulIdentifier", + "src": "26008:3:23" + }, + "nativeSrc": "26008:17:23", + "nodeType": "YulFunctionCall", + "src": "26008:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "25955:43:23", + "nodeType": "YulIdentifier", + "src": "25955:43:23" + }, + "nativeSrc": "25955:71:23", + "nodeType": "YulFunctionCall", + "src": "25955:71:23" + }, + "nativeSrc": "25955:71:23", + "nodeType": "YulExpressionStatement", + "src": "25955:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26084:6:23", + "nodeType": "YulIdentifier", + "src": "26084:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26097:9:23", + "nodeType": "YulIdentifier", + "src": "26097:9:23" + }, + { + "kind": "number", + "nativeSrc": "26108:2:23", + "nodeType": "YulLiteral", + "src": "26108:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26093:3:23", + "nodeType": "YulIdentifier", + "src": "26093:3:23" + }, + "nativeSrc": "26093:18:23", + "nodeType": "YulFunctionCall", + "src": "26093:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "26040:43:23", + "nodeType": "YulIdentifier", + "src": "26040:43:23" + }, + "nativeSrc": "26040:72:23", + "nodeType": "YulFunctionCall", + "src": "26040:72:23" + }, + "nativeSrc": "26040:72:23", + "nodeType": "YulExpressionStatement", + "src": "26040:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "26170:6:23", + "nodeType": "YulIdentifier", + "src": "26170:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26183:9:23", + "nodeType": "YulIdentifier", + "src": "26183:9:23" + }, + { + "kind": "number", + "nativeSrc": "26194:2:23", + "nodeType": "YulLiteral", + "src": "26194:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26179:3:23", + "nodeType": "YulIdentifier", + "src": "26179:3:23" + }, + "nativeSrc": "26179:18:23", + "nodeType": "YulFunctionCall", + "src": "26179:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "26126:43:23", + "nodeType": "YulIdentifier", + "src": "26126:43:23" + }, + "nativeSrc": "26126:72:23", + "nodeType": "YulFunctionCall", + "src": "26126:72:23" + }, + "nativeSrc": "26126:72:23", + "nodeType": "YulExpressionStatement", + "src": "26126:72:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26223:9:23", + "nodeType": "YulIdentifier", + "src": "26223:9:23" + }, + { + "kind": "number", + "nativeSrc": "26234:2:23", + "nodeType": "YulLiteral", + "src": "26234:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26219:3:23", + "nodeType": "YulIdentifier", + "src": "26219:3:23" + }, + "nativeSrc": "26219:18:23", + "nodeType": "YulFunctionCall", + "src": "26219:18:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "26243:4:23", + "nodeType": "YulIdentifier", + "src": "26243:4:23" + }, + { + "name": "headStart", + "nativeSrc": "26249:9:23", + "nodeType": "YulIdentifier", + "src": "26249:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26239:3:23", + "nodeType": "YulIdentifier", + "src": "26239:3:23" + }, + "nativeSrc": "26239:20:23", + "nodeType": "YulFunctionCall", + "src": "26239:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26212:6:23", + "nodeType": "YulIdentifier", + "src": "26212:6:23" + }, + "nativeSrc": "26212:48:23", + "nodeType": "YulFunctionCall", + "src": "26212:48:23" + }, + "nativeSrc": "26212:48:23", + "nodeType": "YulExpressionStatement", + "src": "26212:48:23" + }, + { + "nativeSrc": "26273:84:23", + "nodeType": "YulAssignment", + "src": "26273:84:23", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "26343:6:23", + "nodeType": "YulIdentifier", + "src": "26343:6:23" + }, + { + "name": "tail", + "nativeSrc": "26352:4:23", + "nodeType": "YulIdentifier", + "src": "26352:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "26281:61:23", + "nodeType": "YulIdentifier", + "src": "26281:61:23" + }, + "nativeSrc": "26281:76:23", + "nodeType": "YulFunctionCall", + "src": "26281:76:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26273:4:23", + "nodeType": "YulIdentifier", + "src": "26273:4:23" + } + ] + } + ] + }, + "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", + "nativeSrc": "25700:668:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25848:9:23", + "nodeType": "YulTypedName", + "src": "25848:9:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "25860:6:23", + "nodeType": "YulTypedName", + "src": "25860:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "25868:6:23", + "nodeType": "YulTypedName", + "src": "25868:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "25876:6:23", + "nodeType": "YulTypedName", + "src": "25876:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "25884:6:23", + "nodeType": "YulTypedName", + "src": "25884:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25895:4:23", + "nodeType": "YulTypedName", + "src": "25895:4:23", + "type": "" + } + ], + "src": "25700:668:23" + }, + { + "body": { + "nativeSrc": "26440:91:23", + "nodeType": "YulBlock", + "src": "26440:91:23", + "statements": [ + { + "nativeSrc": "26454:22:23", + "nodeType": "YulAssignment", + "src": "26454:22:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "26469:6:23", + "nodeType": "YulIdentifier", + "src": "26469:6:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "26463:5:23", + "nodeType": "YulIdentifier", + "src": "26463:5:23" + }, + "nativeSrc": "26463:13:23", + "nodeType": "YulFunctionCall", + "src": "26463:13:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "26454:5:23", + "nodeType": "YulIdentifier", + "src": "26454:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26515:5:23", + "nodeType": "YulIdentifier", + "src": "26515:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "26489:25:23", + "nodeType": "YulIdentifier", + "src": "26489:25:23" + }, + "nativeSrc": "26489:32:23", + "nodeType": "YulFunctionCall", + "src": "26489:32:23" + }, + "nativeSrc": "26489:32:23", + "nodeType": "YulExpressionStatement", + "src": "26489:32:23" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "26378:153:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "26418:6:23", + "nodeType": "YulTypedName", + "src": "26418:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "26426:3:23", + "nodeType": "YulTypedName", + "src": "26426:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "26434:5:23", + "nodeType": "YulTypedName", + "src": "26434:5:23", + "type": "" + } + ], + "src": "26378:153:23" + }, + { + "body": { + "nativeSrc": "26617:297:23", + "nodeType": "YulBlock", + "src": "26617:297:23", + "statements": [ + { + "body": { + "nativeSrc": "26667:83:23", + "nodeType": "YulBlock", + "src": "26667:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "26669:77:23", + "nodeType": "YulIdentifier", + "src": "26669:77:23" + }, + "nativeSrc": "26669:79:23", + "nodeType": "YulFunctionCall", + "src": "26669:79:23" + }, + "nativeSrc": "26669:79:23", + "nodeType": "YulExpressionStatement", + "src": "26669:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "26642:7:23", + "nodeType": "YulIdentifier", + "src": "26642:7:23" + }, + { + "name": "headStart", + "nativeSrc": "26651:9:23", + "nodeType": "YulIdentifier", + "src": "26651:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26638:3:23", + "nodeType": "YulIdentifier", + "src": "26638:3:23" + }, + "nativeSrc": "26638:23:23", + "nodeType": "YulFunctionCall", + "src": "26638:23:23" + }, + { + "kind": "number", + "nativeSrc": "26663:2:23", + "nodeType": "YulLiteral", + "src": "26663:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "26634:3:23", + "nodeType": "YulIdentifier", + "src": "26634:3:23" + }, + "nativeSrc": "26634:32:23", + "nodeType": "YulFunctionCall", + "src": "26634:32:23" + }, + "nativeSrc": "26631:119:23", + "nodeType": "YulIf", + "src": "26631:119:23" + }, + { + "nativeSrc": "26764:139:23", + "nodeType": "YulBlock", + "src": "26764:139:23", + "statements": [ + { + "nativeSrc": "26783:15:23", + "nodeType": "YulVariableDeclaration", + "src": "26783:15:23", + "value": { + "kind": "number", + "nativeSrc": "26797:1:23", + "nodeType": "YulLiteral", + "src": "26797:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "26787:6:23", + "nodeType": "YulTypedName", + "src": "26787:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "26816:73:23", + "nodeType": "YulAssignment", + "src": "26816:73:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26861:9:23", + "nodeType": "YulIdentifier", + "src": "26861:9:23" + }, + { + "name": "offset", + "nativeSrc": "26872:6:23", + "nodeType": "YulIdentifier", + "src": "26872:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26857:3:23", + "nodeType": "YulIdentifier", + "src": "26857:3:23" + }, + "nativeSrc": "26857:22:23", + "nodeType": "YulFunctionCall", + "src": "26857:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "26881:7:23", + "nodeType": "YulIdentifier", + "src": "26881:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "26826:30:23", + "nodeType": "YulIdentifier", + "src": "26826:30:23" + }, + "nativeSrc": "26826:63:23", + "nodeType": "YulFunctionCall", + "src": "26826:63:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "26816:6:23", + "nodeType": "YulIdentifier", + "src": "26816:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "26541:373:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26587:9:23", + "nodeType": "YulTypedName", + "src": "26587:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "26598:7:23", + "nodeType": "YulTypedName", + "src": "26598:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "26610:6:23", + "nodeType": "YulTypedName", + "src": "26610:6:23", + "type": "" + } + ], + "src": "26541:373:23" + }, + { + "body": { + "nativeSrc": "26952:168:23", + "nodeType": "YulBlock", + "src": "26952:168:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26973:1:23", + "nodeType": "YulLiteral", + "src": "26973:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26976:77:23", + "nodeType": "YulLiteral", + "src": "26976:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26966:6:23", + "nodeType": "YulIdentifier", + "src": "26966:6:23" + }, + "nativeSrc": "26966:88:23", + "nodeType": "YulFunctionCall", + "src": "26966:88:23" + }, + "nativeSrc": "26966:88:23", + "nodeType": "YulExpressionStatement", + "src": "26966:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27074:1:23", + "nodeType": "YulLiteral", + "src": "27074:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "27077:4:23", + "nodeType": "YulLiteral", + "src": "27077:4:23", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27067:6:23", + "nodeType": "YulIdentifier", + "src": "27067:6:23" + }, + "nativeSrc": "27067:15:23", + "nodeType": "YulFunctionCall", + "src": "27067:15:23" + }, + "nativeSrc": "27067:15:23", + "nodeType": "YulExpressionStatement", + "src": "27067:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27102:1:23", + "nodeType": "YulLiteral", + "src": "27102:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27105:4:23", + "nodeType": "YulLiteral", + "src": "27105:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27095:6:23", + "nodeType": "YulIdentifier", + "src": "27095:6:23" + }, + "nativeSrc": "27095:15:23", + "nodeType": "YulFunctionCall", + "src": "27095:15:23" + }, + "nativeSrc": "27095:15:23", + "nodeType": "YulExpressionStatement", + "src": "27095:15:23" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "26924:196:23", + "nodeType": "YulFunctionDefinition", + "src": "26924:196:23" + }, + { + "body": { + "nativeSrc": "27256:222:23", + "nodeType": "YulBlock", + "src": "27256:222:23", + "statements": [ + { + "nativeSrc": "27270:26:23", + "nodeType": "YulAssignment", + "src": "27270:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27282:9:23", + "nodeType": "YulIdentifier", + "src": "27282:9:23" + }, + { + "kind": "number", + "nativeSrc": "27293:2:23", + "nodeType": "YulLiteral", + "src": "27293:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27278:3:23", + "nodeType": "YulIdentifier", + "src": "27278:3:23" + }, + "nativeSrc": "27278:18:23", + "nodeType": "YulFunctionCall", + "src": "27278:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "27270:4:23", + "nodeType": "YulIdentifier", + "src": "27270:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "27354:6:23", + "nodeType": "YulIdentifier", + "src": "27354:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27367:9:23", + "nodeType": "YulIdentifier", + "src": "27367:9:23" + }, + { + "kind": "number", + "nativeSrc": "27378:1:23", + "nodeType": "YulLiteral", + "src": "27378:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27363:3:23", + "nodeType": "YulIdentifier", + "src": "27363:3:23" + }, + "nativeSrc": "27363:17:23", + "nodeType": "YulFunctionCall", + "src": "27363:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "27310:43:23", + "nodeType": "YulIdentifier", + "src": "27310:43:23" + }, + "nativeSrc": "27310:71:23", + "nodeType": "YulFunctionCall", + "src": "27310:71:23" + }, + "nativeSrc": "27310:71:23", + "nodeType": "YulExpressionStatement", + "src": "27310:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "27439:6:23", + "nodeType": "YulIdentifier", + "src": "27439:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27452:9:23", + "nodeType": "YulIdentifier", + "src": "27452:9:23" + }, + { + "kind": "number", + "nativeSrc": "27463:2:23", + "nodeType": "YulLiteral", + "src": "27463:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27448:3:23", + "nodeType": "YulIdentifier", + "src": "27448:3:23" + }, + "nativeSrc": "27448:18:23", + "nodeType": "YulFunctionCall", + "src": "27448:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "27395:43:23", + "nodeType": "YulIdentifier", + "src": "27395:43:23" + }, + "nativeSrc": "27395:72:23", + "nodeType": "YulFunctionCall", + "src": "27395:72:23" + }, + "nativeSrc": "27395:72:23", + "nodeType": "YulExpressionStatement", + "src": "27395:72:23" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "27130:348:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27220:9:23", + "nodeType": "YulTypedName", + "src": "27220:9:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "27232:6:23", + "nodeType": "YulTypedName", + "src": "27232:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "27240:6:23", + "nodeType": "YulTypedName", + "src": "27240:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "27251:4:23", + "nodeType": "YulTypedName", + "src": "27251:4:23", + "type": "" + } + ], + "src": "27130:348:23" + } + ] + }, + "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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function 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_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_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_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\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 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 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_with_cleanup(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 panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b(memPtr) {\n\n mstore(add(memPtr, 0), \"0.0001 ether required to mint\")\n\n }\n\n function abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__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_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c(memPtr) {\n\n mstore(add(memPtr, 0), \"mints per wallet exceeded\")\n\n }\n\n function abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c__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_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_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 sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6(memPtr) {\n\n mstore(add(memPtr, 0), \"withdrawal failed\")\n\n }\n\n function abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6__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_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938(memPtr) {\n\n mstore(add(memPtr, 0), \"Invalid asset metadata: must inc\")\n\n mstore(add(memPtr, 32), \"lude 'ipfs://'\")\n\n }\n\n function abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938__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_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\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 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_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_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 function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n }\n", + "id": 23, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106101815760003560e01c806370a08231116100d1578063a22cb4651161008a578063ddd71ede11610064578063ddd71ede1461053d578063e985e9c514610568578063f0293fd3146105a5578063f2fde38b146105e257610181565b8063a22cb465146104ae578063b88d4fde146104d7578063c87b56dd1461050057610181565b806370a08231146103b0578063715018a6146103ed57806388662de9146104045780638da5cb5b1461042f578063918b5be11461045a57806395d89b411461048357610181565b806323b872dd1161013e578063453c231011610118578063453c2310146102f2578063505168081461031d5780636352211e146103485780636817c76c1461038557610181565b806323b872dd1461028957806324600fc3146102b257806342842e0e146102c957610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631f21bfbf146102545780632004ffd91461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a8919061213e565b61060b565b6040516101ba9190612186565b60405180910390f35b3480156101cf57600080fd5b506101d86106ed565b6040516101e59190612231565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612289565b61077f565b60405161022291906122f7565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061233e565b61079b565b005b34801561026057600080fd5b506102696107b1565b604051610276919061238d565b60405180910390f35b6102876107b7565b005b34801561029557600080fd5b506102b060048036038101906102ab91906123a8565b6108e1565b005b3480156102be57600080fd5b506102c76109e3565b005b3480156102d557600080fd5b506102f060048036038101906102eb91906123a8565b610aa1565b005b3480156102fe57600080fd5b50610307610ac1565b604051610314919061238d565b60405180910390f35b34801561032957600080fd5b50610332610ac7565b60405161033f919061238d565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612289565b610b0e565b60405161037c91906122f7565b60405180910390f35b34801561039157600080fd5b5061039a610b20565b6040516103a7919061238d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906123fb565b610b26565b6040516103e4919061238d565b60405180910390f35b3480156103f957600080fd5b50610402610be0565b005b34801561041057600080fd5b50610419610bf4565b6040516104269190612231565b60405180910390f35b34801561043b57600080fd5b50610444610c82565b60405161045191906122f7565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c919061255d565b610cac565b005b34801561048f57600080fd5b50610498610d0f565b6040516104a59190612231565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d091906125d2565b610da1565b005b3480156104e357600080fd5b506104fe60048036038101906104f991906126b3565b610db7565b005b34801561050c57600080fd5b5061052760048036038101906105229190612289565b610dd4565b6040516105349190612231565b60405180910390f35b34801561054957600080fd5b50610552610e3d565b60405161055f9190612231565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190612736565b610ed7565b60405161059c9190612186565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c791906123fb565b610f6b565b6040516105d9919061238d565b60405180910390f35b3480156105ee57600080fd5b50610609600480360381019061060491906123fb565b610f83565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106d657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e657506106e582611009565b5b9050919050565b6060600080546106fc906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610728906127a5565b80156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b5050505050905090565b600061078a82611073565b50610794826110fb565b9050919050565b6107ad82826107a8611138565b611140565b5050565b60075481565b34600854146107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f290612822565b60405180910390fd5b600954600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561087f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108769061288e565b60405180910390fd5b6001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108cf91906128dd565b925050819055506108df33611152565b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109535760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161094a91906122f7565b60405180910390fd5b60006109678383610962611138565b61117f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016109d493929190612911565b60405180910390fd5b50505050565b6109eb611399565b60006109f5610c82565b73ffffffffffffffffffffffffffffffffffffffff1647604051610a1890612979565b60006040518083038185875af1925050503d8060008114610a55576040519150601f19603f3d011682016040523d82523d6000602084013e610a5a565b606091505b5050905080610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a95906129da565b60405180910390fd5b50565b610abc83838360405180602001604052806000815250610db7565b505050565b60095481565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000610b1982611073565b9050919050565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b995760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b9091906122f7565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be8611399565b610bf26000611420565b565b600a8054610c01906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2d906127a5565b8015610c7a5780601f10610c4f57610100808354040283529160200191610c7a565b820191906000526020600020905b815481529060010190602001808311610c5d57829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb4611399565b610cbd816114e6565b610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390612a6c565b60405180910390fd5b80600a9081610d0b9190612c38565b5050565b606060018054610d1e906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4a906127a5565b8015610d975780601f10610d6c57610100808354040283529160200191610d97565b820191906000526020600020905b815481529060010190602001808311610d7a57829003601f168201915b5050505050905090565b610db3610dac611138565b838361163f565b5050565b610dc28484846108e1565b610dce848484846117ae565b50505050565b6060610ddf82611073565b506000610dea611965565b90506000815111610e0a5760405180602001604052806000815250610e35565b80610e14846119f7565b604051602001610e25929190612d46565b6040516020818303038152906040525b915050919050565b6060610e47611399565b600a8054610e54906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610e80906127a5565b8015610ecd5780601f10610ea257610100808354040283529160200191610ecd565b820191906000526020600020905b815481529060010190602001808311610eb057829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b6020528060005260406000206000915090505481565b610f8b611399565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ffd5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ff491906122f7565b60405180910390fd5b61100681611420565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008061107f83611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f257826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016110e9919061238d565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61114d8383836001611b02565b505050565b600060075490506007600081548092919061116c90612d6a565b919050555061117b8282611cc7565b5050565b60008061118b84611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111cd576111cc818486611ce5565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461125e5761120f600085600080611b02565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146112e1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6113a1611138565b73ffffffffffffffffffffffffffffffffffffffff166113bf610c82565b73ffffffffffffffffffffffffffffffffffffffff161461141e576113e2611138565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161141591906122f7565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060006040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250905080518251101561153b5760009250505061163a565b60005b8151835161154c9190612db2565b81116116325760006001905060005b835181101561160a5783818151811061157757611576612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168582856115b191906128dd565b815181106115c2576115c1612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115fd576000915061160a565b808060010191505061155b565b50801561161e57600194505050505061163a565b50808061162a90612d6a565b91505061153e565b506000925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b057816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116a791906122f7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117a19190612186565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561195f578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117f2611138565b8685856040518563ffffffff1660e01b81526004016118149493929190612e6a565b6020604051808303816000875af192505050801561185057506040513d601f19601f8201168201806040525081019061184d9190612ecb565b60015b6118d4573d8060008114611880576040519150601f19603f3d011682016040523d82523d6000602084013e611885565b606091505b5060008151036118cc57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118c391906122f7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461195d57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161195491906122f7565b60405180910390fd5b505b50505050565b6060600a8054611974906127a5565b80601f01602080910402602001604051908101604052809291908181526020018280546119a0906127a5565b80156119ed5780601f106119c2576101008083540402835291602001916119ed565b820191906000526020600020905b8154815290600101906020018083116119d057829003601f168201915b5050505050905090565b606060006001611a0684611da9565b01905060008167ffffffffffffffff811115611a2557611a24612432565b5b6040519080825280601f01601f191660200182016040528015611a575781602001600182028036833780820191505090505b509050600082602001820190505b600115611aba578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611aae57611aad612ef8565b5b04945060008503611a65575b819350505050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b3b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c6f576000611b4b84611073565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc95750611bc78184610ed7565b155b15611c0b57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c0291906122f7565b60405180910390fd5b8115611c6d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ce1828260405180602001604052806000815250611efc565b5050565b611cf0838383611f18565b611da457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6557806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d5c919061238d565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d9b929190612f27565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e07577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611dfd57611dfc612ef8565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e44576d04ee2d6d415b85acef81000000008381611e3a57611e39612ef8565b5b0492506020810190505b662386f26fc100008310611e7357662386f26fc100008381611e6957611e68612ef8565b5b0492506010810190505b6305f5e1008310611e9c576305f5e1008381611e9257611e91612ef8565b5b0492506008810190505b6127108310611ec1576127108381611eb757611eb6612ef8565b5b0492506004810190505b60648310611ee45760648381611eda57611ed9612ef8565b5b0492506002810190505b600a8310611ef3576001810190505b80915050919050565b611f068383611fd9565b611f1360008484846117ae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fd057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f915750611f908484610ed7565b5b80611fcf57508273ffffffffffffffffffffffffffffffffffffffff16611fb7836110fb565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361204b5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161204291906122f7565b60405180910390fd5b60006120598383600061117f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120cd5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016120c491906122f7565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61211b816120e6565b811461212657600080fd5b50565b60008135905061213881612112565b92915050565b600060208284031215612154576121536120dc565b5b600061216284828501612129565b91505092915050565b60008115159050919050565b6121808161216b565b82525050565b600060208201905061219b6000830184612177565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121db5780820151818401526020810190506121c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612203826121a1565b61220d81856121ac565b935061221d8185602086016121bd565b612226816121e7565b840191505092915050565b6000602082019050818103600083015261224b81846121f8565b905092915050565b6000819050919050565b61226681612253565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e6120dc565b5b60006122ad84828501612274565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122e1826122b6565b9050919050565b6122f1816122d6565b82525050565b600060208201905061230c60008301846122e8565b92915050565b61231b816122d6565b811461232657600080fd5b50565b60008135905061233881612312565b92915050565b60008060408385031215612355576123546120dc565b5b600061236385828601612329565b925050602061237485828601612274565b9150509250929050565b61238781612253565b82525050565b60006020820190506123a2600083018461237e565b92915050565b6000806000606084860312156123c1576123c06120dc565b5b60006123cf86828701612329565b93505060206123e086828701612329565b92505060406123f186828701612274565b9150509250925092565b600060208284031215612411576124106120dc565b5b600061241f84828501612329565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61246a826121e7565b810181811067ffffffffffffffff8211171561248957612488612432565b5b80604052505050565b600061249c6120d2565b90506124a88282612461565b919050565b600067ffffffffffffffff8211156124c8576124c7612432565b5b6124d1826121e7565b9050602081019050919050565b82818337600083830152505050565b60006125006124fb846124ad565b612492565b90508281526020810184848401111561251c5761251b61242d565b5b6125278482856124de565b509392505050565b600082601f83011261254457612543612428565b5b81356125548482602086016124ed565b91505092915050565b600060208284031215612573576125726120dc565b5b600082013567ffffffffffffffff811115612591576125906120e1565b5b61259d8482850161252f565b91505092915050565b6125af8161216b565b81146125ba57600080fd5b50565b6000813590506125cc816125a6565b92915050565b600080604083850312156125e9576125e86120dc565b5b60006125f785828601612329565b9250506020612608858286016125bd565b9150509250929050565b600067ffffffffffffffff82111561262d5761262c612432565b5b612636826121e7565b9050602081019050919050565b600061265661265184612612565b612492565b9050828152602081018484840111156126725761267161242d565b5b61267d8482856124de565b509392505050565b600082601f83011261269a57612699612428565b5b81356126aa848260208601612643565b91505092915050565b600080600080608085870312156126cd576126cc6120dc565b5b60006126db87828801612329565b94505060206126ec87828801612329565b93505060406126fd87828801612274565b925050606085013567ffffffffffffffff81111561271e5761271d6120e1565b5b61272a87828801612685565b91505092959194509250565b6000806040838503121561274d5761274c6120dc565b5b600061275b85828601612329565b925050602061276c85828601612329565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127bd57607f821691505b6020821081036127d0576127cf612776565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061280c601d836121ac565b9150612817826127d6565b602082019050919050565b6000602082019050818103600083015261283b816127ff565b9050919050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b60006128786019836121ac565b915061288382612842565b602082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e882612253565b91506128f383612253565b925082820190508082111561290b5761290a6128ae565b5b92915050565b600060608201905061292660008301866122e8565b612933602083018561237e565b61294060408301846122e8565b949350505050565b600081905092915050565b50565b6000612963600083612948565b915061296e82612953565b600082019050919050565b600061298482612956565b9150819050919050565b7f7769746864726177616c206661696c6564000000000000000000000000000000600082015250565b60006129c46011836121ac565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f496e76616c6964206173736574206d657461646174613a206d75737420696e6360008201527f6c7564652027697066733a2f2f27000000000000000000000000000000000000602082015250565b6000612a56602e836121ac565b9150612a61826129fa565b604082019050919050565b60006020820190508181036000830152612a8581612a49565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ab1565b612af88683612ab1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612b35612b30612b2b84612253565b612b10565b612253565b9050919050565b6000819050919050565b612b4f83612b1a565b612b63612b5b82612b3c565b848454612abe565b825550505050565b600090565b612b78612b6b565b612b83818484612b46565b505050565b5b81811015612ba757612b9c600082612b70565b600181019050612b89565b5050565b601f821115612bec57612bbd81612a8c565b612bc684612aa1565b81016020851015612bd5578190505b612be9612be185612aa1565b830182612b88565b50505b505050565b600082821c905092915050565b6000612c0f60001984600802612bf1565b1980831691505092915050565b6000612c288383612bfe565b9150826002028217905092915050565b612c41826121a1565b67ffffffffffffffff811115612c5a57612c59612432565b5b612c6482546127a5565b612c6f828285612bab565b600060209050601f831160018114612ca25760008415612c90578287015190505b612c9a8582612c1c565b865550612d02565b601f198416612cb086612a8c565b60005b82811015612cd857848901518255600182019150602085019450602081019050612cb3565b86831015612cf55784890151612cf1601f891682612bfe565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000612d20826121a1565b612d2a8185612d0a565b9350612d3a8185602086016121bd565b80840191505092915050565b6000612d528285612d15565b9150612d5e8284612d15565b91508190509392505050565b6000612d7582612253565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612da757612da66128ae565b5b600182019050919050565b6000612dbd82612253565b9150612dc883612253565b9250828203905081811115612de057612ddf6128ae565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612e3c82612e15565b612e468185612e20565b9350612e568185602086016121bd565b612e5f816121e7565b840191505092915050565b6000608082019050612e7f60008301876122e8565b612e8c60208301866122e8565b612e99604083018561237e565b8181036060830152612eab8184612e31565b905095945050505050565b600081519050612ec581612112565b92915050565b600060208284031215612ee157612ee06120dc565b5b6000612eef84828501612eb6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000604082019050612f3c60008301856122e8565b612f49602083018461237e565b939250505056fea26469706673582212205b4cd93990ab81df15e53da95fbf535a8703235a2cabb3ac553322a075aec03f64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x181 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDDD71EDE GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDDD71EDE EQ PUSH2 0x53D JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x568 JUMPI DUP1 PUSH4 0xF0293FD3 EQ PUSH2 0x5A5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5E2 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x500 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0x88662DE9 EQ PUSH2 0x404 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x42F JUMPI DUP1 PUSH4 0x918B5BE1 EQ PUSH2 0x45A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x483 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x453C2310 GT PUSH2 0x118 JUMPI DUP1 PUSH4 0x453C2310 EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x50516808 EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x385 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x2C9 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x1F21BFBF EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x2004FFD9 EQ PUSH2 0x27F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x213E JUMP JUMPDEST PUSH2 0x60B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x210 SWAP2 SWAP1 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x77F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x79B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH2 0x7B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x295 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2AB SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x8E1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x9E3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2EB SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0xAA1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x307 PUSH2 0xAC1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x332 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x36F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36A SWAP2 SWAP1 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39A PUSH2 0xB20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D2 SWAP2 SWAP1 PUSH2 0x23FB JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x402 PUSH2 0xBE0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x419 PUSH2 0xBF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH2 0xC82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x481 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x47C SWAP2 SWAP1 PUSH2 0x255D JUMP JUMPDEST PUSH2 0xCAC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x498 PUSH2 0xD0F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A5 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x25D2 JUMP JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F9 SWAP2 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST PUSH2 0xDB7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0xDD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x552 PUSH2 0xE3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x55F SWAP2 SWAP1 PUSH2 0x2231 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58A SWAP2 SWAP1 PUSH2 0x2736 JUMP JUMPDEST PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59C SWAP2 SWAP1 PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0x23FB JUMP JUMPDEST PUSH2 0xF6B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D9 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x609 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x604 SWAP2 SWAP1 PUSH2 0x23FB JUMP JUMPDEST PUSH2 0xF83 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6D6 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x6E6 JUMPI POP PUSH2 0x6E5 DUP3 PUSH2 0x1009 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x6FC SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x728 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x775 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x74A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x775 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x758 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x78A DUP3 PUSH2 0x1073 JUMP JUMPDEST POP PUSH2 0x794 DUP3 PUSH2 0x10FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7AD DUP3 DUP3 PUSH2 0x7A8 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x1140 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x8 SLOAD EQ PUSH2 0x7FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7F2 SWAP1 PUSH2 0x2822 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 SLOAD PUSH1 0xB PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x87F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x876 SWAP1 PUSH2 0x288E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xB 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 DUP3 DUP3 SLOAD PUSH2 0x8CF SWAP2 SWAP1 PUSH2 0x28DD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x8DF CALLER PUSH2 0x1152 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x953 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94A SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x967 DUP4 DUP4 PUSH2 0x962 PUSH2 0x1138 JUMP JUMPDEST PUSH2 0x117F JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9DD JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9D4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2911 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x9EB PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F5 PUSH2 0xC82 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0xA18 SWAP1 PUSH2 0x2979 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA55 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 0xA5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xA9E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA95 SWAP1 PUSH2 0x29DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xABC DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xDB7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB19 DUP3 PUSH2 0x1073 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB99 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB90 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xBE8 PUSH2 0x1399 JUMP JUMPDEST PUSH2 0xBF2 PUSH1 0x0 PUSH2 0x1420 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xC01 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC2D SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC7A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC7A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC5D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xCB4 PUSH2 0x1399 JUMP JUMPDEST PUSH2 0xCBD DUP2 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0xCFC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCF3 SWAP1 PUSH2 0x2A6C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x2C38 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xD1E SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD4A SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD97 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD6C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD97 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD7A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDB3 PUSH2 0xDAC PUSH2 0x1138 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x163F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xDC2 DUP5 DUP5 DUP5 PUSH2 0x8E1 JUMP JUMPDEST PUSH2 0xDCE DUP5 DUP5 DUP5 DUP5 PUSH2 0x17AE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xDDF DUP3 PUSH2 0x1073 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xDEA PUSH2 0x1965 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xE0A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xE35 JUMP JUMPDEST DUP1 PUSH2 0xE14 DUP5 PUSH2 0x19F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE25 SWAP3 SWAP2 SWAP1 PUSH2 0x2D46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xE47 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xE54 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE80 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xECD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xECD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH1 0xB PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH2 0xF8B PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFFD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF4 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1006 DUP2 PUSH2 0x1420 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x107F DUP4 PUSH2 0x1AC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10F2 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x114D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1B02 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 SLOAD SWAP1 POP PUSH1 0x7 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x116C SWAP1 PUSH2 0x2D6A JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x117B DUP3 DUP3 PUSH2 0x1CC7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x118B DUP5 PUSH2 0x1AC5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11CD JUMPI PUSH2 0x11CC DUP2 DUP5 DUP7 PUSH2 0x1CE5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x125E JUMPI PUSH2 0x120F PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1B02 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12E1 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13A1 PUSH2 0x1138 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13BF PUSH2 0xC82 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x141E JUMPI PUSH2 0x13E2 PUSH2 0x1138 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1415 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP DUP1 MLOAD DUP3 MLOAD LT ISZERO PUSH2 0x153B JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x163A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP4 MLOAD PUSH2 0x154C SWAP2 SWAP1 PUSH2 0x2DB2 JUMP JUMPDEST DUP2 GT PUSH2 0x1632 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x160A JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1577 JUMPI PUSH2 0x1576 PUSH2 0x2DE6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP6 DUP3 DUP6 PUSH2 0x15B1 SWAP2 SWAP1 PUSH2 0x28DD JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x15C2 JUMPI PUSH2 0x15C1 PUSH2 0x2DE6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x15FD JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x160A JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x155B JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x161E JUMPI PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x163A JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x162A SWAP1 PUSH2 0x2D6A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x153E JUMP JUMPDEST POP PUSH1 0x0 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x16B0 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16A7 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x17A1 SWAP2 SWAP1 PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x195F JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x17F2 PUSH2 0x1138 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1814 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2E6A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1850 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x184D SWAP2 SWAP1 PUSH2 0x2ECB JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x18D4 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1880 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 0x1885 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x18CC JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18C3 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x195D JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1954 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xA DUP1 SLOAD PUSH2 0x1974 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x19A0 SWAP1 PUSH2 0x27A5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x19ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19C2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1A06 DUP5 PUSH2 0x1DA9 JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A25 JUMPI PUSH2 0x1A24 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1A57 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1ABA JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1AAE JUMPI PUSH2 0x1AAD PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1A65 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1B3B JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1C6F JUMPI PUSH1 0x0 PUSH2 0x1B4B DUP5 PUSH2 0x1073 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1BB6 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1BC9 JUMPI POP PUSH2 0x1BC7 DUP2 DUP5 PUSH2 0xED7 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C0B JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C02 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1C6D JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH2 0x1CE1 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1EFC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1CF0 DUP4 DUP4 DUP4 PUSH2 0x1F18 JUMP JUMPDEST PUSH2 0x1DA4 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D65 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D5C SWAP2 SWAP1 PUSH2 0x238D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D9B SWAP3 SWAP2 SWAP1 PUSH2 0x2F27 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1E07 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1DFD JUMPI PUSH2 0x1DFC PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1E44 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x1E3A JUMPI PUSH2 0x1E39 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1E73 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x1E69 JUMPI PUSH2 0x1E68 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1E9C JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1E92 JUMPI PUSH2 0x1E91 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1EC1 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x1EB7 JUMPI PUSH2 0x1EB6 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1EE4 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x1EDA JUMPI PUSH2 0x1ED9 PUSH2 0x2EF8 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1EF3 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F06 DUP4 DUP4 PUSH2 0x1FD9 JUMP JUMPDEST PUSH2 0x1F13 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x17AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1FD0 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1F91 JUMPI POP PUSH2 0x1F90 DUP5 DUP5 PUSH2 0xED7 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x1FCF JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1FB7 DUP4 PUSH2 0x10FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x204B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2042 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2059 DUP4 DUP4 PUSH1 0x0 PUSH2 0x117F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x20CD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20C4 SWAP2 SWAP1 PUSH2 0x22F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP 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 0x211B DUP2 PUSH2 0x20E6 JUMP JUMPDEST DUP2 EQ PUSH2 0x2126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2138 DUP2 PUSH2 0x2112 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2154 JUMPI PUSH2 0x2153 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2162 DUP5 DUP3 DUP6 ADD PUSH2 0x2129 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2180 DUP2 PUSH2 0x216B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x219B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2177 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21DB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x21C0 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2203 DUP3 PUSH2 0x21A1 JUMP JUMPDEST PUSH2 0x220D DUP2 DUP6 PUSH2 0x21AC JUMP JUMPDEST SWAP4 POP PUSH2 0x221D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BD JUMP JUMPDEST PUSH2 0x2226 DUP2 PUSH2 0x21E7 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x224B DUP2 DUP5 PUSH2 0x21F8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2266 DUP2 PUSH2 0x2253 JUMP JUMPDEST DUP2 EQ PUSH2 0x2271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2283 DUP2 PUSH2 0x225D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229F JUMPI PUSH2 0x229E PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22AD DUP5 DUP3 DUP6 ADD PUSH2 0x2274 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 0x22E1 DUP3 PUSH2 0x22B6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22F1 DUP2 PUSH2 0x22D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x230C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x231B DUP2 PUSH2 0x22D6 JUMP JUMPDEST DUP2 EQ PUSH2 0x2326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2338 DUP2 PUSH2 0x2312 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2355 JUMPI PUSH2 0x2354 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2363 DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2374 DUP6 DUP3 DUP7 ADD PUSH2 0x2274 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2387 DUP2 PUSH2 0x2253 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23A2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x237E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x23C1 JUMPI PUSH2 0x23C0 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23CF DUP7 DUP3 DUP8 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x23E0 DUP7 DUP3 DUP8 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x23F1 DUP7 DUP3 DUP8 ADD PUSH2 0x2274 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2411 JUMPI PUSH2 0x2410 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x241F DUP5 DUP3 DUP6 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x246A DUP3 PUSH2 0x21E7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2489 JUMPI PUSH2 0x2488 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x249C PUSH2 0x20D2 JUMP JUMPDEST SWAP1 POP PUSH2 0x24A8 DUP3 DUP3 PUSH2 0x2461 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24C8 JUMPI PUSH2 0x24C7 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH2 0x24D1 DUP3 PUSH2 0x21E7 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 0x2500 PUSH2 0x24FB DUP5 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0x2492 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x251C JUMPI PUSH2 0x251B PUSH2 0x242D JUMP JUMPDEST JUMPDEST PUSH2 0x2527 DUP5 DUP3 DUP6 PUSH2 0x24DE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2544 JUMPI PUSH2 0x2543 PUSH2 0x2428 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2554 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24ED JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2573 JUMPI PUSH2 0x2572 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2591 JUMPI PUSH2 0x2590 PUSH2 0x20E1 JUMP JUMPDEST JUMPDEST PUSH2 0x259D DUP5 DUP3 DUP6 ADD PUSH2 0x252F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25AF DUP2 PUSH2 0x216B JUMP JUMPDEST DUP2 EQ PUSH2 0x25BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25CC DUP2 PUSH2 0x25A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25E9 JUMPI PUSH2 0x25E8 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25F7 DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2608 DUP6 DUP3 DUP7 ADD PUSH2 0x25BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x262D JUMPI PUSH2 0x262C PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH2 0x2636 DUP3 PUSH2 0x21E7 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2656 PUSH2 0x2651 DUP5 PUSH2 0x2612 JUMP JUMPDEST PUSH2 0x2492 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2672 JUMPI PUSH2 0x2671 PUSH2 0x242D JUMP JUMPDEST JUMPDEST PUSH2 0x267D DUP5 DUP3 DUP6 PUSH2 0x24DE JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x269A JUMPI PUSH2 0x2699 PUSH2 0x2428 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2643 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 0x26CD JUMPI PUSH2 0x26CC PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26DB DUP8 DUP3 DUP9 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x26EC DUP8 DUP3 DUP9 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x26FD DUP8 DUP3 DUP9 ADD PUSH2 0x2274 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x271E JUMPI PUSH2 0x271D PUSH2 0x20E1 JUMP JUMPDEST JUMPDEST PUSH2 0x272A DUP8 DUP3 DUP9 ADD PUSH2 0x2685 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 0x274D JUMPI PUSH2 0x274C PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x275B DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x276C DUP6 DUP3 DUP7 ADD PUSH2 0x2329 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x27BD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x27D0 JUMPI PUSH2 0x27CF PUSH2 0x2776 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x302E3030303120657468657220726571756972656420746F206D696E74000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280C PUSH1 0x1D DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2817 DUP3 PUSH2 0x27D6 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 0x283B DUP2 PUSH2 0x27FF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6D696E7473207065722077616C6C657420657863656564656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2878 PUSH1 0x19 DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2883 DUP3 PUSH2 0x2842 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 0x28A7 DUP2 PUSH2 0x286B 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 0x28E8 DUP3 PUSH2 0x2253 JUMP JUMPDEST SWAP2 POP PUSH2 0x28F3 DUP4 PUSH2 0x2253 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x290B JUMPI PUSH2 0x290A PUSH2 0x28AE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2926 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2933 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x237E JUMP JUMPDEST PUSH2 0x2940 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x22E8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2963 PUSH1 0x0 DUP4 PUSH2 0x2948 JUMP JUMPDEST SWAP2 POP PUSH2 0x296E DUP3 PUSH2 0x2953 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2984 DUP3 PUSH2 0x2956 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29C4 PUSH1 0x11 DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x29CF DUP3 PUSH2 0x298E 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 0x29F3 DUP2 PUSH2 0x29B7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964206173736574206D657461646174613A206D75737420696E63 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C7564652027697066733A2F2F27000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A56 PUSH1 0x2E DUP4 PUSH2 0x21AC JUMP JUMPDEST SWAP2 POP PUSH2 0x2A61 DUP3 PUSH2 0x29FA 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 0x2A85 DUP2 PUSH2 0x2A49 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2AEE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2AB1 JUMP JUMPDEST PUSH2 0x2AF8 DUP7 DUP4 PUSH2 0x2AB1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B35 PUSH2 0x2B30 PUSH2 0x2B2B DUP5 PUSH2 0x2253 JUMP JUMPDEST PUSH2 0x2B10 JUMP JUMPDEST PUSH2 0x2253 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B4F DUP4 PUSH2 0x2B1A JUMP JUMPDEST PUSH2 0x2B63 PUSH2 0x2B5B DUP3 PUSH2 0x2B3C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2ABE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2B78 PUSH2 0x2B6B JUMP JUMPDEST PUSH2 0x2B83 DUP2 DUP5 DUP5 PUSH2 0x2B46 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2BA7 JUMPI PUSH2 0x2B9C PUSH1 0x0 DUP3 PUSH2 0x2B70 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2B89 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2BEC JUMPI PUSH2 0x2BBD DUP2 PUSH2 0x2A8C JUMP JUMPDEST PUSH2 0x2BC6 DUP5 PUSH2 0x2AA1 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2BD5 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2BE9 PUSH2 0x2BE1 DUP6 PUSH2 0x2AA1 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2B88 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2BF1 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C28 DUP4 DUP4 PUSH2 0x2BFE JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C41 DUP3 PUSH2 0x21A1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5A JUMPI PUSH2 0x2C59 PUSH2 0x2432 JUMP JUMPDEST JUMPDEST PUSH2 0x2C64 DUP3 SLOAD PUSH2 0x27A5 JUMP JUMPDEST PUSH2 0x2C6F DUP3 DUP3 DUP6 PUSH2 0x2BAB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2CA2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2C90 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2C9A DUP6 DUP3 PUSH2 0x2C1C JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2D02 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2CB0 DUP7 PUSH2 0x2A8C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2CD8 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2CB3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2CF5 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2CF1 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2BFE JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D20 DUP3 PUSH2 0x21A1 JUMP JUMPDEST PUSH2 0x2D2A DUP2 DUP6 PUSH2 0x2D0A JUMP JUMPDEST SWAP4 POP PUSH2 0x2D3A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BD JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D52 DUP3 DUP6 PUSH2 0x2D15 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D5E DUP3 DUP5 PUSH2 0x2D15 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D75 DUP3 PUSH2 0x2253 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2DA7 JUMPI PUSH2 0x2DA6 PUSH2 0x28AE JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DBD DUP3 PUSH2 0x2253 JUMP JUMPDEST SWAP2 POP PUSH2 0x2DC8 DUP4 PUSH2 0x2253 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2DE0 JUMPI PUSH2 0x2DDF PUSH2 0x28AE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 PUSH2 0x2E3C DUP3 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x2E46 DUP2 DUP6 PUSH2 0x2E20 JUMP JUMPDEST SWAP4 POP PUSH2 0x2E56 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x21BD JUMP JUMPDEST PUSH2 0x2E5F DUP2 PUSH2 0x21E7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x2E7F PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2E8C PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2E99 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x237E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2EAB DUP2 DUP5 PUSH2 0x2E31 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2EC5 DUP2 PUSH2 0x2112 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EE1 JUMPI PUSH2 0x2EE0 PUSH2 0x20DC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EEF DUP5 DUP3 DUP6 ADD PUSH2 0x2EB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F3C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22E8 JUMP JUMPDEST PUSH2 0x2F49 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x237E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST 0x4C 0xD9 CODECOPY SWAP1 0xAB DUP2 0xDF ISZERO 0xE5 RETURNDATASIZE 0xA9 PUSH0 0xBF MSTORE8 GAS DUP8 SUB 0x23 GAS 0x2C 0xAB 0xB3 0xAC SSTORE CALLER 0x22 LOG0 PUSH22 0xAEC03F64736F6C634300081800330000000000000000 ", + "sourceMap": "229:2473:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:300:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3497:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3323:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;364:29:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;994:318;;;:::i;:::-;;4143:578:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1437:170:17;;;;;;;;;;;;;:::i;:::-;;4787:132:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;446:31:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1320:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2185:118:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;400:39:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:208:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;;;;;;;;;;;:::i;:::-;;484:94:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:85:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1615:232:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2518:93:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4985:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2677:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1855:114:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:153:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;604:46:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1561:300:5;1663:4;1713:25;1698:40;;;:11;:40;;;;:104;;;;1769:33;1754:48;;;:11;:48;;;;1698:104;:156;;;;1818:36;1842:11;1818:23;:36::i;:::-;1698:156;1679:175;;1561:300;;;:::o;2365:89::-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;;3623:21;3636:7;3623:12;:21::i;:::-;3616:28;;3497:154;;;:::o;3323:113::-;3394:35;3403:2;3407:7;3416:12;:10;:12::i;:::-;3394:8;:35::i;:::-;3323:113;;:::o;364:29:17:-;;;;:::o;994:318::-;1064:9;1051;;:22;1043:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1167:12;;1140:11;:23;1152:10;1140:23;;;;;;;;;;;;;;;;:39;;1118:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;1272:1;1245:11;:23;1257:10;1245:23;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;1284:20;1293:10;1284:8;:20::i;:::-;994:318::o;4143:578:5:-;4251:1;4237:16;;:2;:16;;;4233:87;;4306:1;4276:33;;;;;;;;;;;:::i;:::-;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;4583:12;:10;:12::i;:::-;4562:7;:34::i;:::-;4538:58;;4627:4;4610:21;;:13;:21;;;4606:109;;4675:4;4681:7;4690:13;4654:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4606:109;4223:498;4143:578;;;:::o;1437:170:17:-;1531:13:0;:11;:13::i;:::-;1493:9:17::1;1508:7;:5;:7::i;:::-;:12;;1528:21;1508:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1492:62;;;1573:4;1565:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;1481:126;1437:170::o:0;4787:132:5:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;446:31:17:-;;;;:::o;1320:109::-;1371:7;1398:11;:23;1410:10;1398:23;;;;;;;;;;;;;;;;1391:30;;1320:109;:::o;2185:118:5:-;2248:7;2274:22;2288:7;2274:13;:22::i;:::-;2267:29;;2185:118;;;:::o;400:39:17:-;;;;:::o;1920:208:5:-;1983:7;2023:1;2006:19;;:5;:19;;;2002:87;;2075:1;2048:30;;;;;;;;;;;:::i;:::-;;;;;;;;2002:87;2105:9;:16;2115:5;2105:16;;;;;;;;;;;;;;;;2098:23;;1920:208;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;484:94:17:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1638:85:0:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1615:232:17:-;1531:13:0;:11;:13::i;:::-;1710:32:17::1;1724:17;1710:13;:32::i;:::-;1702:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;1822:17;1806:13;:33;;;;;;:::i;:::-;;1615:232:::0;:::o;2518:93:5:-;2565:13;2597:7;2590:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:93;:::o;3718:144::-;3803:52;3822:12;:10;:12::i;:::-;3836:8;3846;3803:18;:52::i;:::-;3718:144;;:::o;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;:::-;4985:208;;;;:::o;2677:255::-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;:8;:10::i;:::-;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;;;2677:255;;;:::o;1855:114:17:-;1915:13;1531::0;:11;:13::i;:::-;1948::17::1;1941:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1855:114:::0;:::o;3928:153:5:-;4016:4;4039:18;:25;4058:5;4039:25;;;;;;;;;;;;;;;:35;4065:8;4039:35;;;;;;;;;;;;;;;;;;;;;;;;;4032:42;;3928:153;;;;:::o;604:46:17:-;;;;;;;;;;;;;;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;762:146:12:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;16138:241:5:-;16201:7;16220:13;16236:17;16245:7;16236:8;:17::i;:::-;16220:33;;16284:1;16267:19;;:5;:19;;;16263:88;;16332:7;16309:31;;;;;;;;;;;:::i;:::-;;;;;;;;16263:88;16367:5;16360:12;;;16138:241;;;:::o;5938:127::-;6008:7;6034:15;:24;6050:7;6034:24;;;;;;;;;;;;;;;;;;;;;6027:31;;5938:127;;;:::o;656:96:10:-;709:7;735:10;728:17;;656:96;:::o;14418:120:5:-;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;:::-;14418:120;;;:::o;842:144:17:-;892:15;910:10;;892:28;;931:10;;:12;;;;;;;;;:::i;:::-;;;;;;956:22;966:2;970:7;956:9;:22::i;:::-;881:105;842:144;:::o;8838:795:5:-;8924:7;8943:12;8958:17;8967:7;8958:8;:17::i;:::-;8943:32;;9051:1;9035:18;;:4;:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;9031:86;9177:1;9161:18;;:4;:18;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;9387:1;9368:9;:15;9378:4;9368:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;9157:256;9441:1;9427:16;;:2;:16;;;9423:107;;9504:1;9487:9;:13;9497:2;9487:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9423:107;9559:2;9540:7;:16;9548:7;9540:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9596:7;9592:2;9577:27;;9586:4;9577:27;;;;;;;;;;;;9622:4;9615:11;;;8838:795;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;1977:722:17:-;2055:4;2072:26;2107:17;2072:53;;2136:22;2161:16;;;;;;;;;;;;;;;;;2136:41;;2217:9;:16;2194:13;:20;:39;2190:57;;;2242:5;2235:12;;;;;;2190:57;2265:9;2260:407;2308:9;:16;2285:13;:20;:39;;;;:::i;:::-;2280:1;:44;2260:407;;2346:10;2359:4;2346:17;;2383:9;2378:207;2402:9;:16;2398:1;:20;2378:207;;;2472:9;2482:1;2472:12;;;;;;;;:::i;:::-;;;;;;;;;;2448:36;;;:13;2466:1;2462;:5;;;;:::i;:::-;2448:20;;;;;;;;:::i;:::-;;;;;;;;;;:36;;;;2444:126;;2517:5;2509:13;;2545:5;;2444:126;2420:3;;;;;;;2378:207;;;;2603:5;2599:57;;;2636:4;2629:11;;;;;;;;2599:57;2331:336;2326:3;;;;;:::i;:::-;;;;2260:407;;;;2686:5;2679:12;;;;1977:722;;;;:::o;15591:312:5:-;15718:1;15698:22;;:8;:22;;;15694:91;;15765:8;15743:31;;;;;;;;;;;:::i;:::-;;;;;;;;15694:91;15832:8;15794:18;:25;15813:5;15794:25;;;;;;;;;;;;;;;:35;15820:8;15794:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15877:8;15855:41;;15870:5;15855:41;;;15887:8;15855:41;;;;;;:::i;:::-;;;;;;;;15591:312;;;:::o;16918:782::-;17051:1;17034:2;:14;;;:18;17030:664;;;17088:2;17072:36;;;17109:12;:10;:12::i;:::-;17123:4;17129:7;17138:4;17072:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:1;17381:6;:13;:18;17377:293;;17452:2;17430:25;;;;;;;;;;;:::i;:::-;;;;;;;;17377:293;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;17200:41;;;17190:51;;;:6;:51;;;;17186:130;;17294:2;17272:25;;;;;;;;;;;:::i;:::-;;;;;;;;17186:130;17144:186;17030:664;16918:782;;;;:::o;728:106:17:-;780:13;813;806:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;728:106;:::o;637:698:11:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;5707:115:5:-;5773:7;5799;:16;5807:7;5799:16;;;;;;;;;;;;;;;;;;;;;5792:23;;5707:115;;;:::o;14720:662::-;14880:9;:31;;;;14909:1;14893:18;;:4;:18;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;;15109:1;15093:18;;:4;:18;;;;:35;;;;;15124:4;15115:13;;:5;:13;;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15211:4;15189:27;;;;;;;;;;;:::i;:::-;;;;;;;;15089:142;15249:9;15245:81;;;15303:7;15299:2;15283:28;;15292:5;15283:28;;;;;;;;;;;;15245:81;14913:423;14876:460;15373:2;15346:15;:24;15362:7;15346:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14720:662;;;;:::o;10633:100::-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;:::-;10633:100;;:::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;7269:1;7252:19;;:5;:19;;;7248:186;;7321:7;7298:31;;;;;;;;;;;:::i;:::-;;;;;;;;7248:186;7402:7;7411;7375:44;;;;;;;;;;;;:::i;:::-;;;;;;;;7189:255;7082:368;;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;10954:182:5:-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;:::-;10954:182;;;:::o;6376:272::-;6479:4;6533:1;6514:21;;:7;:21;;;;:127;;;;;6561:7;6552:16;;:5;:16;;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:52;:88;;;;6633:7;6608:32;;:21;6621:7;6608:12;:21::i;:::-;:32;;;6552:88;6514:127;6495:146;;6376:272;;;;;:::o;9955:327::-;10036:1;10022:16;;:2;:16;;;10018:87;;10091:1;10061:33;;;;;;;;;;;:::i;:::-;;;;;;;;10018:87;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;;10209:1;10184:27;;:13;:27;;;10180:96;;10262:1;10234:31;;;;;;;;;;;:::i;:::-;;;;;;;;10180:96;10008:274;9955:327;;:::o;7:75:23:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:77::-;2897:7;2926:5;2915:16;;2860:77;;;:::o;2943:122::-;3016:24;3034:5;3016:24;:::i;:::-;3009:5;3006:35;2996:63;;3055:1;3052;3045:12;2996:63;2943:122;:::o;3071:139::-;3117:5;3155:6;3142:20;3133:29;;3171:33;3198:5;3171:33;:::i;:::-;3071:139;;;;:::o;3216:329::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;;:::i;:::-;3292:119;3450:1;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3421:117;3216:329;;;;:::o;3551:126::-;3588:7;3628:42;3621:5;3617:54;3606:65;;3551:126;;;:::o;3683:96::-;3720:7;3749:24;3767:5;3749:24;:::i;:::-;3738:35;;3683:96;;;:::o;3785:118::-;3872:24;3890:5;3872:24;:::i;:::-;3867:3;3860:37;3785:118;;:::o;3909:222::-;4002:4;4040:2;4029:9;4025:18;4017:26;;4053:71;4121:1;4110:9;4106:17;4097:6;4053:71;:::i;:::-;3909:222;;;;:::o;4137:122::-;4210:24;4228:5;4210:24;:::i;:::-;4203:5;4200:35;4190:63;;4249:1;4246;4239:12;4190:63;4137:122;:::o;4265:139::-;4311:5;4349:6;4336:20;4327:29;;4365:33;4392:5;4365:33;:::i;:::-;4265:139;;;;:::o;4410:474::-;4478:6;4486;4535:2;4523:9;4514:7;4510:23;4506:32;4503:119;;;4541:79;;:::i;:::-;4503:119;4661:1;4686:53;4731:7;4722:6;4711:9;4707:22;4686:53;:::i;:::-;4676:63;;4632:117;4788:2;4814:53;4859:7;4850:6;4839:9;4835:22;4814:53;:::i;:::-;4804:63;;4759:118;4410:474;;;;;:::o;4890:118::-;4977:24;4995:5;4977:24;:::i;:::-;4972:3;4965:37;4890:118;;:::o;5014:222::-;5107:4;5145:2;5134:9;5130:18;5122:26;;5158:71;5226:1;5215:9;5211:17;5202:6;5158:71;:::i;:::-;5014:222;;;;:::o;5242:619::-;5319:6;5327;5335;5384:2;5372:9;5363:7;5359:23;5355:32;5352:119;;;5390:79;;:::i;:::-;5352:119;5510:1;5535:53;5580:7;5571:6;5560:9;5556:22;5535:53;:::i;:::-;5525:63;;5481:117;5637:2;5663:53;5708:7;5699:6;5688:9;5684:22;5663:53;:::i;:::-;5653:63;;5608:118;5765:2;5791:53;5836:7;5827:6;5816:9;5812:22;5791:53;:::i;:::-;5781:63;;5736:118;5242:619;;;;;:::o;5867:329::-;5926:6;5975:2;5963:9;5954:7;5950:23;5946:32;5943:119;;;5981:79;;:::i;:::-;5943:119;6101:1;6126:53;6171:7;6162:6;6151:9;6147:22;6126:53;:::i;:::-;6116:63;;6072:117;5867:329;;;;:::o;6202:117::-;6311:1;6308;6301:12;6325:117;6434:1;6431;6424:12;6448:180;6496:77;6493:1;6486:88;6593:4;6590:1;6583:15;6617:4;6614:1;6607:15;6634:281;6717:27;6739:4;6717:27;:::i;:::-;6709:6;6705:40;6847:6;6835:10;6832:22;6811:18;6799:10;6796:34;6793:62;6790:88;;;6858:18;;:::i;:::-;6790:88;6898:10;6894:2;6887:22;6677:238;6634:281;;:::o;6921:129::-;6955:6;6982:20;;:::i;:::-;6972:30;;7011:33;7039:4;7031:6;7011:33;:::i;:::-;6921:129;;;:::o;7056:308::-;7118:4;7208:18;7200:6;7197:30;7194:56;;;7230:18;;:::i;:::-;7194:56;7268:29;7290:6;7268:29;:::i;:::-;7260:37;;7352:4;7346;7342:15;7334:23;;7056:308;;;:::o;7370:146::-;7467:6;7462:3;7457;7444:30;7508:1;7499:6;7494:3;7490:16;7483:27;7370:146;;;:::o;7522:425::-;7600:5;7625:66;7641:49;7683:6;7641:49;:::i;:::-;7625:66;:::i;:::-;7616:75;;7714:6;7707:5;7700:21;7752:4;7745:5;7741:16;7790:3;7781:6;7776:3;7772:16;7769:25;7766:112;;;7797:79;;:::i;:::-;7766:112;7887:54;7934:6;7929:3;7924;7887:54;:::i;:::-;7606:341;7522:425;;;;;:::o;7967:340::-;8023:5;8072:3;8065:4;8057:6;8053:17;8049:27;8039:122;;8080:79;;:::i;:::-;8039:122;8197:6;8184:20;8222:79;8297:3;8289:6;8282:4;8274:6;8270:17;8222:79;:::i;:::-;8213:88;;8029:278;7967:340;;;;:::o;8313:509::-;8382:6;8431:2;8419:9;8410:7;8406:23;8402:32;8399:119;;;8437:79;;:::i;:::-;8399:119;8585:1;8574:9;8570:17;8557:31;8615:18;8607:6;8604:30;8601:117;;;8637:79;;:::i;:::-;8601:117;8742:63;8797:7;8788:6;8777:9;8773:22;8742:63;:::i;:::-;8732:73;;8528:287;8313:509;;;;:::o;8828:116::-;8898:21;8913:5;8898:21;:::i;:::-;8891:5;8888:32;8878:60;;8934:1;8931;8924:12;8878:60;8828:116;:::o;8950:133::-;8993:5;9031:6;9018:20;9009:29;;9047:30;9071:5;9047:30;:::i;:::-;8950:133;;;;:::o;9089:468::-;9154:6;9162;9211:2;9199:9;9190:7;9186:23;9182:32;9179:119;;;9217:79;;:::i;:::-;9179:119;9337:1;9362:53;9407:7;9398:6;9387:9;9383:22;9362:53;:::i;:::-;9352:63;;9308:117;9464:2;9490:50;9532:7;9523:6;9512:9;9508:22;9490:50;:::i;:::-;9480:60;;9435:115;9089:468;;;;;:::o;9563:307::-;9624:4;9714:18;9706:6;9703:30;9700:56;;;9736:18;;:::i;:::-;9700:56;9774:29;9796:6;9774:29;:::i;:::-;9766:37;;9858:4;9852;9848:15;9840:23;;9563:307;;;:::o;9876:423::-;9953:5;9978:65;9994:48;10035:6;9994:48;:::i;:::-;9978:65;:::i;:::-;9969:74;;10066:6;10059:5;10052:21;10104:4;10097:5;10093:16;10142:3;10133:6;10128:3;10124:16;10121:25;10118:112;;;10149:79;;:::i;:::-;10118:112;10239:54;10286:6;10281:3;10276;10239:54;:::i;:::-;9959:340;9876:423;;;;;:::o;10318:338::-;10373:5;10422:3;10415:4;10407:6;10403:17;10399:27;10389:122;;10430:79;;:::i;:::-;10389:122;10547:6;10534:20;10572:78;10646:3;10638:6;10631:4;10623:6;10619:17;10572:78;:::i;:::-;10563:87;;10379:277;10318:338;;;;:::o;10662:943::-;10757:6;10765;10773;10781;10830:3;10818:9;10809:7;10805:23;10801:33;10798:120;;;10837:79;;:::i;:::-;10798:120;10957:1;10982:53;11027:7;11018:6;11007:9;11003:22;10982:53;:::i;:::-;10972:63;;10928:117;11084:2;11110:53;11155:7;11146:6;11135:9;11131:22;11110:53;:::i;:::-;11100:63;;11055:118;11212:2;11238:53;11283:7;11274:6;11263:9;11259:22;11238:53;:::i;:::-;11228:63;;11183:118;11368:2;11357:9;11353:18;11340:32;11399:18;11391:6;11388:30;11385:117;;;11421:79;;:::i;:::-;11385:117;11526:62;11580:7;11571:6;11560:9;11556:22;11526:62;:::i;:::-;11516:72;;11311:287;10662:943;;;;;;;:::o;11611:474::-;11679:6;11687;11736:2;11724:9;11715:7;11711:23;11707:32;11704:119;;;11742:79;;:::i;:::-;11704:119;11862:1;11887:53;11932:7;11923:6;11912:9;11908:22;11887:53;:::i;:::-;11877:63;;11833:117;11989:2;12015:53;12060:7;12051:6;12040:9;12036:22;12015:53;:::i;:::-;12005:63;;11960:118;11611:474;;;;;:::o;12091:180::-;12139:77;12136:1;12129:88;12236:4;12233:1;12226:15;12260:4;12257:1;12250:15;12277:320;12321:6;12358:1;12352:4;12348:12;12338:22;;12405:1;12399:4;12395:12;12426:18;12416:81;;12482:4;12474:6;12470:17;12460:27;;12416:81;12544:2;12536:6;12533:14;12513:18;12510:38;12507:84;;12563:18;;:::i;:::-;12507:84;12328:269;12277:320;;;:::o;12603:179::-;12743:31;12739:1;12731:6;12727:14;12720:55;12603:179;:::o;12788:366::-;12930:3;12951:67;13015:2;13010:3;12951:67;:::i;:::-;12944:74;;13027:93;13116:3;13027:93;:::i;:::-;13145:2;13140:3;13136:12;13129:19;;12788:366;;;:::o;13160:419::-;13326:4;13364:2;13353:9;13349:18;13341:26;;13413:9;13407:4;13403:20;13399:1;13388:9;13384:17;13377:47;13441:131;13567:4;13441:131;:::i;:::-;13433:139;;13160:419;;;:::o;13585:175::-;13725:27;13721:1;13713:6;13709:14;13702:51;13585:175;:::o;13766:366::-;13908:3;13929:67;13993:2;13988:3;13929:67;:::i;:::-;13922:74;;14005:93;14094:3;14005:93;:::i;:::-;14123:2;14118:3;14114:12;14107:19;;13766:366;;;:::o;14138:419::-;14304:4;14342:2;14331:9;14327:18;14319:26;;14391:9;14385:4;14381:20;14377:1;14366:9;14362:17;14355:47;14419:131;14545:4;14419:131;:::i;:::-;14411:139;;14138:419;;;:::o;14563:180::-;14611:77;14608:1;14601:88;14708:4;14705:1;14698:15;14732:4;14729:1;14722:15;14749:191;14789:3;14808:20;14826:1;14808:20;:::i;:::-;14803:25;;14842:20;14860:1;14842:20;:::i;:::-;14837:25;;14885:1;14882;14878:9;14871:16;;14906:3;14903:1;14900:10;14897:36;;;14913:18;;:::i;:::-;14897:36;14749:191;;;;:::o;14946:442::-;15095:4;15133:2;15122:9;15118:18;15110:26;;15146:71;15214:1;15203:9;15199:17;15190:6;15146:71;:::i;:::-;15227:72;15295:2;15284:9;15280:18;15271:6;15227:72;:::i;:::-;15309;15377:2;15366:9;15362:18;15353:6;15309:72;:::i;:::-;14946:442;;;;;;:::o;15394:147::-;15495:11;15532:3;15517:18;;15394:147;;;;:::o;15547:114::-;;:::o;15667:398::-;15826:3;15847:83;15928:1;15923:3;15847:83;:::i;:::-;15840:90;;15939:93;16028:3;15939:93;:::i;:::-;16057:1;16052:3;16048:11;16041:18;;15667:398;;;:::o;16071:379::-;16255:3;16277:147;16420:3;16277:147;:::i;:::-;16270:154;;16441:3;16434:10;;16071:379;;;:::o;16456:167::-;16596:19;16592:1;16584:6;16580:14;16573:43;16456:167;:::o;16629:366::-;16771:3;16792:67;16856:2;16851:3;16792:67;:::i;:::-;16785:74;;16868:93;16957:3;16868:93;:::i;:::-;16986:2;16981:3;16977:12;16970:19;;16629:366;;;:::o;17001:419::-;17167:4;17205:2;17194:9;17190:18;17182:26;;17254:9;17248:4;17244:20;17240:1;17229:9;17225:17;17218:47;17282:131;17408:4;17282:131;:::i;:::-;17274:139;;17001:419;;;:::o;17426:237::-;17566:34;17562:1;17554:6;17550:14;17543:58;17635:16;17630:2;17622:6;17618:15;17611:41;17426:237;:::o;17673:382::-;17815:3;17840:67;17904:2;17899:3;17840:67;:::i;:::-;17833:74;;17920:93;18009:3;17920:93;:::i;:::-;18042:2;18037:3;18033:12;18026:19;;17673:382;;;:::o;18065:435::-;18231:4;18273:2;18262:9;18258:18;18250:26;;18326:9;18320:4;18316:20;18312:1;18301:9;18297:17;18290:47;18358:131;18484:4;18358:131;:::i;:::-;18350:139;;18065:435;;;:::o;18510:157::-;18559:4;18586:3;18578:11;;18613:3;18610:1;18603:14;18651:4;18648:1;18638:18;18630:26;;18510:157;;;:::o;18677:101::-;18714:6;18765:2;18760;18753:5;18749:14;18745:23;18735:33;;18677:101;;;:::o;18788:119::-;18832:8;18890:5;18884:4;18880:16;18855:41;;18788:119;;;;:::o;18917:417::-;18986:6;19040:1;19028:10;19024:18;19067:97;19097:66;19086:9;19067:97;:::i;:::-;19189:39;19219:8;19208:9;19189:39;:::i;:::-;19177:51;;19265:4;19261:9;19254:5;19250:21;19241:30;;19318:4;19308:8;19304:19;19297:5;19294:30;19284:40;;18993:341;;18917:417;;;;;:::o;19344:68::-;19372:3;19397:5;19390:12;;19344:68;;;:::o;19422:150::-;19472:9;19509:53;19527:34;19536:24;19554:5;19536:24;:::i;:::-;19527:34;:::i;:::-;19509:53;:::i;:::-;19496:66;;19422:150;;;:::o;19582:83::-;19625:3;19650:5;19643:12;;19582:83;;;:::o;19675:281::-;19789:39;19820:7;19789:39;:::i;:::-;19854:91;19903:41;19927:16;19903:41;:::i;:::-;19895:6;19888:4;19882:11;19854:91;:::i;:::-;19848:4;19841:105;19751:205;19675:281;;;:::o;19966:81::-;20011:3;19966:81;:::o;20057:201::-;20138:32;;:::i;:::-;20183:65;20241:6;20233;20227:4;20183:65;:::i;:::-;20110:148;20057:201;;:::o;20268:206::-;20332:132;20349:3;20342:5;20339:14;20332:132;;;20411:39;20448:1;20441:5;20411:39;:::i;:::-;20376:1;20369:5;20365:13;20356:22;;20332:132;;;20268:206;;:::o;20484:575::-;20589:2;20584:3;20581:11;20578:470;;;20627:38;20659:5;20627:38;:::i;:::-;20715:29;20733:10;20715:29;:::i;:::-;20705:8;20701:44;20906:2;20894:10;20891:18;20888:49;;;20927:8;20912:23;;20888:49;20954:80;21010:22;21028:3;21010:22;:::i;:::-;21000:8;20996:37;20983:11;20954:80;:::i;:::-;20593:455;;20578:470;20484:575;;;:::o;21069:129::-;21123:8;21181:5;21175:4;21171:16;21146:41;;21069:129;;;;:::o;21208:181::-;21252:6;21289:51;21337:1;21333:6;21325:5;21322:1;21318:13;21289:51;:::i;:::-;21285:56;21374:4;21368;21364:15;21354:25;;21259:130;21208:181;;;;:::o;21398:315::-;21474:4;21632:29;21657:3;21651:4;21632:29;:::i;:::-;21624:37;;21698:3;21695:1;21691:11;21685:4;21682:21;21674:29;;21398:315;;;;:::o;21722:1523::-;21843:37;21876:3;21843:37;:::i;:::-;21953:18;21945:6;21942:30;21939:56;;;21975:18;;:::i;:::-;21939:56;22023:38;22055:4;22049:11;22023:38;:::i;:::-;22116:67;22176:6;22168;22162:4;22116:67;:::i;:::-;22214:1;22242:4;22229:17;;22278:2;22270:6;22267:14;22299:1;22294:674;;;;23020:1;23041:6;23038:85;;;23094:9;23089:3;23085:19;23079:26;23070:35;;23038:85;23153:67;23213:6;23206:5;23153:67;:::i;:::-;23147:4;23140:81;22989:246;22260:975;;22294:674;22350:4;22346:9;22338:6;22334:22;22388:37;22420:4;22388:37;:::i;:::-;22451:1;22469:224;22483:7;22480:1;22477:14;22469:224;;;22566:9;22561:3;22557:19;22551:26;22543:6;22536:42;22621:1;22613:6;22609:14;22599:24;;22672:2;22661:9;22657:18;22644:31;;22506:4;22503:1;22499:12;22494:17;;22469:224;;;22725:6;22716:7;22713:19;22710:191;;;22787:9;22782:3;22778:19;22772:26;22834:48;22876:4;22868:6;22864:17;22853:9;22834:48;:::i;:::-;22826:6;22819:64;22733:168;22710:191;22951:1;22947;22939:6;22935:14;22931:22;22925:4;22918:36;22301:667;;;22260:975;;21814:1431;;;21722:1523;;:::o;23255:156::-;23357:11;23398:3;23383:18;;23255:156;;;;:::o;23421:410::-;23527:3;23559:39;23592:5;23559:39;:::i;:::-;23618:89;23700:6;23695:3;23618:89;:::i;:::-;23611:96;;23720:65;23778:6;23773:3;23766:4;23759:5;23755:16;23720:65;:::i;:::-;23814:6;23809:3;23805:16;23798:23;;23531:300;23421:410;;;;:::o;23841:451::-;24021:3;24047:95;24138:3;24129:6;24047:95;:::i;:::-;24040:102;;24163:95;24254:3;24245:6;24163:95;:::i;:::-;24156:102;;24279:3;24272:10;;23841:451;;;;;:::o;24302:249::-;24341:3;24368:24;24386:5;24368:24;:::i;:::-;24359:33;;24418:66;24411:5;24408:77;24405:103;;24488:18;;:::i;:::-;24405:103;24539:1;24532:5;24528:13;24521:20;;24302:249;;;:::o;24561:214::-;24601:4;24625:20;24643:1;24625:20;:::i;:::-;24620:25;;24663:20;24681:1;24663:20;:::i;:::-;24658:25;;24711:1;24708;24704:9;24696:17;;24739:1;24733:4;24730:11;24727:37;;;24744:18;;:::i;:::-;24727:37;24561:214;;;;:::o;24785:196::-;24837:77;24834:1;24827:88;24938:4;24935:1;24928:15;24966:4;24963:1;24956:15;24991:106;25042:6;25080:5;25074:12;25064:22;;24991:106;;;:::o;25107:180::-;25190:11;25228:6;25223:3;25216:19;25272:4;25267:3;25263:14;25248:29;;25107:180;;;;:::o;25297:393::-;25383:3;25415:38;25447:5;25415:38;:::i;:::-;25473:70;25536:6;25531:3;25473:70;:::i;:::-;25466:77;;25556:65;25614:6;25609:3;25602:4;25595:5;25591:16;25556:65;:::i;:::-;25650:29;25672:6;25650:29;:::i;:::-;25645:3;25641:39;25634:46;;25387:303;25297:393;;;;:::o;25700:668::-;25895:4;25937:3;25926:9;25922:19;25914:27;;25955:71;26023:1;26012:9;26008:17;25999:6;25955:71;:::i;:::-;26040:72;26108:2;26097:9;26093:18;26084:6;26040:72;:::i;:::-;26126;26194:2;26183:9;26179:18;26170:6;26126:72;:::i;:::-;26249:9;26243:4;26239:20;26234:2;26223:9;26219:18;26212:48;26281:76;26352:4;26343:6;26281:76;:::i;:::-;26273:84;;25700:668;;;;;;;:::o;26378:153::-;26434:5;26469:6;26463:13;26454:22;;26489:32;26515:5;26489:32;:::i;:::-;26378:153;;;;:::o;26541:373::-;26610:6;26663:2;26651:9;26642:7;26638:23;26634:32;26631:119;;;26669:79;;:::i;:::-;26631:119;26797:1;26826:63;26881:7;26872:6;26861:9;26857:22;26826:63;:::i;:::-;26816:73;;26764:139;26541:373;;;;:::o;26924:196::-;26976:77;26973:1;26966:88;27077:4;27074:1;27067:15;27105:4;27102:1;27095:15;27130:348;27251:4;27293:2;27282:9;27278:18;27270:26;;27310:71;27378:1;27367:9;27363:17;27354:6;27310:71;:::i;:::-;27395:72;27463:2;27452:9;27448:18;27439:6;27395:72;:::i;:::-;27130:348;;;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "assetMetadata()": "88662de9", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "getAssetMetadata()": "ddd71ede", + "getMyWalletMints()": "50516808", + "isApprovedForAll(address,address)": "e985e9c5", + "maxPerWallet()": "453c2310", + "mintPrice()": "6817c76c", + "mintToken()": "2004ffd9", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "ownerOf(uint256)": "6352211e", + "renounceOwnership()": "715018a6", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "totalMints()": "1f21bfbf", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "updateMetadata(string)": "918b5be1", + "walletMints(address)": "f0293fd3", + "withdrawFunds()": "24600fc3" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAssetMetadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMyWalletMints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPerWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalMints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newAssetMetadata\",\"type\":\"string\"}],\"name\":\"updateMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"walletMints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/CaveParty.sol\":\"CaveParty\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/CaveParty.sol\":{\"keccak256\":\"0x607601e832e8620357f282f9dc25fff7ac1e1e60da096f3936014a6a6c5274c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ff1f75024103c440d3743b05fd6831c0aa0336a5309ce4503cb18e558b6d2e\",\"dweb:/ipfs/QmbqzLC5aH3iSyPK18ALJUao4bWcHzkNxaia9w4qJtR3P7\"]}},\"version\":1}" + } + }, + "contracts/FluffyFuryNFT.sol": { + "FluffyFury": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "initialSvg", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mint", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "mintPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "svgData", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_newSvg", + "type": "string" + } + ], + "name": "updateSVG", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_3501": { + "entryPoint": null, + "id": 3501, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_386": { + "entryPoint": null, + "id": 386, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 516, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 991, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 1066, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 1117, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2068, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2286, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2085, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2211, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2325, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 862, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 714, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 893, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1309, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1198, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2114, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1630, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 2048, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2016, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1591, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1465, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1785, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 947, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1330, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1256, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1755, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 808, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1455, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1723, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 1209, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 761, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1505, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 734, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 739, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 729, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 724, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 744, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1346, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1710, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1563, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d": { + "entryPoint": 2131, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244": { + "entryPoint": 2245, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1359, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1515, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1558, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:10954:23", + "nodeType": "YulBlock", + "src": "0:10954:23", + "statements": [ + { + "body": { + "nativeSrc": "47:35:23", + "nodeType": "YulBlock", + "src": "47:35:23", + "statements": [ + { + "nativeSrc": "57:19:23", + "nodeType": "YulAssignment", + "src": "57:19:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:23", + "nodeType": "YulLiteral", + "src": "73:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:23", + "nodeType": "YulIdentifier", + "src": "67:5:23" + }, + "nativeSrc": "67:9:23", + "nodeType": "YulFunctionCall", + "src": "67:9:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:23", + "nodeType": "YulIdentifier", + "src": "57:6:23" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:23", + "nodeType": "YulTypedName", + "src": "40:6:23", + "type": "" + } + ], + "src": "7:75:23" + }, + { + "body": { + "nativeSrc": "177:28:23", + "nodeType": "YulBlock", + "src": "177:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:23", + "nodeType": "YulLiteral", + "src": "194:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:23", + "nodeType": "YulLiteral", + "src": "197:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:23", + "nodeType": "YulIdentifier", + "src": "187:6:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulFunctionCall", + "src": "187:12:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulExpressionStatement", + "src": "187:12:23" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:23", + "nodeType": "YulFunctionDefinition", + "src": "88:117:23" + }, + { + "body": { + "nativeSrc": "300:28:23", + "nodeType": "YulBlock", + "src": "300:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:23", + "nodeType": "YulLiteral", + "src": "317:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:23", + "nodeType": "YulLiteral", + "src": "320:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:23", + "nodeType": "YulIdentifier", + "src": "310:6:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulFunctionCall", + "src": "310:12:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulExpressionStatement", + "src": "310:12:23" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:23", + "nodeType": "YulFunctionDefinition", + "src": "211:117:23" + }, + { + "body": { + "nativeSrc": "423:28:23", + "nodeType": "YulBlock", + "src": "423:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:23", + "nodeType": "YulLiteral", + "src": "440:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:23", + "nodeType": "YulLiteral", + "src": "443:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:23", + "nodeType": "YulIdentifier", + "src": "433:6:23" + }, + "nativeSrc": "433:12:23", + "nodeType": "YulFunctionCall", + "src": "433:12:23" + }, + "nativeSrc": "433:12:23", + "nodeType": "YulExpressionStatement", + "src": "433:12:23" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:23", + "nodeType": "YulFunctionDefinition", + "src": "334:117:23" + }, + { + "body": { + "nativeSrc": "546:28:23", + "nodeType": "YulBlock", + "src": "546:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:23", + "nodeType": "YulLiteral", + "src": "563:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:23", + "nodeType": "YulLiteral", + "src": "566:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:23", + "nodeType": "YulIdentifier", + "src": "556:6:23" + }, + "nativeSrc": "556:12:23", + "nodeType": "YulFunctionCall", + "src": "556:12:23" + }, + "nativeSrc": "556:12:23", + "nodeType": "YulExpressionStatement", + "src": "556:12:23" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:23", + "nodeType": "YulFunctionDefinition", + "src": "457:117:23" + }, + { + "body": { + "nativeSrc": "628:54:23", + "nodeType": "YulBlock", + "src": "628:54:23", + "statements": [ + { + "nativeSrc": "638:38:23", + "nodeType": "YulAssignment", + "src": "638:38:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:23", + "nodeType": "YulIdentifier", + "src": "656:5:23" + }, + { + "kind": "number", + "nativeSrc": "663:2:23", + "nodeType": "YulLiteral", + "src": "663:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:23", + "nodeType": "YulIdentifier", + "src": "652:3:23" + }, + "nativeSrc": "652:14:23", + "nodeType": "YulFunctionCall", + "src": "652:14:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:23", + "nodeType": "YulLiteral", + "src": "672:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:23", + "nodeType": "YulIdentifier", + "src": "668:3:23" + }, + "nativeSrc": "668:7:23", + "nodeType": "YulFunctionCall", + "src": "668:7:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:23", + "nodeType": "YulIdentifier", + "src": "648:3:23" + }, + "nativeSrc": "648:28:23", + "nodeType": "YulFunctionCall", + "src": "648:28:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:23", + "nodeType": "YulIdentifier", + "src": "638:6:23" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:23", + "nodeType": "YulTypedName", + "src": "611:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:23", + "nodeType": "YulTypedName", + "src": "621:6:23", + "type": "" + } + ], + "src": "580:102:23" + }, + { + "body": { + "nativeSrc": "716:152:23", + "nodeType": "YulBlock", + "src": "716:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "733:1:23", + "nodeType": "YulLiteral", + "src": "733:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:23", + "nodeType": "YulLiteral", + "src": "736:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:23", + "nodeType": "YulIdentifier", + "src": "726:6:23" + }, + "nativeSrc": "726:88:23", + "nodeType": "YulFunctionCall", + "src": "726:88:23" + }, + "nativeSrc": "726:88:23", + "nodeType": "YulExpressionStatement", + "src": "726:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "830:1:23", + "nodeType": "YulLiteral", + "src": "830:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:23", + "nodeType": "YulLiteral", + "src": "833:4:23", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "823:6:23", + "nodeType": "YulIdentifier", + "src": "823:6:23" + }, + "nativeSrc": "823:15:23", + "nodeType": "YulFunctionCall", + "src": "823:15:23" + }, + "nativeSrc": "823:15:23", + "nodeType": "YulExpressionStatement", + "src": "823:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:23", + "nodeType": "YulLiteral", + "src": "854:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:23", + "nodeType": "YulLiteral", + "src": "857:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:23", + "nodeType": "YulIdentifier", + "src": "847:6:23" + }, + "nativeSrc": "847:15:23", + "nodeType": "YulFunctionCall", + "src": "847:15:23" + }, + "nativeSrc": "847:15:23", + "nodeType": "YulExpressionStatement", + "src": "847:15:23" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:23", + "nodeType": "YulFunctionDefinition", + "src": "688:180:23" + }, + { + "body": { + "nativeSrc": "917:238:23", + "nodeType": "YulBlock", + "src": "917:238:23", + "statements": [ + { + "nativeSrc": "927:58:23", + "nodeType": "YulVariableDeclaration", + "src": "927:58:23", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:23", + "nodeType": "YulIdentifier", + "src": "949:6:23" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:23", + "nodeType": "YulIdentifier", + "src": "979:4:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:23", + "nodeType": "YulIdentifier", + "src": "957:21:23" + }, + "nativeSrc": "957:27:23", + "nodeType": "YulFunctionCall", + "src": "957:27:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:23", + "nodeType": "YulIdentifier", + "src": "945:3:23" + }, + "nativeSrc": "945:40:23", + "nodeType": "YulFunctionCall", + "src": "945:40:23" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "931:10:23", + "nodeType": "YulTypedName", + "src": "931:10:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1096:22:23", + "nodeType": "YulBlock", + "src": "1096:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:23", + "nodeType": "YulIdentifier", + "src": "1098:16:23" + }, + "nativeSrc": "1098:18:23", + "nodeType": "YulFunctionCall", + "src": "1098:18:23" + }, + "nativeSrc": "1098:18:23", + "nodeType": "YulExpressionStatement", + "src": "1098:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1039:10:23", + "nodeType": "YulIdentifier", + "src": "1039:10:23" + }, + { + "kind": "number", + "nativeSrc": "1051:18:23", + "nodeType": "YulLiteral", + "src": "1051:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:23", + "nodeType": "YulIdentifier", + "src": "1036:2:23" + }, + "nativeSrc": "1036:34:23", + "nodeType": "YulFunctionCall", + "src": "1036:34:23" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:23", + "nodeType": "YulIdentifier", + "src": "1075:10:23" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:23", + "nodeType": "YulIdentifier", + "src": "1087:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:23", + "nodeType": "YulIdentifier", + "src": "1072:2:23" + }, + "nativeSrc": "1072:22:23", + "nodeType": "YulFunctionCall", + "src": "1072:22:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:23", + "nodeType": "YulIdentifier", + "src": "1033:2:23" + }, + "nativeSrc": "1033:62:23", + "nodeType": "YulFunctionCall", + "src": "1033:62:23" + }, + "nativeSrc": "1030:88:23", + "nodeType": "YulIf", + "src": "1030:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:23", + "nodeType": "YulLiteral", + "src": "1134:2:23", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:23", + "nodeType": "YulIdentifier", + "src": "1138:10:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:23", + "nodeType": "YulIdentifier", + "src": "1127:6:23" + }, + "nativeSrc": "1127:22:23", + "nodeType": "YulFunctionCall", + "src": "1127:22:23" + }, + "nativeSrc": "1127:22:23", + "nodeType": "YulExpressionStatement", + "src": "1127:22:23" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "874:281:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "903:6:23", + "nodeType": "YulTypedName", + "src": "903:6:23", + "type": "" + }, + { + "name": "size", + "nativeSrc": "911:4:23", + "nodeType": "YulTypedName", + "src": "911:4:23", + "type": "" + } + ], + "src": "874:281:23" + }, + { + "body": { + "nativeSrc": "1202:88:23", + "nodeType": "YulBlock", + "src": "1202:88:23", + "statements": [ + { + "nativeSrc": "1212:30:23", + "nodeType": "YulAssignment", + "src": "1212:30:23", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:23", + "nodeType": "YulIdentifier", + "src": "1222:18:23" + }, + "nativeSrc": "1222:20:23", + "nodeType": "YulFunctionCall", + "src": "1222:20:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1212:6:23", + "nodeType": "YulIdentifier", + "src": "1212:6:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1271:6:23", + "nodeType": "YulIdentifier", + "src": "1271:6:23" + }, + { + "name": "size", + "nativeSrc": "1279:4:23", + "nodeType": "YulIdentifier", + "src": "1279:4:23" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1251:19:23", + "nodeType": "YulIdentifier", + "src": "1251:19:23" + }, + "nativeSrc": "1251:33:23", + "nodeType": "YulFunctionCall", + "src": "1251:33:23" + }, + "nativeSrc": "1251:33:23", + "nodeType": "YulExpressionStatement", + "src": "1251:33:23" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1161:129:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1186:4:23", + "nodeType": "YulTypedName", + "src": "1186:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1195:6:23", + "nodeType": "YulTypedName", + "src": "1195:6:23", + "type": "" + } + ], + "src": "1161:129:23" + }, + { + "body": { + "nativeSrc": "1363:241:23", + "nodeType": "YulBlock", + "src": "1363:241:23", + "statements": [ + { + "body": { + "nativeSrc": "1468:22:23", + "nodeType": "YulBlock", + "src": "1468:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:23", + "nodeType": "YulIdentifier", + "src": "1470:16:23" + }, + "nativeSrc": "1470:18:23", + "nodeType": "YulFunctionCall", + "src": "1470:18:23" + }, + "nativeSrc": "1470:18:23", + "nodeType": "YulExpressionStatement", + "src": "1470:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:23", + "nodeType": "YulIdentifier", + "src": "1440:6:23" + }, + { + "kind": "number", + "nativeSrc": "1448:18:23", + "nodeType": "YulLiteral", + "src": "1448:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1437:2:23", + "nodeType": "YulIdentifier", + "src": "1437:2:23" + }, + "nativeSrc": "1437:30:23", + "nodeType": "YulFunctionCall", + "src": "1437:30:23" + }, + "nativeSrc": "1434:56:23", + "nodeType": "YulIf", + "src": "1434:56:23" + }, + { + "nativeSrc": "1500:37:23", + "nodeType": "YulAssignment", + "src": "1500:37:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:23", + "nodeType": "YulIdentifier", + "src": "1530:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:23", + "nodeType": "YulIdentifier", + "src": "1508:21:23" + }, + "nativeSrc": "1508:29:23", + "nodeType": "YulFunctionCall", + "src": "1508:29:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1500:4:23", + "nodeType": "YulIdentifier", + "src": "1500:4:23" + } + ] + }, + { + "nativeSrc": "1574:23:23", + "nodeType": "YulAssignment", + "src": "1574:23:23", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1586:4:23", + "nodeType": "YulIdentifier", + "src": "1586:4:23" + }, + { + "kind": "number", + "nativeSrc": "1592:4:23", + "nodeType": "YulLiteral", + "src": "1592:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:23", + "nodeType": "YulIdentifier", + "src": "1582:3:23" + }, + "nativeSrc": "1582:15:23", + "nodeType": "YulFunctionCall", + "src": "1582:15:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1574:4:23", + "nodeType": "YulIdentifier", + "src": "1574:4:23" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1347:6:23", + "nodeType": "YulTypedName", + "src": "1347:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1358:4:23", + "nodeType": "YulTypedName", + "src": "1358:4:23", + "type": "" + } + ], + "src": "1296:308:23" + }, + { + "body": { + "nativeSrc": "1672:184:23", + "nodeType": "YulBlock", + "src": "1672:184:23", + "statements": [ + { + "nativeSrc": "1682:10:23", + "nodeType": "YulVariableDeclaration", + "src": "1682:10:23", + "value": { + "kind": "number", + "nativeSrc": "1691:1:23", + "nodeType": "YulLiteral", + "src": "1691:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1686:1:23", + "nodeType": "YulTypedName", + "src": "1686:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1751:63:23", + "nodeType": "YulBlock", + "src": "1751:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1776:3:23", + "nodeType": "YulIdentifier", + "src": "1776:3:23" + }, + { + "name": "i", + "nativeSrc": "1781:1:23", + "nodeType": "YulIdentifier", + "src": "1781:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:23", + "nodeType": "YulIdentifier", + "src": "1772:3:23" + }, + "nativeSrc": "1772:11:23", + "nodeType": "YulFunctionCall", + "src": "1772:11:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1795:3:23", + "nodeType": "YulIdentifier", + "src": "1795:3:23" + }, + { + "name": "i", + "nativeSrc": "1800:1:23", + "nodeType": "YulIdentifier", + "src": "1800:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1791:3:23", + "nodeType": "YulIdentifier", + "src": "1791:3:23" + }, + "nativeSrc": "1791:11:23", + "nodeType": "YulFunctionCall", + "src": "1791:11:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1785:5:23", + "nodeType": "YulIdentifier", + "src": "1785:5:23" + }, + "nativeSrc": "1785:18:23", + "nodeType": "YulFunctionCall", + "src": "1785:18:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1765:6:23", + "nodeType": "YulIdentifier", + "src": "1765:6:23" + }, + "nativeSrc": "1765:39:23", + "nodeType": "YulFunctionCall", + "src": "1765:39:23" + }, + "nativeSrc": "1765:39:23", + "nodeType": "YulExpressionStatement", + "src": "1765:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1712:1:23", + "nodeType": "YulIdentifier", + "src": "1712:1:23" + }, + { + "name": "length", + "nativeSrc": "1715:6:23", + "nodeType": "YulIdentifier", + "src": "1715:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1709:2:23", + "nodeType": "YulIdentifier", + "src": "1709:2:23" + }, + "nativeSrc": "1709:13:23", + "nodeType": "YulFunctionCall", + "src": "1709:13:23" + }, + "nativeSrc": "1701:113:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1723:19:23", + "nodeType": "YulBlock", + "src": "1723:19:23", + "statements": [ + { + "nativeSrc": "1725:15:23", + "nodeType": "YulAssignment", + "src": "1725:15:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1734:1:23", + "nodeType": "YulIdentifier", + "src": "1734:1:23" + }, + { + "kind": "number", + "nativeSrc": "1737:2:23", + "nodeType": "YulLiteral", + "src": "1737:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1730:3:23", + "nodeType": "YulIdentifier", + "src": "1730:3:23" + }, + "nativeSrc": "1730:10:23", + "nodeType": "YulFunctionCall", + "src": "1730:10:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1725:1:23", + "nodeType": "YulIdentifier", + "src": "1725:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1705:3:23", + "nodeType": "YulBlock", + "src": "1705:3:23", + "statements": [] + }, + "src": "1701:113:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1834:3:23", + "nodeType": "YulIdentifier", + "src": "1834:3:23" + }, + { + "name": "length", + "nativeSrc": "1839:6:23", + "nodeType": "YulIdentifier", + "src": "1839:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1830:3:23", + "nodeType": "YulIdentifier", + "src": "1830:3:23" + }, + "nativeSrc": "1830:16:23", + "nodeType": "YulFunctionCall", + "src": "1830:16:23" + }, + { + "kind": "number", + "nativeSrc": "1848:1:23", + "nodeType": "YulLiteral", + "src": "1848:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1823:6:23", + "nodeType": "YulIdentifier", + "src": "1823:6:23" + }, + "nativeSrc": "1823:27:23", + "nodeType": "YulFunctionCall", + "src": "1823:27:23" + }, + "nativeSrc": "1823:27:23", + "nodeType": "YulExpressionStatement", + "src": "1823:27:23" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:246:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1654:3:23", + "nodeType": "YulTypedName", + "src": "1654:3:23", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1659:3:23", + "nodeType": "YulTypedName", + "src": "1659:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1664:6:23", + "nodeType": "YulTypedName", + "src": "1664:6:23", + "type": "" + } + ], + "src": "1610:246:23" + }, + { + "body": { + "nativeSrc": "1957:339:23", + "nodeType": "YulBlock", + "src": "1957:339:23", + "statements": [ + { + "nativeSrc": "1967:75:23", + "nodeType": "YulAssignment", + "src": "1967:75:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2034:6:23", + "nodeType": "YulIdentifier", + "src": "2034:6:23" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1992:41:23", + "nodeType": "YulIdentifier", + "src": "1992:41:23" + }, + "nativeSrc": "1992:49:23", + "nodeType": "YulFunctionCall", + "src": "1992:49:23" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "1976:15:23", + "nodeType": "YulIdentifier", + "src": "1976:15:23" + }, + "nativeSrc": "1976:66:23", + "nodeType": "YulFunctionCall", + "src": "1976:66:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "1967:5:23", + "nodeType": "YulIdentifier", + "src": "1967:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2058:5:23", + "nodeType": "YulIdentifier", + "src": "2058:5:23" + }, + { + "name": "length", + "nativeSrc": "2065:6:23", + "nodeType": "YulIdentifier", + "src": "2065:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2051:6:23", + "nodeType": "YulIdentifier", + "src": "2051:6:23" + }, + "nativeSrc": "2051:21:23", + "nodeType": "YulFunctionCall", + "src": "2051:21:23" + }, + "nativeSrc": "2051:21:23", + "nodeType": "YulExpressionStatement", + "src": "2051:21:23" + }, + { + "nativeSrc": "2081:27:23", + "nodeType": "YulVariableDeclaration", + "src": "2081:27:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2096:5:23", + "nodeType": "YulIdentifier", + "src": "2096:5:23" + }, + { + "kind": "number", + "nativeSrc": "2103:4:23", + "nodeType": "YulLiteral", + "src": "2103:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2092:3:23", + "nodeType": "YulIdentifier", + "src": "2092:3:23" + }, + "nativeSrc": "2092:16:23", + "nodeType": "YulFunctionCall", + "src": "2092:16:23" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2085:3:23", + "nodeType": "YulTypedName", + "src": "2085:3:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2146:83:23", + "nodeType": "YulBlock", + "src": "2146:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2148:77:23", + "nodeType": "YulIdentifier", + "src": "2148:77:23" + }, + "nativeSrc": "2148:79:23", + "nodeType": "YulFunctionCall", + "src": "2148:79:23" + }, + "nativeSrc": "2148:79:23", + "nodeType": "YulExpressionStatement", + "src": "2148:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2127:3:23", + "nodeType": "YulIdentifier", + "src": "2127:3:23" + }, + { + "name": "length", + "nativeSrc": "2132:6:23", + "nodeType": "YulIdentifier", + "src": "2132:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2123:3:23", + "nodeType": "YulIdentifier", + "src": "2123:3:23" + }, + "nativeSrc": "2123:16:23", + "nodeType": "YulFunctionCall", + "src": "2123:16:23" + }, + { + "name": "end", + "nativeSrc": "2141:3:23", + "nodeType": "YulIdentifier", + "src": "2141:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2120:2:23", + "nodeType": "YulIdentifier", + "src": "2120:2:23" + }, + "nativeSrc": "2120:25:23", + "nodeType": "YulFunctionCall", + "src": "2120:25:23" + }, + "nativeSrc": "2117:112:23", + "nodeType": "YulIf", + "src": "2117:112:23" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2273:3:23", + "nodeType": "YulIdentifier", + "src": "2273:3:23" + }, + { + "name": "dst", + "nativeSrc": "2278:3:23", + "nodeType": "YulIdentifier", + "src": "2278:3:23" + }, + { + "name": "length", + "nativeSrc": "2283:6:23", + "nodeType": "YulIdentifier", + "src": "2283:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2238:34:23", + "nodeType": "YulIdentifier", + "src": "2238:34:23" + }, + "nativeSrc": "2238:52:23", + "nodeType": "YulFunctionCall", + "src": "2238:52:23" + }, + "nativeSrc": "2238:52:23", + "nodeType": "YulExpressionStatement", + "src": "2238:52:23" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1862:434:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1930:3:23", + "nodeType": "YulTypedName", + "src": "1930:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1935:6:23", + "nodeType": "YulTypedName", + "src": "1935:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1943:3:23", + "nodeType": "YulTypedName", + "src": "1943:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "1951:5:23", + "nodeType": "YulTypedName", + "src": "1951:5:23", + "type": "" + } + ], + "src": "1862:434:23" + }, + { + "body": { + "nativeSrc": "2389:282:23", + "nodeType": "YulBlock", + "src": "2389:282:23", + "statements": [ + { + "body": { + "nativeSrc": "2438:83:23", + "nodeType": "YulBlock", + "src": "2438:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2440:77:23", + "nodeType": "YulIdentifier", + "src": "2440:77:23" + }, + "nativeSrc": "2440:79:23", + "nodeType": "YulFunctionCall", + "src": "2440:79:23" + }, + "nativeSrc": "2440:79:23", + "nodeType": "YulExpressionStatement", + "src": "2440:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2417:6:23", + "nodeType": "YulIdentifier", + "src": "2417:6:23" + }, + { + "kind": "number", + "nativeSrc": "2425:4:23", + "nodeType": "YulLiteral", + "src": "2425:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2413:3:23", + "nodeType": "YulIdentifier", + "src": "2413:3:23" + }, + "nativeSrc": "2413:17:23", + "nodeType": "YulFunctionCall", + "src": "2413:17:23" + }, + { + "name": "end", + "nativeSrc": "2432:3:23", + "nodeType": "YulIdentifier", + "src": "2432:3:23" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2409:3:23", + "nodeType": "YulIdentifier", + "src": "2409:3:23" + }, + "nativeSrc": "2409:27:23", + "nodeType": "YulFunctionCall", + "src": "2409:27:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2402:6:23", + "nodeType": "YulIdentifier", + "src": "2402:6:23" + }, + "nativeSrc": "2402:35:23", + "nodeType": "YulFunctionCall", + "src": "2402:35:23" + }, + "nativeSrc": "2399:122:23", + "nodeType": "YulIf", + "src": "2399:122:23" + }, + { + "nativeSrc": "2530:27:23", + "nodeType": "YulVariableDeclaration", + "src": "2530:27:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2550:6:23", + "nodeType": "YulIdentifier", + "src": "2550:6:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2544:5:23", + "nodeType": "YulIdentifier", + "src": "2544:5:23" + }, + "nativeSrc": "2544:13:23", + "nodeType": "YulFunctionCall", + "src": "2544:13:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2534:6:23", + "nodeType": "YulTypedName", + "src": "2534:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "2566:99:23", + "nodeType": "YulAssignment", + "src": "2566:99:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2638:6:23", + "nodeType": "YulIdentifier", + "src": "2638:6:23" + }, + { + "kind": "number", + "nativeSrc": "2646:4:23", + "nodeType": "YulLiteral", + "src": "2646:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2634:3:23", + "nodeType": "YulIdentifier", + "src": "2634:3:23" + }, + "nativeSrc": "2634:17:23", + "nodeType": "YulFunctionCall", + "src": "2634:17:23" + }, + { + "name": "length", + "nativeSrc": "2653:6:23", + "nodeType": "YulIdentifier", + "src": "2653:6:23" + }, + { + "name": "end", + "nativeSrc": "2661:3:23", + "nodeType": "YulIdentifier", + "src": "2661:3:23" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2575:58:23", + "nodeType": "YulIdentifier", + "src": "2575:58:23" + }, + "nativeSrc": "2575:90:23", + "nodeType": "YulFunctionCall", + "src": "2575:90:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2566:5:23", + "nodeType": "YulIdentifier", + "src": "2566:5:23" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2316:355:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2367:6:23", + "nodeType": "YulTypedName", + "src": "2367:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2375:3:23", + "nodeType": "YulTypedName", + "src": "2375:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2383:5:23", + "nodeType": "YulTypedName", + "src": "2383:5:23", + "type": "" + } + ], + "src": "2316:355:23" + }, + { + "body": { + "nativeSrc": "2764:437:23", + "nodeType": "YulBlock", + "src": "2764:437:23", + "statements": [ + { + "body": { + "nativeSrc": "2810:83:23", + "nodeType": "YulBlock", + "src": "2810:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2812:77:23", + "nodeType": "YulIdentifier", + "src": "2812:77:23" + }, + "nativeSrc": "2812:79:23", + "nodeType": "YulFunctionCall", + "src": "2812:79:23" + }, + "nativeSrc": "2812:79:23", + "nodeType": "YulExpressionStatement", + "src": "2812:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2785:7:23", + "nodeType": "YulIdentifier", + "src": "2785:7:23" + }, + { + "name": "headStart", + "nativeSrc": "2794:9:23", + "nodeType": "YulIdentifier", + "src": "2794:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2781:3:23", + "nodeType": "YulIdentifier", + "src": "2781:3:23" + }, + "nativeSrc": "2781:23:23", + "nodeType": "YulFunctionCall", + "src": "2781:23:23" + }, + { + "kind": "number", + "nativeSrc": "2806:2:23", + "nodeType": "YulLiteral", + "src": "2806:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2777:3:23", + "nodeType": "YulIdentifier", + "src": "2777:3:23" + }, + "nativeSrc": "2777:32:23", + "nodeType": "YulFunctionCall", + "src": "2777:32:23" + }, + "nativeSrc": "2774:119:23", + "nodeType": "YulIf", + "src": "2774:119:23" + }, + { + "nativeSrc": "2903:291:23", + "nodeType": "YulBlock", + "src": "2903:291:23", + "statements": [ + { + "nativeSrc": "2918:38:23", + "nodeType": "YulVariableDeclaration", + "src": "2918:38:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2942:9:23", + "nodeType": "YulIdentifier", + "src": "2942:9:23" + }, + { + "kind": "number", + "nativeSrc": "2953:1:23", + "nodeType": "YulLiteral", + "src": "2953:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2938:3:23", + "nodeType": "YulIdentifier", + "src": "2938:3:23" + }, + "nativeSrc": "2938:17:23", + "nodeType": "YulFunctionCall", + "src": "2938:17:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2932:5:23", + "nodeType": "YulIdentifier", + "src": "2932:5:23" + }, + "nativeSrc": "2932:24:23", + "nodeType": "YulFunctionCall", + "src": "2932:24:23" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2922:6:23", + "nodeType": "YulTypedName", + "src": "2922:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3003:83:23", + "nodeType": "YulBlock", + "src": "3003:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3005:77:23", + "nodeType": "YulIdentifier", + "src": "3005:77:23" + }, + "nativeSrc": "3005:79:23", + "nodeType": "YulFunctionCall", + "src": "3005:79:23" + }, + "nativeSrc": "3005:79:23", + "nodeType": "YulExpressionStatement", + "src": "3005:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2975:6:23", + "nodeType": "YulIdentifier", + "src": "2975:6:23" + }, + { + "kind": "number", + "nativeSrc": "2983:18:23", + "nodeType": "YulLiteral", + "src": "2983:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2972:2:23", + "nodeType": "YulIdentifier", + "src": "2972:2:23" + }, + "nativeSrc": "2972:30:23", + "nodeType": "YulFunctionCall", + "src": "2972:30:23" + }, + "nativeSrc": "2969:117:23", + "nodeType": "YulIf", + "src": "2969:117:23" + }, + { + "nativeSrc": "3100:84:23", + "nodeType": "YulAssignment", + "src": "3100:84:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3156:9:23", + "nodeType": "YulIdentifier", + "src": "3156:9:23" + }, + { + "name": "offset", + "nativeSrc": "3167:6:23", + "nodeType": "YulIdentifier", + "src": "3167:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3152:3:23", + "nodeType": "YulIdentifier", + "src": "3152:3:23" + }, + "nativeSrc": "3152:22:23", + "nodeType": "YulFunctionCall", + "src": "3152:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "3176:7:23", + "nodeType": "YulIdentifier", + "src": "3176:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3110:41:23", + "nodeType": "YulIdentifier", + "src": "3110:41:23" + }, + "nativeSrc": "3110:74:23", + "nodeType": "YulFunctionCall", + "src": "3110:74:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3100:6:23", + "nodeType": "YulIdentifier", + "src": "3100:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2677:524:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2734:9:23", + "nodeType": "YulTypedName", + "src": "2734:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2745:7:23", + "nodeType": "YulTypedName", + "src": "2745:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2757:6:23", + "nodeType": "YulTypedName", + "src": "2757:6:23", + "type": "" + } + ], + "src": "2677:524:23" + }, + { + "body": { + "nativeSrc": "3266:40:23", + "nodeType": "YulBlock", + "src": "3266:40:23", + "statements": [ + { + "nativeSrc": "3277:22:23", + "nodeType": "YulAssignment", + "src": "3277:22:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3293:5:23", + "nodeType": "YulIdentifier", + "src": "3293:5:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3287:5:23", + "nodeType": "YulIdentifier", + "src": "3287:5:23" + }, + "nativeSrc": "3287:12:23", + "nodeType": "YulFunctionCall", + "src": "3287:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3277:6:23", + "nodeType": "YulIdentifier", + "src": "3277:6:23" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3207:99:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3249:5:23", + "nodeType": "YulTypedName", + "src": "3249:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3259:6:23", + "nodeType": "YulTypedName", + "src": "3259:6:23", + "type": "" + } + ], + "src": "3207:99:23" + }, + { + "body": { + "nativeSrc": "3340:152:23", + "nodeType": "YulBlock", + "src": "3340:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3357:1:23", + "nodeType": "YulLiteral", + "src": "3357:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3360:77:23", + "nodeType": "YulLiteral", + "src": "3360:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3350:6:23", + "nodeType": "YulIdentifier", + "src": "3350:6:23" + }, + "nativeSrc": "3350:88:23", + "nodeType": "YulFunctionCall", + "src": "3350:88:23" + }, + "nativeSrc": "3350:88:23", + "nodeType": "YulExpressionStatement", + "src": "3350:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3454:1:23", + "nodeType": "YulLiteral", + "src": "3454:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3457:4:23", + "nodeType": "YulLiteral", + "src": "3457:4:23", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3447:6:23", + "nodeType": "YulIdentifier", + "src": "3447:6:23" + }, + "nativeSrc": "3447:15:23", + "nodeType": "YulFunctionCall", + "src": "3447:15:23" + }, + "nativeSrc": "3447:15:23", + "nodeType": "YulExpressionStatement", + "src": "3447:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3478:1:23", + "nodeType": "YulLiteral", + "src": "3478:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3481:4:23", + "nodeType": "YulLiteral", + "src": "3481:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3471:6:23", + "nodeType": "YulIdentifier", + "src": "3471:6:23" + }, + "nativeSrc": "3471:15:23", + "nodeType": "YulFunctionCall", + "src": "3471:15:23" + }, + "nativeSrc": "3471:15:23", + "nodeType": "YulExpressionStatement", + "src": "3471:15:23" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "3312:180:23", + "nodeType": "YulFunctionDefinition", + "src": "3312:180:23" + }, + { + "body": { + "nativeSrc": "3549:269:23", + "nodeType": "YulBlock", + "src": "3549:269:23", + "statements": [ + { + "nativeSrc": "3559:22:23", + "nodeType": "YulAssignment", + "src": "3559:22:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3573:4:23", + "nodeType": "YulIdentifier", + "src": "3573:4:23" + }, + { + "kind": "number", + "nativeSrc": "3579:1:23", + "nodeType": "YulLiteral", + "src": "3579:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3569:3:23", + "nodeType": "YulIdentifier", + "src": "3569:3:23" + }, + "nativeSrc": "3569:12:23", + "nodeType": "YulFunctionCall", + "src": "3569:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3559:6:23", + "nodeType": "YulIdentifier", + "src": "3559:6:23" + } + ] + }, + { + "nativeSrc": "3590:38:23", + "nodeType": "YulVariableDeclaration", + "src": "3590:38:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3620:4:23", + "nodeType": "YulIdentifier", + "src": "3620:4:23" + }, + { + "kind": "number", + "nativeSrc": "3626:1:23", + "nodeType": "YulLiteral", + "src": "3626:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3616:3:23", + "nodeType": "YulIdentifier", + "src": "3616:3:23" + }, + "nativeSrc": "3616:12:23", + "nodeType": "YulFunctionCall", + "src": "3616:12:23" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3594:18:23", + "nodeType": "YulTypedName", + "src": "3594:18:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3667:51:23", + "nodeType": "YulBlock", + "src": "3667:51:23", + "statements": [ + { + "nativeSrc": "3681:27:23", + "nodeType": "YulAssignment", + "src": "3681:27:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3695:6:23", + "nodeType": "YulIdentifier", + "src": "3695:6:23" + }, + { + "kind": "number", + "nativeSrc": "3703:4:23", + "nodeType": "YulLiteral", + "src": "3703:4:23", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3691:3:23", + "nodeType": "YulIdentifier", + "src": "3691:3:23" + }, + "nativeSrc": "3691:17:23", + "nodeType": "YulFunctionCall", + "src": "3691:17:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3681:6:23", + "nodeType": "YulIdentifier", + "src": "3681:6:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3647:18:23", + "nodeType": "YulIdentifier", + "src": "3647:18:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3640:6:23", + "nodeType": "YulIdentifier", + "src": "3640:6:23" + }, + "nativeSrc": "3640:26:23", + "nodeType": "YulFunctionCall", + "src": "3640:26:23" + }, + "nativeSrc": "3637:81:23", + "nodeType": "YulIf", + "src": "3637:81:23" + }, + { + "body": { + "nativeSrc": "3770:42:23", + "nodeType": "YulBlock", + "src": "3770:42:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "3784:16:23", + "nodeType": "YulIdentifier", + "src": "3784:16:23" + }, + "nativeSrc": "3784:18:23", + "nodeType": "YulFunctionCall", + "src": "3784:18:23" + }, + "nativeSrc": "3784:18:23", + "nodeType": "YulExpressionStatement", + "src": "3784:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3734:18:23", + "nodeType": "YulIdentifier", + "src": "3734:18:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3757:6:23", + "nodeType": "YulIdentifier", + "src": "3757:6:23" + }, + { + "kind": "number", + "nativeSrc": "3765:2:23", + "nodeType": "YulLiteral", + "src": "3765:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3754:2:23", + "nodeType": "YulIdentifier", + "src": "3754:2:23" + }, + "nativeSrc": "3754:14:23", + "nodeType": "YulFunctionCall", + "src": "3754:14:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3731:2:23", + "nodeType": "YulIdentifier", + "src": "3731:2:23" + }, + "nativeSrc": "3731:38:23", + "nodeType": "YulFunctionCall", + "src": "3731:38:23" + }, + "nativeSrc": "3728:84:23", + "nodeType": "YulIf", + "src": "3728:84:23" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3498:320:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3533:4:23", + "nodeType": "YulTypedName", + "src": "3533:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3542:6:23", + "nodeType": "YulTypedName", + "src": "3542:6:23", + "type": "" + } + ], + "src": "3498:320:23" + }, + { + "body": { + "nativeSrc": "3878:87:23", + "nodeType": "YulBlock", + "src": "3878:87:23", + "statements": [ + { + "nativeSrc": "3888:11:23", + "nodeType": "YulAssignment", + "src": "3888:11:23", + "value": { + "name": "ptr", + "nativeSrc": "3896:3:23", + "nodeType": "YulIdentifier", + "src": "3896:3:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3888:4:23", + "nodeType": "YulIdentifier", + "src": "3888:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3916:1:23", + "nodeType": "YulLiteral", + "src": "3916:1:23", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3919:3:23", + "nodeType": "YulIdentifier", + "src": "3919:3:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3909:6:23", + "nodeType": "YulIdentifier", + "src": "3909:6:23" + }, + "nativeSrc": "3909:14:23", + "nodeType": "YulFunctionCall", + "src": "3909:14:23" + }, + "nativeSrc": "3909:14:23", + "nodeType": "YulExpressionStatement", + "src": "3909:14:23" + }, + { + "nativeSrc": "3932:26:23", + "nodeType": "YulAssignment", + "src": "3932:26:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3950:1:23", + "nodeType": "YulLiteral", + "src": "3950:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3953:4:23", + "nodeType": "YulLiteral", + "src": "3953:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3940:9:23", + "nodeType": "YulIdentifier", + "src": "3940:9:23" + }, + "nativeSrc": "3940:18:23", + "nodeType": "YulFunctionCall", + "src": "3940:18:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3932:4:23", + "nodeType": "YulIdentifier", + "src": "3932:4:23" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3824:141:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3865:3:23", + "nodeType": "YulTypedName", + "src": "3865:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3873:4:23", + "nodeType": "YulTypedName", + "src": "3873:4:23", + "type": "" + } + ], + "src": "3824:141:23" + }, + { + "body": { + "nativeSrc": "4015:49:23", + "nodeType": "YulBlock", + "src": "4015:49:23", + "statements": [ + { + "nativeSrc": "4025:33:23", + "nodeType": "YulAssignment", + "src": "4025:33:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4043:5:23", + "nodeType": "YulIdentifier", + "src": "4043:5:23" + }, + { + "kind": "number", + "nativeSrc": "4050:2:23", + "nodeType": "YulLiteral", + "src": "4050:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4039:3:23", + "nodeType": "YulIdentifier", + "src": "4039:3:23" + }, + "nativeSrc": "4039:14:23", + "nodeType": "YulFunctionCall", + "src": "4039:14:23" + }, + { + "kind": "number", + "nativeSrc": "4055:2:23", + "nodeType": "YulLiteral", + "src": "4055:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4035:3:23", + "nodeType": "YulIdentifier", + "src": "4035:3:23" + }, + "nativeSrc": "4035:23:23", + "nodeType": "YulFunctionCall", + "src": "4035:23:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4025:6:23", + "nodeType": "YulIdentifier", + "src": "4025:6:23" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3971:93:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3998:5:23", + "nodeType": "YulTypedName", + "src": "3998:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4008:6:23", + "nodeType": "YulTypedName", + "src": "4008:6:23", + "type": "" + } + ], + "src": "3971:93:23" + }, + { + "body": { + "nativeSrc": "4123:54:23", + "nodeType": "YulBlock", + "src": "4123:54:23", + "statements": [ + { + "nativeSrc": "4133:37:23", + "nodeType": "YulAssignment", + "src": "4133:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4158:4:23", + "nodeType": "YulIdentifier", + "src": "4158:4:23" + }, + { + "name": "value", + "nativeSrc": "4164:5:23", + "nodeType": "YulIdentifier", + "src": "4164:5:23" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4154:3:23", + "nodeType": "YulIdentifier", + "src": "4154:3:23" + }, + "nativeSrc": "4154:16:23", + "nodeType": "YulFunctionCall", + "src": "4154:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4133:8:23", + "nodeType": "YulIdentifier", + "src": "4133:8:23" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4070:107:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4098:4:23", + "nodeType": "YulTypedName", + "src": "4098:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4104:5:23", + "nodeType": "YulTypedName", + "src": "4104:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4114:8:23", + "nodeType": "YulTypedName", + "src": "4114:8:23", + "type": "" + } + ], + "src": "4070:107:23" + }, + { + "body": { + "nativeSrc": "4259:317:23", + "nodeType": "YulBlock", + "src": "4259:317:23", + "statements": [ + { + "nativeSrc": "4269:35:23", + "nodeType": "YulVariableDeclaration", + "src": "4269:35:23", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "4290:10:23", + "nodeType": "YulIdentifier", + "src": "4290:10:23" + }, + { + "kind": "number", + "nativeSrc": "4302:1:23", + "nodeType": "YulLiteral", + "src": "4302:1:23", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4286:3:23", + "nodeType": "YulIdentifier", + "src": "4286:3:23" + }, + "nativeSrc": "4286:18:23", + "nodeType": "YulFunctionCall", + "src": "4286:18:23" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4273:9:23", + "nodeType": "YulTypedName", + "src": "4273:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4313:109:23", + "nodeType": "YulVariableDeclaration", + "src": "4313:109:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4344:9:23", + "nodeType": "YulIdentifier", + "src": "4344:9:23" + }, + { + "kind": "number", + "nativeSrc": "4355:66:23", + "nodeType": "YulLiteral", + "src": "4355:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4325:18:23", + "nodeType": "YulIdentifier", + "src": "4325:18:23" + }, + "nativeSrc": "4325:97:23", + "nodeType": "YulFunctionCall", + "src": "4325:97:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4317:4:23", + "nodeType": "YulTypedName", + "src": "4317:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4431:51:23", + "nodeType": "YulAssignment", + "src": "4431:51:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4462:9:23", + "nodeType": "YulIdentifier", + "src": "4462:9:23" + }, + { + "name": "toInsert", + "nativeSrc": "4473:8:23", + "nodeType": "YulIdentifier", + "src": "4473:8:23" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4443:18:23", + "nodeType": "YulIdentifier", + "src": "4443:18:23" + }, + "nativeSrc": "4443:39:23", + "nodeType": "YulFunctionCall", + "src": "4443:39:23" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "4431:8:23", + "nodeType": "YulIdentifier", + "src": "4431:8:23" + } + ] + }, + { + "nativeSrc": "4491:30:23", + "nodeType": "YulAssignment", + "src": "4491:30:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4504:5:23", + "nodeType": "YulIdentifier", + "src": "4504:5:23" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "4515:4:23", + "nodeType": "YulIdentifier", + "src": "4515:4:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4511:3:23", + "nodeType": "YulIdentifier", + "src": "4511:3:23" + }, + "nativeSrc": "4511:9:23", + "nodeType": "YulFunctionCall", + "src": "4511:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4500:3:23", + "nodeType": "YulIdentifier", + "src": "4500:3:23" + }, + "nativeSrc": "4500:21:23", + "nodeType": "YulFunctionCall", + "src": "4500:21:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4491:5:23", + "nodeType": "YulIdentifier", + "src": "4491:5:23" + } + ] + }, + { + "nativeSrc": "4530:40:23", + "nodeType": "YulAssignment", + "src": "4530:40:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4543:5:23", + "nodeType": "YulIdentifier", + "src": "4543:5:23" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "4554:8:23", + "nodeType": "YulIdentifier", + "src": "4554:8:23" + }, + { + "name": "mask", + "nativeSrc": "4564:4:23", + "nodeType": "YulIdentifier", + "src": "4564:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4550:3:23", + "nodeType": "YulIdentifier", + "src": "4550:3:23" + }, + "nativeSrc": "4550:19:23", + "nodeType": "YulFunctionCall", + "src": "4550:19:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4540:2:23", + "nodeType": "YulIdentifier", + "src": "4540:2:23" + }, + "nativeSrc": "4540:30:23", + "nodeType": "YulFunctionCall", + "src": "4540:30:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4530:6:23", + "nodeType": "YulIdentifier", + "src": "4530:6:23" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4183:393:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4220:5:23", + "nodeType": "YulTypedName", + "src": "4220:5:23", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "4227:10:23", + "nodeType": "YulTypedName", + "src": "4227:10:23", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4239:8:23", + "nodeType": "YulTypedName", + "src": "4239:8:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4252:6:23", + "nodeType": "YulTypedName", + "src": "4252:6:23", + "type": "" + } + ], + "src": "4183:393:23" + }, + { + "body": { + "nativeSrc": "4627:32:23", + "nodeType": "YulBlock", + "src": "4627:32:23", + "statements": [ + { + "nativeSrc": "4637:16:23", + "nodeType": "YulAssignment", + "src": "4637:16:23", + "value": { + "name": "value", + "nativeSrc": "4648:5:23", + "nodeType": "YulIdentifier", + "src": "4648:5:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4637:7:23", + "nodeType": "YulIdentifier", + "src": "4637:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "4582:77:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4609:5:23", + "nodeType": "YulTypedName", + "src": "4609:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4619:7:23", + "nodeType": "YulTypedName", + "src": "4619:7:23", + "type": "" + } + ], + "src": "4582:77:23" + }, + { + "body": { + "nativeSrc": "4697:28:23", + "nodeType": "YulBlock", + "src": "4697:28:23", + "statements": [ + { + "nativeSrc": "4707:12:23", + "nodeType": "YulAssignment", + "src": "4707:12:23", + "value": { + "name": "value", + "nativeSrc": "4714:5:23", + "nodeType": "YulIdentifier", + "src": "4714:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4707:3:23", + "nodeType": "YulIdentifier", + "src": "4707:3:23" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4665:60:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4683:5:23", + "nodeType": "YulTypedName", + "src": "4683:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4693:3:23", + "nodeType": "YulTypedName", + "src": "4693:3:23", + "type": "" + } + ], + "src": "4665:60:23" + }, + { + "body": { + "nativeSrc": "4791:82:23", + "nodeType": "YulBlock", + "src": "4791:82:23", + "statements": [ + { + "nativeSrc": "4801:66:23", + "nodeType": "YulAssignment", + "src": "4801:66:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4859:5:23", + "nodeType": "YulIdentifier", + "src": "4859:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4841:17:23", + "nodeType": "YulIdentifier", + "src": "4841:17:23" + }, + "nativeSrc": "4841:24:23", + "nodeType": "YulFunctionCall", + "src": "4841:24:23" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4832:8:23", + "nodeType": "YulIdentifier", + "src": "4832:8:23" + }, + "nativeSrc": "4832:34:23", + "nodeType": "YulFunctionCall", + "src": "4832:34:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4814:17:23", + "nodeType": "YulIdentifier", + "src": "4814:17:23" + }, + "nativeSrc": "4814:53:23", + "nodeType": "YulFunctionCall", + "src": "4814:53:23" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4801:9:23", + "nodeType": "YulIdentifier", + "src": "4801:9:23" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4731:142:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4771:5:23", + "nodeType": "YulTypedName", + "src": "4771:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4781:9:23", + "nodeType": "YulTypedName", + "src": "4781:9:23", + "type": "" + } + ], + "src": "4731:142:23" + }, + { + "body": { + "nativeSrc": "4926:28:23", + "nodeType": "YulBlock", + "src": "4926:28:23", + "statements": [ + { + "nativeSrc": "4936:12:23", + "nodeType": "YulAssignment", + "src": "4936:12:23", + "value": { + "name": "value", + "nativeSrc": "4943:5:23", + "nodeType": "YulIdentifier", + "src": "4943:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4936:3:23", + "nodeType": "YulIdentifier", + "src": "4936:3:23" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "4879:75:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4912:5:23", + "nodeType": "YulTypedName", + "src": "4912:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4922:3:23", + "nodeType": "YulTypedName", + "src": "4922:3:23", + "type": "" + } + ], + "src": "4879:75:23" + }, + { + "body": { + "nativeSrc": "5036:193:23", + "nodeType": "YulBlock", + "src": "5036:193:23", + "statements": [ + { + "nativeSrc": "5046:63:23", + "nodeType": "YulVariableDeclaration", + "src": "5046:63:23", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "5101:7:23", + "nodeType": "YulIdentifier", + "src": "5101:7:23" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5070:30:23", + "nodeType": "YulIdentifier", + "src": "5070:30:23" + }, + "nativeSrc": "5070:39:23", + "nodeType": "YulFunctionCall", + "src": "5070:39:23" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "5050:16:23", + "nodeType": "YulTypedName", + "src": "5050:16:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5125:4:23", + "nodeType": "YulIdentifier", + "src": "5125:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5165:4:23", + "nodeType": "YulIdentifier", + "src": "5165:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5159:5:23", + "nodeType": "YulIdentifier", + "src": "5159:5:23" + }, + "nativeSrc": "5159:11:23", + "nodeType": "YulFunctionCall", + "src": "5159:11:23" + }, + { + "name": "offset", + "nativeSrc": "5172:6:23", + "nodeType": "YulIdentifier", + "src": "5172:6:23" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5204:16:23", + "nodeType": "YulIdentifier", + "src": "5204:16:23" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5180:23:23", + "nodeType": "YulIdentifier", + "src": "5180:23:23" + }, + "nativeSrc": "5180:41:23", + "nodeType": "YulFunctionCall", + "src": "5180:41:23" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5131:27:23", + "nodeType": "YulIdentifier", + "src": "5131:27:23" + }, + "nativeSrc": "5131:91:23", + "nodeType": "YulFunctionCall", + "src": "5131:91:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5118:6:23", + "nodeType": "YulIdentifier", + "src": "5118:6:23" + }, + "nativeSrc": "5118:105:23", + "nodeType": "YulFunctionCall", + "src": "5118:105:23" + }, + "nativeSrc": "5118:105:23", + "nodeType": "YulExpressionStatement", + "src": "5118:105:23" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4960:269:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5013:4:23", + "nodeType": "YulTypedName", + "src": "5013:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5019:6:23", + "nodeType": "YulTypedName", + "src": "5019:6:23", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5027:7:23", + "nodeType": "YulTypedName", + "src": "5027:7:23", + "type": "" + } + ], + "src": "4960:269:23" + }, + { + "body": { + "nativeSrc": "5284:24:23", + "nodeType": "YulBlock", + "src": "5284:24:23", + "statements": [ + { + "nativeSrc": "5294:8:23", + "nodeType": "YulAssignment", + "src": "5294:8:23", + "value": { + "kind": "number", + "nativeSrc": "5301:1:23", + "nodeType": "YulLiteral", + "src": "5301:1:23", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5294:3:23", + "nodeType": "YulIdentifier", + "src": "5294:3:23" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5235:73:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5280:3:23", + "nodeType": "YulTypedName", + "src": "5280:3:23", + "type": "" + } + ], + "src": "5235:73:23" + }, + { + "body": { + "nativeSrc": "5367:136:23", + "nodeType": "YulBlock", + "src": "5367:136:23", + "statements": [ + { + "nativeSrc": "5377:46:23", + "nodeType": "YulVariableDeclaration", + "src": "5377:46:23", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5391:30:23", + "nodeType": "YulIdentifier", + "src": "5391:30:23" + }, + "nativeSrc": "5391:32:23", + "nodeType": "YulFunctionCall", + "src": "5391:32:23" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5381:6:23", + "nodeType": "YulTypedName", + "src": "5381:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5476:4:23", + "nodeType": "YulIdentifier", + "src": "5476:4:23" + }, + { + "name": "offset", + "nativeSrc": "5482:6:23", + "nodeType": "YulIdentifier", + "src": "5482:6:23" + }, + { + "name": "zero_0", + "nativeSrc": "5490:6:23", + "nodeType": "YulIdentifier", + "src": "5490:6:23" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5432:43:23", + "nodeType": "YulIdentifier", + "src": "5432:43:23" + }, + "nativeSrc": "5432:65:23", + "nodeType": "YulFunctionCall", + "src": "5432:65:23" + }, + "nativeSrc": "5432:65:23", + "nodeType": "YulExpressionStatement", + "src": "5432:65:23" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5314:189:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5353:4:23", + "nodeType": "YulTypedName", + "src": "5353:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5359:6:23", + "nodeType": "YulTypedName", + "src": "5359:6:23", + "type": "" + } + ], + "src": "5314:189:23" + }, + { + "body": { + "nativeSrc": "5559:136:23", + "nodeType": "YulBlock", + "src": "5559:136:23", + "statements": [ + { + "body": { + "nativeSrc": "5626:63:23", + "nodeType": "YulBlock", + "src": "5626:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5670:5:23", + "nodeType": "YulIdentifier", + "src": "5670:5:23" + }, + { + "kind": "number", + "nativeSrc": "5677:1:23", + "nodeType": "YulLiteral", + "src": "5677:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5640:29:23", + "nodeType": "YulIdentifier", + "src": "5640:29:23" + }, + "nativeSrc": "5640:39:23", + "nodeType": "YulFunctionCall", + "src": "5640:39:23" + }, + "nativeSrc": "5640:39:23", + "nodeType": "YulExpressionStatement", + "src": "5640:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5579:5:23", + "nodeType": "YulIdentifier", + "src": "5579:5:23" + }, + { + "name": "end", + "nativeSrc": "5586:3:23", + "nodeType": "YulIdentifier", + "src": "5586:3:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5576:2:23", + "nodeType": "YulIdentifier", + "src": "5576:2:23" + }, + "nativeSrc": "5576:14:23", + "nodeType": "YulFunctionCall", + "src": "5576:14:23" + }, + "nativeSrc": "5569:120:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5591:26:23", + "nodeType": "YulBlock", + "src": "5591:26:23", + "statements": [ + { + "nativeSrc": "5593:22:23", + "nodeType": "YulAssignment", + "src": "5593:22:23", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5606:5:23", + "nodeType": "YulIdentifier", + "src": "5606:5:23" + }, + { + "kind": "number", + "nativeSrc": "5613:1:23", + "nodeType": "YulLiteral", + "src": "5613:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5602:3:23", + "nodeType": "YulIdentifier", + "src": "5602:3:23" + }, + "nativeSrc": "5602:13:23", + "nodeType": "YulFunctionCall", + "src": "5602:13:23" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5593:5:23", + "nodeType": "YulIdentifier", + "src": "5593:5:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5573:2:23", + "nodeType": "YulBlock", + "src": "5573:2:23", + "statements": [] + }, + "src": "5569:120:23" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5509:186:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "5547:5:23", + "nodeType": "YulTypedName", + "src": "5547:5:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5554:3:23", + "nodeType": "YulTypedName", + "src": "5554:3:23", + "type": "" + } + ], + "src": "5509:186:23" + }, + { + "body": { + "nativeSrc": "5780:464:23", + "nodeType": "YulBlock", + "src": "5780:464:23", + "statements": [ + { + "body": { + "nativeSrc": "5806:431:23", + "nodeType": "YulBlock", + "src": "5806:431:23", + "statements": [ + { + "nativeSrc": "5820:54:23", + "nodeType": "YulVariableDeclaration", + "src": "5820:54:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5868:5:23", + "nodeType": "YulIdentifier", + "src": "5868:5:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5836:31:23", + "nodeType": "YulIdentifier", + "src": "5836:31:23" + }, + "nativeSrc": "5836:38:23", + "nodeType": "YulFunctionCall", + "src": "5836:38:23" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5824:8:23", + "nodeType": "YulTypedName", + "src": "5824:8:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5887:63:23", + "nodeType": "YulVariableDeclaration", + "src": "5887:63:23", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5910:8:23", + "nodeType": "YulIdentifier", + "src": "5910:8:23" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5938:10:23", + "nodeType": "YulIdentifier", + "src": "5938:10:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5920:17:23", + "nodeType": "YulIdentifier", + "src": "5920:17:23" + }, + "nativeSrc": "5920:29:23", + "nodeType": "YulFunctionCall", + "src": "5920:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5906:3:23", + "nodeType": "YulIdentifier", + "src": "5906:3:23" + }, + "nativeSrc": "5906:44:23", + "nodeType": "YulFunctionCall", + "src": "5906:44:23" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5891:11:23", + "nodeType": "YulTypedName", + "src": "5891:11:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6107:27:23", + "nodeType": "YulBlock", + "src": "6107:27:23", + "statements": [ + { + "nativeSrc": "6109:23:23", + "nodeType": "YulAssignment", + "src": "6109:23:23", + "value": { + "name": "dataArea", + "nativeSrc": "6124:8:23", + "nodeType": "YulIdentifier", + "src": "6124:8:23" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6109:11:23", + "nodeType": "YulIdentifier", + "src": "6109:11:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6091:10:23", + "nodeType": "YulIdentifier", + "src": "6091:10:23" + }, + { + "kind": "number", + "nativeSrc": "6103:2:23", + "nodeType": "YulLiteral", + "src": "6103:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6088:2:23", + "nodeType": "YulIdentifier", + "src": "6088:2:23" + }, + "nativeSrc": "6088:18:23", + "nodeType": "YulFunctionCall", + "src": "6088:18:23" + }, + "nativeSrc": "6085:49:23", + "nodeType": "YulIf", + "src": "6085:49:23" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6176:11:23", + "nodeType": "YulIdentifier", + "src": "6176:11:23" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6193:8:23", + "nodeType": "YulIdentifier", + "src": "6193:8:23" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6221:3:23", + "nodeType": "YulIdentifier", + "src": "6221:3:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6203:17:23", + "nodeType": "YulIdentifier", + "src": "6203:17:23" + }, + "nativeSrc": "6203:22:23", + "nodeType": "YulFunctionCall", + "src": "6203:22:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6189:3:23", + "nodeType": "YulIdentifier", + "src": "6189:3:23" + }, + "nativeSrc": "6189:37:23", + "nodeType": "YulFunctionCall", + "src": "6189:37:23" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6147:28:23", + "nodeType": "YulIdentifier", + "src": "6147:28:23" + }, + "nativeSrc": "6147:80:23", + "nodeType": "YulFunctionCall", + "src": "6147:80:23" + }, + "nativeSrc": "6147:80:23", + "nodeType": "YulExpressionStatement", + "src": "6147:80:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "5797:3:23", + "nodeType": "YulIdentifier", + "src": "5797:3:23" + }, + { + "kind": "number", + "nativeSrc": "5802:2:23", + "nodeType": "YulLiteral", + "src": "5802:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5794:2:23", + "nodeType": "YulIdentifier", + "src": "5794:2:23" + }, + "nativeSrc": "5794:11:23", + "nodeType": "YulFunctionCall", + "src": "5794:11:23" + }, + "nativeSrc": "5791:446:23", + "nodeType": "YulIf", + "src": "5791:446:23" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5701:543:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "5756:5:23", + "nodeType": "YulTypedName", + "src": "5756:5:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "5763:3:23", + "nodeType": "YulTypedName", + "src": "5763:3:23", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "5768:10:23", + "nodeType": "YulTypedName", + "src": "5768:10:23", + "type": "" + } + ], + "src": "5701:543:23" + }, + { + "body": { + "nativeSrc": "6313:54:23", + "nodeType": "YulBlock", + "src": "6313:54:23", + "statements": [ + { + "nativeSrc": "6323:37:23", + "nodeType": "YulAssignment", + "src": "6323:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "6348:4:23", + "nodeType": "YulIdentifier", + "src": "6348:4:23" + }, + { + "name": "value", + "nativeSrc": "6354:5:23", + "nodeType": "YulIdentifier", + "src": "6354:5:23" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "6344:3:23", + "nodeType": "YulIdentifier", + "src": "6344:3:23" + }, + "nativeSrc": "6344:16:23", + "nodeType": "YulFunctionCall", + "src": "6344:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "6323:8:23", + "nodeType": "YulIdentifier", + "src": "6323:8:23" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6250:117:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "6288:4:23", + "nodeType": "YulTypedName", + "src": "6288:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "6294:5:23", + "nodeType": "YulTypedName", + "src": "6294:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "6304:8:23", + "nodeType": "YulTypedName", + "src": "6304:8:23", + "type": "" + } + ], + "src": "6250:117:23" + }, + { + "body": { + "nativeSrc": "6424:118:23", + "nodeType": "YulBlock", + "src": "6424:118:23", + "statements": [ + { + "nativeSrc": "6434:68:23", + "nodeType": "YulVariableDeclaration", + "src": "6434:68:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6483:1:23", + "nodeType": "YulLiteral", + "src": "6483:1:23", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6486:5:23", + "nodeType": "YulIdentifier", + "src": "6486:5:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6479:3:23", + "nodeType": "YulIdentifier", + "src": "6479:3:23" + }, + "nativeSrc": "6479:13:23", + "nodeType": "YulFunctionCall", + "src": "6479:13:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6498:1:23", + "nodeType": "YulLiteral", + "src": "6498:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6494:3:23", + "nodeType": "YulIdentifier", + "src": "6494:3:23" + }, + "nativeSrc": "6494:6:23", + "nodeType": "YulFunctionCall", + "src": "6494:6:23" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6450:28:23", + "nodeType": "YulIdentifier", + "src": "6450:28:23" + }, + "nativeSrc": "6450:51:23", + "nodeType": "YulFunctionCall", + "src": "6450:51:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6446:3:23", + "nodeType": "YulIdentifier", + "src": "6446:3:23" + }, + "nativeSrc": "6446:56:23", + "nodeType": "YulFunctionCall", + "src": "6446:56:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "6438:4:23", + "nodeType": "YulTypedName", + "src": "6438:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "6511:25:23", + "nodeType": "YulAssignment", + "src": "6511:25:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6525:4:23", + "nodeType": "YulIdentifier", + "src": "6525:4:23" + }, + { + "name": "mask", + "nativeSrc": "6531:4:23", + "nodeType": "YulIdentifier", + "src": "6531:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6521:3:23", + "nodeType": "YulIdentifier", + "src": "6521:3:23" + }, + "nativeSrc": "6521:15:23", + "nodeType": "YulFunctionCall", + "src": "6521:15:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6511:6:23", + "nodeType": "YulIdentifier", + "src": "6511:6:23" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "6373:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6401:4:23", + "nodeType": "YulTypedName", + "src": "6401:4:23", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "6407:5:23", + "nodeType": "YulTypedName", + "src": "6407:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6417:6:23", + "nodeType": "YulTypedName", + "src": "6417:6:23", + "type": "" + } + ], + "src": "6373:169:23" + }, + { + "body": { + "nativeSrc": "6628:214:23", + "nodeType": "YulBlock", + "src": "6628:214:23", + "statements": [ + { + "nativeSrc": "6761:37:23", + "nodeType": "YulAssignment", + "src": "6761:37:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6788:4:23", + "nodeType": "YulIdentifier", + "src": "6788:4:23" + }, + { + "name": "len", + "nativeSrc": "6794:3:23", + "nodeType": "YulIdentifier", + "src": "6794:3:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "6769:18:23", + "nodeType": "YulIdentifier", + "src": "6769:18:23" + }, + "nativeSrc": "6769:29:23", + "nodeType": "YulFunctionCall", + "src": "6769:29:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "6761:4:23", + "nodeType": "YulIdentifier", + "src": "6761:4:23" + } + ] + }, + { + "nativeSrc": "6807:29:23", + "nodeType": "YulAssignment", + "src": "6807:29:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6818:4:23", + "nodeType": "YulIdentifier", + "src": "6818:4:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6828:1:23", + "nodeType": "YulLiteral", + "src": "6828:1:23", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6831:3:23", + "nodeType": "YulIdentifier", + "src": "6831:3:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6824:3:23", + "nodeType": "YulIdentifier", + "src": "6824:3:23" + }, + "nativeSrc": "6824:11:23", + "nodeType": "YulFunctionCall", + "src": "6824:11:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6815:2:23", + "nodeType": "YulIdentifier", + "src": "6815:2:23" + }, + "nativeSrc": "6815:21:23", + "nodeType": "YulFunctionCall", + "src": "6815:21:23" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "6807:4:23", + "nodeType": "YulIdentifier", + "src": "6807:4:23" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6547:295:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6609:4:23", + "nodeType": "YulTypedName", + "src": "6609:4:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "6615:3:23", + "nodeType": "YulTypedName", + "src": "6615:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "6623:4:23", + "nodeType": "YulTypedName", + "src": "6623:4:23", + "type": "" + } + ], + "src": "6547:295:23" + }, + { + "body": { + "nativeSrc": "6939:1303:23", + "nodeType": "YulBlock", + "src": "6939:1303:23", + "statements": [ + { + "nativeSrc": "6950:51:23", + "nodeType": "YulVariableDeclaration", + "src": "6950:51:23", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6997:3:23", + "nodeType": "YulIdentifier", + "src": "6997:3:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6964:32:23", + "nodeType": "YulIdentifier", + "src": "6964:32:23" + }, + "nativeSrc": "6964:37:23", + "nodeType": "YulFunctionCall", + "src": "6964:37:23" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6954:6:23", + "nodeType": "YulTypedName", + "src": "6954:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7086:22:23", + "nodeType": "YulBlock", + "src": "7086:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7088:16:23", + "nodeType": "YulIdentifier", + "src": "7088:16:23" + }, + "nativeSrc": "7088:18:23", + "nodeType": "YulFunctionCall", + "src": "7088:18:23" + }, + "nativeSrc": "7088:18:23", + "nodeType": "YulExpressionStatement", + "src": "7088:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7058:6:23", + "nodeType": "YulIdentifier", + "src": "7058:6:23" + }, + { + "kind": "number", + "nativeSrc": "7066:18:23", + "nodeType": "YulLiteral", + "src": "7066:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7055:2:23", + "nodeType": "YulIdentifier", + "src": "7055:2:23" + }, + "nativeSrc": "7055:30:23", + "nodeType": "YulFunctionCall", + "src": "7055:30:23" + }, + "nativeSrc": "7052:56:23", + "nodeType": "YulIf", + "src": "7052:56:23" + }, + { + "nativeSrc": "7118:52:23", + "nodeType": "YulVariableDeclaration", + "src": "7118:52:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7164:4:23", + "nodeType": "YulIdentifier", + "src": "7164:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "7158:5:23", + "nodeType": "YulIdentifier", + "src": "7158:5:23" + }, + "nativeSrc": "7158:11:23", + "nodeType": "YulFunctionCall", + "src": "7158:11:23" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7132:25:23", + "nodeType": "YulIdentifier", + "src": "7132:25:23" + }, + "nativeSrc": "7132:38:23", + "nodeType": "YulFunctionCall", + "src": "7132:38:23" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7122:6:23", + "nodeType": "YulTypedName", + "src": "7122:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7263:4:23", + "nodeType": "YulIdentifier", + "src": "7263:4:23" + }, + { + "name": "oldLen", + "nativeSrc": "7269:6:23", + "nodeType": "YulIdentifier", + "src": "7269:6:23" + }, + { + "name": "newLen", + "nativeSrc": "7277:6:23", + "nodeType": "YulIdentifier", + "src": "7277:6:23" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7217:45:23", + "nodeType": "YulIdentifier", + "src": "7217:45:23" + }, + "nativeSrc": "7217:67:23", + "nodeType": "YulFunctionCall", + "src": "7217:67:23" + }, + "nativeSrc": "7217:67:23", + "nodeType": "YulExpressionStatement", + "src": "7217:67:23" + }, + { + "nativeSrc": "7294:18:23", + "nodeType": "YulVariableDeclaration", + "src": "7294:18:23", + "value": { + "kind": "number", + "nativeSrc": "7311:1:23", + "nodeType": "YulLiteral", + "src": "7311:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7298:9:23", + "nodeType": "YulTypedName", + "src": "7298:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "7322:17:23", + "nodeType": "YulAssignment", + "src": "7322:17:23", + "value": { + "kind": "number", + "nativeSrc": "7335:4:23", + "nodeType": "YulLiteral", + "src": "7335:4:23", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7322:9:23", + "nodeType": "YulIdentifier", + "src": "7322:9:23" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7386:611:23", + "nodeType": "YulBlock", + "src": "7386:611:23", + "statements": [ + { + "nativeSrc": "7400:37:23", + "nodeType": "YulVariableDeclaration", + "src": "7400:37:23", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7419:6:23", + "nodeType": "YulIdentifier", + "src": "7419:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7431:4:23", + "nodeType": "YulLiteral", + "src": "7431:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7427:3:23", + "nodeType": "YulIdentifier", + "src": "7427:3:23" + }, + "nativeSrc": "7427:9:23", + "nodeType": "YulFunctionCall", + "src": "7427:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7415:3:23", + "nodeType": "YulIdentifier", + "src": "7415:3:23" + }, + "nativeSrc": "7415:22:23", + "nodeType": "YulFunctionCall", + "src": "7415:22:23" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7404:7:23", + "nodeType": "YulTypedName", + "src": "7404:7:23", + "type": "" + } + ] + }, + { + "nativeSrc": "7451:51:23", + "nodeType": "YulVariableDeclaration", + "src": "7451:51:23", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7497:4:23", + "nodeType": "YulIdentifier", + "src": "7497:4:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7465:31:23", + "nodeType": "YulIdentifier", + "src": "7465:31:23" + }, + "nativeSrc": "7465:37:23", + "nodeType": "YulFunctionCall", + "src": "7465:37:23" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7455:6:23", + "nodeType": "YulTypedName", + "src": "7455:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "7515:10:23", + "nodeType": "YulVariableDeclaration", + "src": "7515:10:23", + "value": { + "kind": "number", + "nativeSrc": "7524:1:23", + "nodeType": "YulLiteral", + "src": "7524:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7519:1:23", + "nodeType": "YulTypedName", + "src": "7519:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7583:163:23", + "nodeType": "YulBlock", + "src": "7583:163:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7608:6:23", + "nodeType": "YulIdentifier", + "src": "7608:6:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7626:3:23", + "nodeType": "YulIdentifier", + "src": "7626:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "7631:9:23", + "nodeType": "YulIdentifier", + "src": "7631:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7622:3:23", + "nodeType": "YulIdentifier", + "src": "7622:3:23" + }, + "nativeSrc": "7622:19:23", + "nodeType": "YulFunctionCall", + "src": "7622:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7616:5:23", + "nodeType": "YulIdentifier", + "src": "7616:5:23" + }, + "nativeSrc": "7616:26:23", + "nodeType": "YulFunctionCall", + "src": "7616:26:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7601:6:23", + "nodeType": "YulIdentifier", + "src": "7601:6:23" + }, + "nativeSrc": "7601:42:23", + "nodeType": "YulFunctionCall", + "src": "7601:42:23" + }, + "nativeSrc": "7601:42:23", + "nodeType": "YulExpressionStatement", + "src": "7601:42:23" + }, + { + "nativeSrc": "7660:24:23", + "nodeType": "YulAssignment", + "src": "7660:24:23", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7674:6:23", + "nodeType": "YulIdentifier", + "src": "7674:6:23" + }, + { + "kind": "number", + "nativeSrc": "7682:1:23", + "nodeType": "YulLiteral", + "src": "7682:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7670:3:23", + "nodeType": "YulIdentifier", + "src": "7670:3:23" + }, + "nativeSrc": "7670:14:23", + "nodeType": "YulFunctionCall", + "src": "7670:14:23" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7660:6:23", + "nodeType": "YulIdentifier", + "src": "7660:6:23" + } + ] + }, + { + "nativeSrc": "7701:31:23", + "nodeType": "YulAssignment", + "src": "7701:31:23", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7718:9:23", + "nodeType": "YulIdentifier", + "src": "7718:9:23" + }, + { + "kind": "number", + "nativeSrc": "7729:2:23", + "nodeType": "YulLiteral", + "src": "7729:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7714:3:23", + "nodeType": "YulIdentifier", + "src": "7714:3:23" + }, + "nativeSrc": "7714:18:23", + "nodeType": "YulFunctionCall", + "src": "7714:18:23" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7701:9:23", + "nodeType": "YulIdentifier", + "src": "7701:9:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7549:1:23", + "nodeType": "YulIdentifier", + "src": "7549:1:23" + }, + { + "name": "loopEnd", + "nativeSrc": "7552:7:23", + "nodeType": "YulIdentifier", + "src": "7552:7:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7546:2:23", + "nodeType": "YulIdentifier", + "src": "7546:2:23" + }, + "nativeSrc": "7546:14:23", + "nodeType": "YulFunctionCall", + "src": "7546:14:23" + }, + "nativeSrc": "7538:208:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7561:21:23", + "nodeType": "YulBlock", + "src": "7561:21:23", + "statements": [ + { + "nativeSrc": "7563:17:23", + "nodeType": "YulAssignment", + "src": "7563:17:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7572:1:23", + "nodeType": "YulIdentifier", + "src": "7572:1:23" + }, + { + "kind": "number", + "nativeSrc": "7575:4:23", + "nodeType": "YulLiteral", + "src": "7575:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7568:3:23", + "nodeType": "YulIdentifier", + "src": "7568:3:23" + }, + "nativeSrc": "7568:12:23", + "nodeType": "YulFunctionCall", + "src": "7568:12:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7563:1:23", + "nodeType": "YulIdentifier", + "src": "7563:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7542:3:23", + "nodeType": "YulBlock", + "src": "7542:3:23", + "statements": [] + }, + "src": "7538:208:23" + }, + { + "body": { + "nativeSrc": "7782:156:23", + "nodeType": "YulBlock", + "src": "7782:156:23", + "statements": [ + { + "nativeSrc": "7800:43:23", + "nodeType": "YulVariableDeclaration", + "src": "7800:43:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7827:3:23", + "nodeType": "YulIdentifier", + "src": "7827:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "7832:9:23", + "nodeType": "YulIdentifier", + "src": "7832:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7823:3:23", + "nodeType": "YulIdentifier", + "src": "7823:3:23" + }, + "nativeSrc": "7823:19:23", + "nodeType": "YulFunctionCall", + "src": "7823:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7817:5:23", + "nodeType": "YulIdentifier", + "src": "7817:5:23" + }, + "nativeSrc": "7817:26:23", + "nodeType": "YulFunctionCall", + "src": "7817:26:23" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7804:9:23", + "nodeType": "YulTypedName", + "src": "7804:9:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7867:6:23", + "nodeType": "YulIdentifier", + "src": "7867:6:23" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7894:9:23", + "nodeType": "YulIdentifier", + "src": "7894:9:23" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7909:6:23", + "nodeType": "YulIdentifier", + "src": "7909:6:23" + }, + { + "kind": "number", + "nativeSrc": "7917:4:23", + "nodeType": "YulLiteral", + "src": "7917:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7905:3:23", + "nodeType": "YulIdentifier", + "src": "7905:3:23" + }, + "nativeSrc": "7905:17:23", + "nodeType": "YulFunctionCall", + "src": "7905:17:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7875:18:23", + "nodeType": "YulIdentifier", + "src": "7875:18:23" + }, + "nativeSrc": "7875:48:23", + "nodeType": "YulFunctionCall", + "src": "7875:48:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7860:6:23", + "nodeType": "YulIdentifier", + "src": "7860:6:23" + }, + "nativeSrc": "7860:64:23", + "nodeType": "YulFunctionCall", + "src": "7860:64:23" + }, + "nativeSrc": "7860:64:23", + "nodeType": "YulExpressionStatement", + "src": "7860:64:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7765:7:23", + "nodeType": "YulIdentifier", + "src": "7765:7:23" + }, + { + "name": "newLen", + "nativeSrc": "7774:6:23", + "nodeType": "YulIdentifier", + "src": "7774:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7762:2:23", + "nodeType": "YulIdentifier", + "src": "7762:2:23" + }, + "nativeSrc": "7762:19:23", + "nodeType": "YulFunctionCall", + "src": "7762:19:23" + }, + "nativeSrc": "7759:179:23", + "nodeType": "YulIf", + "src": "7759:179:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7958:4:23", + "nodeType": "YulIdentifier", + "src": "7958:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7972:6:23", + "nodeType": "YulIdentifier", + "src": "7972:6:23" + }, + { + "kind": "number", + "nativeSrc": "7980:1:23", + "nodeType": "YulLiteral", + "src": "7980:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7968:3:23", + "nodeType": "YulIdentifier", + "src": "7968:3:23" + }, + "nativeSrc": "7968:14:23", + "nodeType": "YulFunctionCall", + "src": "7968:14:23" + }, + { + "kind": "number", + "nativeSrc": "7984:1:23", + "nodeType": "YulLiteral", + "src": "7984:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7964:3:23", + "nodeType": "YulIdentifier", + "src": "7964:3:23" + }, + "nativeSrc": "7964:22:23", + "nodeType": "YulFunctionCall", + "src": "7964:22:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7951:6:23", + "nodeType": "YulIdentifier", + "src": "7951:6:23" + }, + "nativeSrc": "7951:36:23", + "nodeType": "YulFunctionCall", + "src": "7951:36:23" + }, + "nativeSrc": "7951:36:23", + "nodeType": "YulExpressionStatement", + "src": "7951:36:23" + } + ] + }, + "nativeSrc": "7379:618:23", + "nodeType": "YulCase", + "src": "7379:618:23", + "value": { + "kind": "number", + "nativeSrc": "7384:1:23", + "nodeType": "YulLiteral", + "src": "7384:1:23", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "8014:222:23", + "nodeType": "YulBlock", + "src": "8014:222:23", + "statements": [ + { + "nativeSrc": "8028:14:23", + "nodeType": "YulVariableDeclaration", + "src": "8028:14:23", + "value": { + "kind": "number", + "nativeSrc": "8041:1:23", + "nodeType": "YulLiteral", + "src": "8041:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8032:5:23", + "nodeType": "YulTypedName", + "src": "8032:5:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8065:67:23", + "nodeType": "YulBlock", + "src": "8065:67:23", + "statements": [ + { + "nativeSrc": "8083:35:23", + "nodeType": "YulAssignment", + "src": "8083:35:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8102:3:23", + "nodeType": "YulIdentifier", + "src": "8102:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "8107:9:23", + "nodeType": "YulIdentifier", + "src": "8107:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8098:3:23", + "nodeType": "YulIdentifier", + "src": "8098:3:23" + }, + "nativeSrc": "8098:19:23", + "nodeType": "YulFunctionCall", + "src": "8098:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8092:5:23", + "nodeType": "YulIdentifier", + "src": "8092:5:23" + }, + "nativeSrc": "8092:26:23", + "nodeType": "YulFunctionCall", + "src": "8092:26:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8083:5:23", + "nodeType": "YulIdentifier", + "src": "8083:5:23" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8058:6:23", + "nodeType": "YulIdentifier", + "src": "8058:6:23" + }, + "nativeSrc": "8055:77:23", + "nodeType": "YulIf", + "src": "8055:77:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8152:4:23", + "nodeType": "YulIdentifier", + "src": "8152:4:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8211:5:23", + "nodeType": "YulIdentifier", + "src": "8211:5:23" + }, + { + "name": "newLen", + "nativeSrc": "8218:6:23", + "nodeType": "YulIdentifier", + "src": "8218:6:23" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8158:52:23", + "nodeType": "YulIdentifier", + "src": "8158:52:23" + }, + "nativeSrc": "8158:67:23", + "nodeType": "YulFunctionCall", + "src": "8158:67:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8145:6:23", + "nodeType": "YulIdentifier", + "src": "8145:6:23" + }, + "nativeSrc": "8145:81:23", + "nodeType": "YulFunctionCall", + "src": "8145:81:23" + }, + "nativeSrc": "8145:81:23", + "nodeType": "YulExpressionStatement", + "src": "8145:81:23" + } + ] + }, + "nativeSrc": "8006:230:23", + "nodeType": "YulCase", + "src": "8006:230:23", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7359:6:23", + "nodeType": "YulIdentifier", + "src": "7359:6:23" + }, + { + "kind": "number", + "nativeSrc": "7367:2:23", + "nodeType": "YulLiteral", + "src": "7367:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7356:2:23", + "nodeType": "YulIdentifier", + "src": "7356:2:23" + }, + "nativeSrc": "7356:14:23", + "nodeType": "YulFunctionCall", + "src": "7356:14:23" + }, + "nativeSrc": "7349:887:23", + "nodeType": "YulSwitch", + "src": "7349:887:23" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6847:1395:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "6928:4:23", + "nodeType": "YulTypedName", + "src": "6928:4:23", + "type": "" + }, + { + "name": "src", + "nativeSrc": "6934:3:23", + "nodeType": "YulTypedName", + "src": "6934:3:23", + "type": "" + } + ], + "src": "6847:1395:23" + }, + { + "body": { + "nativeSrc": "8293:81:23", + "nodeType": "YulBlock", + "src": "8293:81:23", + "statements": [ + { + "nativeSrc": "8303:65:23", + "nodeType": "YulAssignment", + "src": "8303:65:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8318:5:23", + "nodeType": "YulIdentifier", + "src": "8318:5:23" + }, + { + "kind": "number", + "nativeSrc": "8325:42:23", + "nodeType": "YulLiteral", + "src": "8325:42:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8314:3:23", + "nodeType": "YulIdentifier", + "src": "8314:3:23" + }, + "nativeSrc": "8314:54:23", + "nodeType": "YulFunctionCall", + "src": "8314:54:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8303:7:23", + "nodeType": "YulIdentifier", + "src": "8303:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "8248:126:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8275:5:23", + "nodeType": "YulTypedName", + "src": "8275:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8285:7:23", + "nodeType": "YulTypedName", + "src": "8285:7:23", + "type": "" + } + ], + "src": "8248:126:23" + }, + { + "body": { + "nativeSrc": "8425:51:23", + "nodeType": "YulBlock", + "src": "8425:51:23", + "statements": [ + { + "nativeSrc": "8435:35:23", + "nodeType": "YulAssignment", + "src": "8435:35:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8464:5:23", + "nodeType": "YulIdentifier", + "src": "8464:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "8446:17:23", + "nodeType": "YulIdentifier", + "src": "8446:17:23" + }, + "nativeSrc": "8446:24:23", + "nodeType": "YulFunctionCall", + "src": "8446:24:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8435:7:23", + "nodeType": "YulIdentifier", + "src": "8435:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "8380:96:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8407:5:23", + "nodeType": "YulTypedName", + "src": "8407:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8417:7:23", + "nodeType": "YulTypedName", + "src": "8417:7:23", + "type": "" + } + ], + "src": "8380:96:23" + }, + { + "body": { + "nativeSrc": "8547:53:23", + "nodeType": "YulBlock", + "src": "8547:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8564:3:23", + "nodeType": "YulIdentifier", + "src": "8564:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8587:5:23", + "nodeType": "YulIdentifier", + "src": "8587:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "8569:17:23", + "nodeType": "YulIdentifier", + "src": "8569:17:23" + }, + "nativeSrc": "8569:24:23", + "nodeType": "YulFunctionCall", + "src": "8569:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8557:6:23", + "nodeType": "YulIdentifier", + "src": "8557:6:23" + }, + "nativeSrc": "8557:37:23", + "nodeType": "YulFunctionCall", + "src": "8557:37:23" + }, + "nativeSrc": "8557:37:23", + "nodeType": "YulExpressionStatement", + "src": "8557:37:23" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8482:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8535:5:23", + "nodeType": "YulTypedName", + "src": "8535:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8542:3:23", + "nodeType": "YulTypedName", + "src": "8542:3:23", + "type": "" + } + ], + "src": "8482:118:23" + }, + { + "body": { + "nativeSrc": "8704:124:23", + "nodeType": "YulBlock", + "src": "8704:124:23", + "statements": [ + { + "nativeSrc": "8714:26:23", + "nodeType": "YulAssignment", + "src": "8714:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8726:9:23", + "nodeType": "YulIdentifier", + "src": "8726:9:23" + }, + { + "kind": "number", + "nativeSrc": "8737:2:23", + "nodeType": "YulLiteral", + "src": "8737:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8722:3:23", + "nodeType": "YulIdentifier", + "src": "8722:3:23" + }, + "nativeSrc": "8722:18:23", + "nodeType": "YulFunctionCall", + "src": "8722:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8714:4:23", + "nodeType": "YulIdentifier", + "src": "8714:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8794:6:23", + "nodeType": "YulIdentifier", + "src": "8794:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8807:9:23", + "nodeType": "YulIdentifier", + "src": "8807:9:23" + }, + { + "kind": "number", + "nativeSrc": "8818:1:23", + "nodeType": "YulLiteral", + "src": "8818:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8803:3:23", + "nodeType": "YulIdentifier", + "src": "8803:3:23" + }, + "nativeSrc": "8803:17:23", + "nodeType": "YulFunctionCall", + "src": "8803:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8750:43:23", + "nodeType": "YulIdentifier", + "src": "8750:43:23" + }, + "nativeSrc": "8750:71:23", + "nodeType": "YulFunctionCall", + "src": "8750:71:23" + }, + "nativeSrc": "8750:71:23", + "nodeType": "YulExpressionStatement", + "src": "8750:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "8606:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8676:9:23", + "nodeType": "YulTypedName", + "src": "8676:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8688:6:23", + "nodeType": "YulTypedName", + "src": "8688:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8699:4:23", + "nodeType": "YulTypedName", + "src": "8699:4:23", + "type": "" + } + ], + "src": "8606:222:23" + }, + { + "body": { + "nativeSrc": "8930:73:23", + "nodeType": "YulBlock", + "src": "8930:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8947:3:23", + "nodeType": "YulIdentifier", + "src": "8947:3:23" + }, + { + "name": "length", + "nativeSrc": "8952:6:23", + "nodeType": "YulIdentifier", + "src": "8952:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8940:6:23", + "nodeType": "YulIdentifier", + "src": "8940:6:23" + }, + "nativeSrc": "8940:19:23", + "nodeType": "YulFunctionCall", + "src": "8940:19:23" + }, + "nativeSrc": "8940:19:23", + "nodeType": "YulExpressionStatement", + "src": "8940:19:23" + }, + { + "nativeSrc": "8968:29:23", + "nodeType": "YulAssignment", + "src": "8968:29:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8987:3:23", + "nodeType": "YulIdentifier", + "src": "8987:3:23" + }, + { + "kind": "number", + "nativeSrc": "8992:4:23", + "nodeType": "YulLiteral", + "src": "8992:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8983:3:23", + "nodeType": "YulIdentifier", + "src": "8983:3:23" + }, + "nativeSrc": "8983:14:23", + "nodeType": "YulFunctionCall", + "src": "8983:14:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "8968:11:23", + "nodeType": "YulIdentifier", + "src": "8968:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8834:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8902:3:23", + "nodeType": "YulTypedName", + "src": "8902:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8907:6:23", + "nodeType": "YulTypedName", + "src": "8907:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "8918:11:23", + "nodeType": "YulTypedName", + "src": "8918:11:23", + "type": "" + } + ], + "src": "8834:169:23" + }, + { + "body": { + "nativeSrc": "9115:68:23", + "nodeType": "YulBlock", + "src": "9115:68:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9137:6:23", + "nodeType": "YulIdentifier", + "src": "9137:6:23" + }, + { + "kind": "number", + "nativeSrc": "9145:1:23", + "nodeType": "YulLiteral", + "src": "9145:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9133:3:23", + "nodeType": "YulIdentifier", + "src": "9133:3:23" + }, + "nativeSrc": "9133:14:23", + "nodeType": "YulFunctionCall", + "src": "9133:14:23" + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "9149:26:23", + "nodeType": "YulLiteral", + "src": "9149:26:23", + "type": "", + "value": "SVG data cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9126:6:23", + "nodeType": "YulIdentifier", + "src": "9126:6:23" + }, + "nativeSrc": "9126:50:23", + "nodeType": "YulFunctionCall", + "src": "9126:50:23" + }, + "nativeSrc": "9126:50:23", + "nodeType": "YulExpressionStatement", + "src": "9126:50:23" + } + ] + }, + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "9009:174:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "9107:6:23", + "nodeType": "YulTypedName", + "src": "9107:6:23", + "type": "" + } + ], + "src": "9009:174:23" + }, + { + "body": { + "nativeSrc": "9335:220:23", + "nodeType": "YulBlock", + "src": "9335:220:23", + "statements": [ + { + "nativeSrc": "9345:74:23", + "nodeType": "YulAssignment", + "src": "9345:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9411:3:23", + "nodeType": "YulIdentifier", + "src": "9411:3:23" + }, + { + "kind": "number", + "nativeSrc": "9416:2:23", + "nodeType": "YulLiteral", + "src": "9416:2:23", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9352:58:23", + "nodeType": "YulIdentifier", + "src": "9352:58:23" + }, + "nativeSrc": "9352:67:23", + "nodeType": "YulFunctionCall", + "src": "9352:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9345:3:23", + "nodeType": "YulIdentifier", + "src": "9345:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9517:3:23", + "nodeType": "YulIdentifier", + "src": "9517:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "9428:88:23", + "nodeType": "YulIdentifier", + "src": "9428:88:23" + }, + "nativeSrc": "9428:93:23", + "nodeType": "YulFunctionCall", + "src": "9428:93:23" + }, + "nativeSrc": "9428:93:23", + "nodeType": "YulExpressionStatement", + "src": "9428:93:23" + }, + { + "nativeSrc": "9530:19:23", + "nodeType": "YulAssignment", + "src": "9530:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9541:3:23", + "nodeType": "YulIdentifier", + "src": "9541:3:23" + }, + { + "kind": "number", + "nativeSrc": "9546:2:23", + "nodeType": "YulLiteral", + "src": "9546:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9537:3:23", + "nodeType": "YulIdentifier", + "src": "9537:3:23" + }, + "nativeSrc": "9537:12:23", + "nodeType": "YulFunctionCall", + "src": "9537:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "9530:3:23", + "nodeType": "YulIdentifier", + "src": "9530:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9189:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "9323:3:23", + "nodeType": "YulTypedName", + "src": "9323:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "9331:3:23", + "nodeType": "YulTypedName", + "src": "9331:3:23", + "type": "" + } + ], + "src": "9189:366:23" + }, + { + "body": { + "nativeSrc": "9732:248:23", + "nodeType": "YulBlock", + "src": "9732:248:23", + "statements": [ + { + "nativeSrc": "9742:26:23", + "nodeType": "YulAssignment", + "src": "9742:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9754:9:23", + "nodeType": "YulIdentifier", + "src": "9754:9:23" + }, + { + "kind": "number", + "nativeSrc": "9765:2:23", + "nodeType": "YulLiteral", + "src": "9765:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9750:3:23", + "nodeType": "YulIdentifier", + "src": "9750:3:23" + }, + "nativeSrc": "9750:18:23", + "nodeType": "YulFunctionCall", + "src": "9750:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9742:4:23", + "nodeType": "YulIdentifier", + "src": "9742:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9789:9:23", + "nodeType": "YulIdentifier", + "src": "9789:9:23" + }, + { + "kind": "number", + "nativeSrc": "9800:1:23", + "nodeType": "YulLiteral", + "src": "9800:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9785:3:23", + "nodeType": "YulIdentifier", + "src": "9785:3:23" + }, + "nativeSrc": "9785:17:23", + "nodeType": "YulFunctionCall", + "src": "9785:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9808:4:23", + "nodeType": "YulIdentifier", + "src": "9808:4:23" + }, + { + "name": "headStart", + "nativeSrc": "9814:9:23", + "nodeType": "YulIdentifier", + "src": "9814:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9804:3:23", + "nodeType": "YulIdentifier", + "src": "9804:3:23" + }, + "nativeSrc": "9804:20:23", + "nodeType": "YulFunctionCall", + "src": "9804:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9778:6:23", + "nodeType": "YulIdentifier", + "src": "9778:6:23" + }, + "nativeSrc": "9778:47:23", + "nodeType": "YulFunctionCall", + "src": "9778:47:23" + }, + "nativeSrc": "9778:47:23", + "nodeType": "YulExpressionStatement", + "src": "9778:47:23" + }, + { + "nativeSrc": "9834:139:23", + "nodeType": "YulAssignment", + "src": "9834:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9968:4:23", + "nodeType": "YulIdentifier", + "src": "9968:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9842:124:23", + "nodeType": "YulIdentifier", + "src": "9842:124:23" + }, + "nativeSrc": "9842:131:23", + "nodeType": "YulFunctionCall", + "src": "9842:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9834:4:23", + "nodeType": "YulIdentifier", + "src": "9834:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9561:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9712:9:23", + "nodeType": "YulTypedName", + "src": "9712:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9727:4:23", + "nodeType": "YulTypedName", + "src": "9727:4:23", + "type": "" + } + ], + "src": "9561:419:23" + }, + { + "body": { + "nativeSrc": "10092:62:23", + "nodeType": "YulBlock", + "src": "10092:62:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10114:6:23", + "nodeType": "YulIdentifier", + "src": "10114:6:23" + }, + { + "kind": "number", + "nativeSrc": "10122:1:23", + "nodeType": "YulLiteral", + "src": "10122:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10110:3:23", + "nodeType": "YulIdentifier", + "src": "10110:3:23" + }, + "nativeSrc": "10110:14:23", + "nodeType": "YulFunctionCall", + "src": "10110:14:23" + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "kind": "string", + "nativeSrc": "10126:20:23", + "nodeType": "YulLiteral", + "src": "10126:20:23", + "type": "", + "value": "SVG data too large" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10103:6:23", + "nodeType": "YulIdentifier", + "src": "10103:6:23" + }, + "nativeSrc": "10103:44:23", + "nodeType": "YulFunctionCall", + "src": "10103:44:23" + }, + "nativeSrc": "10103:44:23", + "nodeType": "YulExpressionStatement", + "src": "10103:44:23" + } + ] + }, + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "9986:168:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "10084:6:23", + "nodeType": "YulTypedName", + "src": "10084:6:23", + "type": "" + } + ], + "src": "9986:168:23" + }, + { + "body": { + "nativeSrc": "10306:220:23", + "nodeType": "YulBlock", + "src": "10306:220:23", + "statements": [ + { + "nativeSrc": "10316:74:23", + "nodeType": "YulAssignment", + "src": "10316:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10382:3:23", + "nodeType": "YulIdentifier", + "src": "10382:3:23" + }, + { + "kind": "number", + "nativeSrc": "10387:2:23", + "nodeType": "YulLiteral", + "src": "10387:2:23", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "10323:58:23", + "nodeType": "YulIdentifier", + "src": "10323:58:23" + }, + "nativeSrc": "10323:67:23", + "nodeType": "YulFunctionCall", + "src": "10323:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10316:3:23", + "nodeType": "YulIdentifier", + "src": "10316:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10488:3:23", + "nodeType": "YulIdentifier", + "src": "10488:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "10399:88:23", + "nodeType": "YulIdentifier", + "src": "10399:88:23" + }, + "nativeSrc": "10399:93:23", + "nodeType": "YulFunctionCall", + "src": "10399:93:23" + }, + "nativeSrc": "10399:93:23", + "nodeType": "YulExpressionStatement", + "src": "10399:93:23" + }, + { + "nativeSrc": "10501:19:23", + "nodeType": "YulAssignment", + "src": "10501:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10512:3:23", + "nodeType": "YulIdentifier", + "src": "10512:3:23" + }, + { + "kind": "number", + "nativeSrc": "10517:2:23", + "nodeType": "YulLiteral", + "src": "10517:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10508:3:23", + "nodeType": "YulIdentifier", + "src": "10508:3:23" + }, + "nativeSrc": "10508:12:23", + "nodeType": "YulFunctionCall", + "src": "10508:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "10501:3:23", + "nodeType": "YulIdentifier", + "src": "10501:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10160:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "10294:3:23", + "nodeType": "YulTypedName", + "src": "10294:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "10302:3:23", + "nodeType": "YulTypedName", + "src": "10302:3:23", + "type": "" + } + ], + "src": "10160:366:23" + }, + { + "body": { + "nativeSrc": "10703:248:23", + "nodeType": "YulBlock", + "src": "10703:248:23", + "statements": [ + { + "nativeSrc": "10713:26:23", + "nodeType": "YulAssignment", + "src": "10713:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10725:9:23", + "nodeType": "YulIdentifier", + "src": "10725:9:23" + }, + { + "kind": "number", + "nativeSrc": "10736:2:23", + "nodeType": "YulLiteral", + "src": "10736:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10721:3:23", + "nodeType": "YulIdentifier", + "src": "10721:3:23" + }, + "nativeSrc": "10721:18:23", + "nodeType": "YulFunctionCall", + "src": "10721:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10713:4:23", + "nodeType": "YulIdentifier", + "src": "10713:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10760:9:23", + "nodeType": "YulIdentifier", + "src": "10760:9:23" + }, + { + "kind": "number", + "nativeSrc": "10771:1:23", + "nodeType": "YulLiteral", + "src": "10771:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10756:3:23", + "nodeType": "YulIdentifier", + "src": "10756:3:23" + }, + "nativeSrc": "10756:17:23", + "nodeType": "YulFunctionCall", + "src": "10756:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10779:4:23", + "nodeType": "YulIdentifier", + "src": "10779:4:23" + }, + { + "name": "headStart", + "nativeSrc": "10785:9:23", + "nodeType": "YulIdentifier", + "src": "10785:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10775:3:23", + "nodeType": "YulIdentifier", + "src": "10775:3:23" + }, + "nativeSrc": "10775:20:23", + "nodeType": "YulFunctionCall", + "src": "10775:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10749:6:23", + "nodeType": "YulIdentifier", + "src": "10749:6:23" + }, + "nativeSrc": "10749:47:23", + "nodeType": "YulFunctionCall", + "src": "10749:47:23" + }, + "nativeSrc": "10749:47:23", + "nodeType": "YulExpressionStatement", + "src": "10749:47:23" + }, + { + "nativeSrc": "10805:139:23", + "nodeType": "YulAssignment", + "src": "10805:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10939:4:23", + "nodeType": "YulIdentifier", + "src": "10939:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10813:124:23", + "nodeType": "YulIdentifier", + "src": "10813:124:23" + }, + "nativeSrc": "10813:131:23", + "nodeType": "YulFunctionCall", + "src": "10813:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10805:4:23", + "nodeType": "YulIdentifier", + "src": "10805:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10532:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10683:9:23", + "nodeType": "YulTypedName", + "src": "10683:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10698:4:23", + "nodeType": "YulTypedName", + "src": "10698:4:23", + "type": "" + } + ], + "src": "10532:419:23" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n 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 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_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__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_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data too large\")\n\n }\n\n function abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__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_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 23, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "6080604052655af3107a40006009553480156200001b57600080fd5b5060405162003c6938038062003c6983398181016040528101906200004191906200045d565b336040518060400160405280600a81526020017f466c7566667946757279000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f46465900000000000000000000000000000000000000000000000000000000008152508160009081620000bf9190620006f9565b508060019081620000d19190620006f9565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001495760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000140919062000825565b60405180910390fd5b6200015a816200020460201b60201c565b506000815111620001a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019990620008a3565b60405180910390fd5b61138881511115620001eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e29062000915565b60405180910390fd5b80600a9081620001fc9190620006f9565b505062000937565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200033382620002e8565b810181811067ffffffffffffffff82111715620003555762000354620002f9565b5b80604052505050565b60006200036a620002ca565b905062000378828262000328565b919050565b600067ffffffffffffffff8211156200039b576200039a620002f9565b5b620003a682620002e8565b9050602081019050919050565b60005b83811015620003d3578082015181840152602081019050620003b6565b60008484015250505050565b6000620003f6620003f0846200037d565b6200035e565b905082815260208101848484011115620004155762000414620002e3565b5b62000422848285620003b3565b509392505050565b600082601f830112620004425762000441620002de565b5b815162000454848260208601620003df565b91505092915050565b600060208284031215620004765762000475620002d4565b5b600082015167ffffffffffffffff811115620004975762000496620002d9565b5b620004a5848285016200042a565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200050157607f821691505b602082108103620005175762000516620004b9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000542565b6200058d868362000542565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005da620005d4620005ce84620005a5565b620005af565b620005a5565b9050919050565b6000819050919050565b620005f683620005b9565b6200060e6200060582620005e1565b8484546200054f565b825550505050565b600090565b6200062562000616565b62000632818484620005eb565b505050565b5b818110156200065a576200064e6000826200061b565b60018101905062000638565b5050565b601f821115620006a95762000673816200051d565b6200067e8462000532565b810160208510156200068e578190505b620006a66200069d8562000532565b83018262000637565b50505b505050565b600082821c905092915050565b6000620006ce60001984600802620006ae565b1980831691505092915050565b6000620006e98383620006bb565b9150826002028217905092915050565b6200070482620004ae565b67ffffffffffffffff81111562000720576200071f620002f9565b5b6200072c8254620004e8565b620007398282856200065e565b600060209050601f8311600181146200077157600084156200075c578287015190505b620007688582620006db565b865550620007d8565b601f19841662000781866200051d565b60005b82811015620007ab5784890151825560018201915060208501945060208101905062000784565b86831015620007cb5784890151620007c7601f891682620006bb565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080d82620007e0565b9050919050565b6200081f8162000800565b82525050565b60006020820190506200083c600083018462000814565b92915050565b600082825260208201905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b60006200088b60188362000842565b9150620008988262000853565b602082019050919050565b60006020820190508181036000830152620008be816200087c565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000620008fd60128362000842565b91506200090a82620008c5565b602082019050919050565b600060208201905081810360008301526200093081620008ee565b9050919050565b61332280620009476000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab578063a31e06da1161006f578063a31e06da146103b6578063a52db60d146103e1578063b88d4fde1461040a578063c87b56dd14610433578063e985e9c514610470578063f2fde38b146104ad57610135565b806370a08231146102e3578063715018a6146103205780638da5cb5b1461033757806395d89b4114610362578063a22cb4651461038d57610135565b806323b872dd116100f257806323b872dd1461021257806324600fc31461023b57806342842e0e146102525780636352211e1461027b5780636817c76c146102b857610135565b806301ffc9a71461013a57806306fdde0314610177578063081812fc146101a2578063095ea7b3146101df5780631249c58b1461020857610135565b3661013557005b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061220d565b6104d6565b60405161016e9190612255565b60405180910390f35b34801561018357600080fd5b5061018c610537565b6040516101999190612300565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c49190612358565b6105c9565b6040516101d691906123c6565b60405180910390f35b3480156101eb57600080fd5b506102066004803603810190610201919061240d565b6105e5565b005b6102106105fb565b005b34801561021e57600080fd5b506102396004803603810190610234919061244d565b610752565b005b34801561024757600080fd5b50610250610854565b005b34801561025e57600080fd5b506102796004803603810190610274919061244d565b61095b565b005b34801561028757600080fd5b506102a2600480360381019061029d9190612358565b61097b565b6040516102af91906123c6565b60405180910390f35b3480156102c457600080fd5b506102cd61098d565b6040516102da91906124af565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906124ca565b610993565b60405161031791906124af565b60405180910390f35b34801561032c57600080fd5b50610335610a4d565b005b34801561034357600080fd5b5061034c610a61565b60405161035991906123c6565b60405180910390f35b34801561036e57600080fd5b50610377610a8b565b6040516103849190612300565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af9190612523565b610b1d565b005b3480156103c257600080fd5b506103cb610b33565b6040516103d89190612300565b60405180910390f35b3480156103ed57600080fd5b5061040860048036038101906104039190612698565b610bc1565b005b34801561041657600080fd5b50610431600480360381019061042c9190612782565b610c66565b005b34801561043f57600080fd5b5061045a60048036038101906104559190612358565b610c83565b6040516104679190612300565b60405180910390f35b34801561047c57600080fd5b5061049760048036038101906104929190612805565b610d96565b6040516104a49190612255565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf91906124ca565b610e2a565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610530575061052f82610ead565b5b9050919050565b60606000805461054690612874565b80601f016020809104026020016040519081016040528092919081815260200182805461057290612874565b80156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b5050505050905090565b60006105d482610f8f565b506105de82611017565b9050919050565b6105f782826105f2611054565b61105c565b5050565b600954341461063f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610636906128f1565b60405180910390fd5b60006106d4600a805461065190612874565b80601f016020809104026020016040519081016040528092919081815260200182805461067d90612874565b80156106ca5780601f1061069f576101008083540402835291602001916106ca565b820191906000526020600020905b8154815290600101906020018083116106ad57829003601f168201915b505050505061106e565b905060006106e1826110e2565b9050600860008154809291906106f690612940565b91905055506000600854905061070c3382611132565b6107168183611150565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a8160405161074591906124af565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c45760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016107bb91906123c6565b60405180910390fd5b60006107d883836107d3611054565b6111ac565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461084e578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161084593929190612988565b60405180910390fd5b50505050565b61085c6113c6565b6000479050600081116108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90612a0b565b60405180910390fd5b60006108ae610a61565b73ffffffffffffffffffffffffffffffffffffffff16826040516108d190612a5c565b60006040518083038185875af1925050503d806000811461090e576040519150601f19603f3d011682016040523d82523d6000602084013e610913565b606091505b5050905080610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612abd565b60405180910390fd5b5050565b61097683838360405180602001604052806000815250610c66565b505050565b600061098682610f8f565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a065760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016109fd91906123c6565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a556113c6565b610a5f600061144d565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a9a90612874565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac690612874565b8015610b135780601f10610ae857610100808354040283529160200191610b13565b820191906000526020600020905b815481529060010190602001808311610af657829003601f168201915b5050505050905090565b610b2f610b28611054565b8383611513565b5050565b600a8054610b4090612874565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6c90612874565b8015610bb95780601f10610b8e57610100808354040283529160200191610bb9565b820191906000526020600020905b815481529060010190602001808311610b9c57829003601f168201915b505050505081565b610bc96113c6565b6000815111610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490612b29565b60405180910390fd5b61138881511115610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a90612b95565b60405180910390fd5b80600a9081610c629190612d61565b5050565b610c71848484610752565b610c7d84848484611682565b50505050565b6060610c8e82610f8f565b506000600660008481526020019081526020016000208054610caf90612874565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdb90612874565b8015610d285780601f10610cfd57610100808354040283529160200191610d28565b820191906000526020600020905b815481529060010190602001808311610d0b57829003601f168201915b505050505090506000610d39611839565b90506000815103610d4e578192505050610d91565b600082511115610d83578082604051602001610d6b929190612e6f565b60405160208183030381529060405292505050610d91565b610d8c84611850565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e326113c6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890612f05565b60405180910390fd5b610eaa8161144d565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f7857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610f885750610f87826118b9565b5b9050919050565b600080610f9b83611923565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361100e57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161100591906124af565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6110698383836001611960565b505050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000815250905060006110b584611b25565b905081816040516020016110ca929190612e6f565b60405160208183030381529060405292505050919050565b606061110c826040516020016110f8919061302f565b604051602081830303815290604052611b25565b60405160200161111c91906130a8565b6040516020818303038152906040529050919050565b61114c828260405180602001604052806000815250611b52565b5050565b806006600084815260200190815260200160002090816111709190612d61565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111a091906124af565b60405180910390a15050565b6000806111b884611923565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111fa576111f9818486611b6e565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461128b5761123c600085600080611960565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461130e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6113ce611054565b73ffffffffffffffffffffffffffffffffffffffff166113ec610a61565b73ffffffffffffffffffffffffffffffffffffffff161461144b5761140f611054565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161144291906123c6565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158457816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161157b91906123c6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116759190612255565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611833578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026116c6611054565b8685856040518563ffffffff1660e01b81526004016116e8949392919061311f565b6020604051808303816000875af192505050801561172457506040513d601f19601f820116820180604052508101906117219190613180565b60015b6117a8573d8060008114611754576040519150601f19603f3d011682016040523d82523d6000602084013e611759565b606091505b5060008151036117a057836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161179791906123c6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461183157836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161182891906123c6565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b606061185b82610f8f565b506000611866611839565b9050600081511161188657604051806020016040528060008152506118b1565b8061189084611c32565b6040516020016118a1929190612e6f565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806119995750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611acd5760006119a984610f8f565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1457508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611a275750611a258184610d96565b155b15611a6957826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611a6091906123c6565b60405180910390fd5b8115611acb57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6060611b4b826040518060600160405280604081526020016132ad604091396001611d00565b9050919050565b611b5c8383611e94565b611b696000848484611682565b505050565b611b79838383611f8d565b611c2d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bee57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611be591906124af565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611c249291906131ad565b60405180910390fd5b505050565b606060006001611c418461204e565b01905060008167ffffffffffffffff811115611c6057611c5f61256d565b5b6040519080825280601f01601f191660200182016040528015611c925781602001600182028036833780820191505090505b509050600082602001820190505b600115611cf5578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611ce957611ce86131d6565b5b04945060008503611ca0575b819350505050919050565b60606000845103611d2257604051806020016040528060008152509050611e8d565b600082611d54576003600286516004611d3b9190613205565b611d459190613247565b611d4f919061327b565b611d7b565b600360028651611d649190613247565b611d6e919061327b565b6004611d7a9190613205565b5b905060008167ffffffffffffffff811115611d9957611d9861256d565b5b6040519080825280601f01601f191660200182016040528015611dcb5781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b82841015611e41576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611de6565b8082528915611e815760038c510660018114611e645760028114611e7757611e7f565b603d6001870353603d6002870353611e7f565b603d60018703535b505b50505050505080925050505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f065760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611efd91906123c6565b60405180910390fd5b6000611f14838360006111ac565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f885760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611f7f91906123c6565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561204557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061200657506120058484610d96565b5b8061204457508273ffffffffffffffffffffffffffffffffffffffff1661202c83611017565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120ac577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816120a2576120a16131d6565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106120e9576d04ee2d6d415b85acef810000000083816120df576120de6131d6565b5b0492506020810190505b662386f26fc10000831061211857662386f26fc10000838161210e5761210d6131d6565b5b0492506010810190505b6305f5e1008310612141576305f5e1008381612137576121366131d6565b5b0492506008810190505b612710831061216657612710838161215c5761215b6131d6565b5b0492506004810190505b60648310612189576064838161217f5761217e6131d6565b5b0492506002810190505b600a8310612198576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6121ea816121b5565b81146121f557600080fd5b50565b600081359050612207816121e1565b92915050565b600060208284031215612223576122226121ab565b5b6000612231848285016121f8565b91505092915050565b60008115159050919050565b61224f8161223a565b82525050565b600060208201905061226a6000830184612246565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122aa57808201518184015260208101905061228f565b60008484015250505050565b6000601f19601f8301169050919050565b60006122d282612270565b6122dc818561227b565b93506122ec81856020860161228c565b6122f5816122b6565b840191505092915050565b6000602082019050818103600083015261231a81846122c7565b905092915050565b6000819050919050565b61233581612322565b811461234057600080fd5b50565b6000813590506123528161232c565b92915050565b60006020828403121561236e5761236d6121ab565b5b600061237c84828501612343565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123b082612385565b9050919050565b6123c0816123a5565b82525050565b60006020820190506123db60008301846123b7565b92915050565b6123ea816123a5565b81146123f557600080fd5b50565b600081359050612407816123e1565b92915050565b60008060408385031215612424576124236121ab565b5b6000612432858286016123f8565b925050602061244385828601612343565b9150509250929050565b600080600060608486031215612466576124656121ab565b5b6000612474868287016123f8565b9350506020612485868287016123f8565b925050604061249686828701612343565b9150509250925092565b6124a981612322565b82525050565b60006020820190506124c460008301846124a0565b92915050565b6000602082840312156124e0576124df6121ab565b5b60006124ee848285016123f8565b91505092915050565b6125008161223a565b811461250b57600080fd5b50565b60008135905061251d816124f7565b92915050565b6000806040838503121561253a576125396121ab565b5b6000612548858286016123f8565b92505060206125598582860161250e565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125a5826122b6565b810181811067ffffffffffffffff821117156125c4576125c361256d565b5b80604052505050565b60006125d76121a1565b90506125e3828261259c565b919050565b600067ffffffffffffffff8211156126035761260261256d565b5b61260c826122b6565b9050602081019050919050565b82818337600083830152505050565b600061263b612636846125e8565b6125cd565b90508281526020810184848401111561265757612656612568565b5b612662848285612619565b509392505050565b600082601f83011261267f5761267e612563565b5b813561268f848260208601612628565b91505092915050565b6000602082840312156126ae576126ad6121ab565b5b600082013567ffffffffffffffff8111156126cc576126cb6121b0565b5b6126d88482850161266a565b91505092915050565b600067ffffffffffffffff8211156126fc576126fb61256d565b5b612705826122b6565b9050602081019050919050565b6000612725612720846126e1565b6125cd565b90508281526020810184848401111561274157612740612568565b5b61274c848285612619565b509392505050565b600082601f83011261276957612768612563565b5b8135612779848260208601612712565b91505092915050565b6000806000806080858703121561279c5761279b6121ab565b5b60006127aa878288016123f8565b94505060206127bb878288016123f8565b93505060406127cc87828801612343565b925050606085013567ffffffffffffffff8111156127ed576127ec6121b0565b5b6127f987828801612754565b91505092959194509250565b6000806040838503121561281c5761281b6121ab565b5b600061282a858286016123f8565b925050602061283b858286016123f8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061288c57607f821691505b60208210810361289f5761289e612845565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b60006128db601d8361227b565b91506128e6826128a5565b602082019050919050565b6000602082019050818103600083015261290a816128ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061294b82612322565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297d5761297c612911565b5b600182019050919050565b600060608201905061299d60008301866123b7565b6129aa60208301856124a0565b6129b760408301846123b7565b949350505050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b60006129f560128361227b565b9150612a00826129bf565b602082019050919050565b60006020820190508181036000830152612a24816129e8565b9050919050565b600081905092915050565b50565b6000612a46600083612a2b565b9150612a5182612a36565b600082019050919050565b6000612a6782612a39565b9150819050919050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612aa760118361227b565b9150612ab282612a71565b602082019050919050565b60006020820190508181036000830152612ad681612a9a565b9050919050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b6000612b1360188361227b565b9150612b1e82612add565b602082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000612b7f60128361227b565b9150612b8a82612b49565b602082019050919050565b60006020820190508181036000830152612bae81612b72565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612bda565b612c218683612bda565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c5e612c59612c5484612322565b612c39565b612322565b9050919050565b6000819050919050565b612c7883612c43565b612c8c612c8482612c65565b848454612be7565b825550505050565b600090565b612ca1612c94565b612cac818484612c6f565b505050565b5b81811015612cd057612cc5600082612c99565b600181019050612cb2565b5050565b601f821115612d1557612ce681612bb5565b612cef84612bca565b81016020851015612cfe578190505b612d12612d0a85612bca565b830182612cb1565b50505b505050565b600082821c905092915050565b6000612d3860001984600802612d1a565b1980831691505092915050565b6000612d518383612d27565b9150826002028217905092915050565b612d6a82612270565b67ffffffffffffffff811115612d8357612d8261256d565b5b612d8d8254612874565b612d98828285612cd4565b600060209050601f831160018114612dcb5760008415612db9578287015190505b612dc38582612d45565b865550612e2b565b601f198416612dd986612bb5565b60005b82811015612e0157848901518255600182019150602085019450602081019050612ddc565b86831015612e1e5784890151612e1a601f891682612d27565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000612e4982612270565b612e538185612e33565b9350612e6381856020860161228c565b80840191505092915050565b6000612e7b8285612e3e565b9150612e878284612e3e565b91508190509392505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612eef60248361227b565b9150612efa82612e93565b604082019050919050565b60006020820190508181036000830152612f1e81612ee2565b9050919050565b7f7b226e616d65223a2022466c756666792046757279222c20226465736372697060008201527f74696f6e223a2022596f75722061636365737320696e746f20616e792065766560208201527f6e742063726561746564207573696e67207468697320746f6b656e206164647260408201527f657373222c2022696d616765223a220000000000000000000000000000000000606082015250565b6000612fcd606f83612e33565b9150612fd882612f25565b606f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000613019600283612e33565b915061302482612fe3565b600282019050919050565b600061303a82612fc0565b91506130468284612e3e565b91506130518261300c565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000613092601d83612e33565b915061309d8261305c565b601d82019050919050565b60006130b382613085565b91506130bf8284612e3e565b915081905092915050565b600081519050919050565b600082825260208201905092915050565b60006130f1826130ca565b6130fb81856130d5565b935061310b81856020860161228c565b613114816122b6565b840191505092915050565b600060808201905061313460008301876123b7565b61314160208301866123b7565b61314e60408301856124a0565b818103606083015261316081846130e6565b905095945050505050565b60008151905061317a816121e1565b92915050565b600060208284031215613196576131956121ab565b5b60006131a48482850161316b565b91505092915050565b60006040820190506131c260008301856123b7565b6131cf60208301846124a0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061321082612322565b915061321b83612322565b925082820261322981612322565b915082820484148315176132405761323f612911565b5b5092915050565b600061325282612322565b915061325d83612322565b925082820190508082111561327557613274612911565b5b92915050565b600061328682612322565b915061329183612322565b9250826132a1576132a06131d6565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220a96caf5fff622fcbf040485665c2f66fb3edd07bb5c32351ca7bf3b33c7a350b64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH6 0x5AF3107A4000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3C69 CODESIZE SUB DUP1 PUSH3 0x3C69 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x41 SWAP2 SWAP1 PUSH3 0x45D JUMP JUMPDEST CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x466C756666794675727900000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4646590000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0xBF SWAP2 SWAP1 PUSH3 0x6F9 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x6F9 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x149 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x140 SWAP2 SWAP1 PUSH3 0x825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x15A DUP2 PUSH3 0x204 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD GT PUSH3 0x1A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x199 SWAP1 PUSH3 0x8A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1388 DUP2 MLOAD GT ISZERO PUSH3 0x1EB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1E2 SWAP1 PUSH3 0x915 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH3 0x1FC SWAP2 SWAP1 PUSH3 0x6F9 JUMP JUMPDEST POP POP PUSH3 0x937 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP 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 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 PUSH3 0x333 DUP3 PUSH3 0x2E8 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x355 JUMPI PUSH3 0x354 PUSH3 0x2F9 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x36A PUSH3 0x2CA JUMP JUMPDEST SWAP1 POP PUSH3 0x378 DUP3 DUP3 PUSH3 0x328 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x39B JUMPI PUSH3 0x39A PUSH3 0x2F9 JUMP JUMPDEST JUMPDEST PUSH3 0x3A6 DUP3 PUSH3 0x2E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3D3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3B6 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3F6 PUSH3 0x3F0 DUP5 PUSH3 0x37D JUMP JUMPDEST PUSH3 0x35E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x415 JUMPI PUSH3 0x414 PUSH3 0x2E3 JUMP JUMPDEST JUMPDEST PUSH3 0x422 DUP5 DUP3 DUP6 PUSH3 0x3B3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x442 JUMPI PUSH3 0x441 PUSH3 0x2DE JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x454 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x3DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x476 JUMPI PUSH3 0x475 PUSH3 0x2D4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x497 JUMPI PUSH3 0x496 PUSH3 0x2D9 JUMP JUMPDEST JUMPDEST PUSH3 0x4A5 DUP5 DUP3 DUP6 ADD PUSH3 0x42A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x501 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x517 JUMPI PUSH3 0x516 PUSH3 0x4B9 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x581 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x542 JUMP JUMPDEST PUSH3 0x58D DUP7 DUP4 PUSH3 0x542 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5DA PUSH3 0x5D4 PUSH3 0x5CE DUP5 PUSH3 0x5A5 JUMP JUMPDEST PUSH3 0x5AF JUMP JUMPDEST PUSH3 0x5A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x5F6 DUP4 PUSH3 0x5B9 JUMP JUMPDEST PUSH3 0x60E PUSH3 0x605 DUP3 PUSH3 0x5E1 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x54F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x625 PUSH3 0x616 JUMP JUMPDEST PUSH3 0x632 DUP2 DUP5 DUP5 PUSH3 0x5EB JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x65A JUMPI PUSH3 0x64E PUSH1 0x0 DUP3 PUSH3 0x61B JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x638 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x6A9 JUMPI PUSH3 0x673 DUP2 PUSH3 0x51D JUMP JUMPDEST PUSH3 0x67E DUP5 PUSH3 0x532 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x68E JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x6A6 PUSH3 0x69D DUP6 PUSH3 0x532 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x637 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6CE PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x6AE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6E9 DUP4 DUP4 PUSH3 0x6BB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x704 DUP3 PUSH3 0x4AE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x720 JUMPI PUSH3 0x71F PUSH3 0x2F9 JUMP JUMPDEST JUMPDEST PUSH3 0x72C DUP3 SLOAD PUSH3 0x4E8 JUMP JUMPDEST PUSH3 0x739 DUP3 DUP3 DUP6 PUSH3 0x65E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x771 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x75C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x768 DUP6 DUP3 PUSH3 0x6DB JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x7D8 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x781 DUP7 PUSH3 0x51D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x7AB JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x784 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x7CB JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x7C7 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x6BB JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x80D DUP3 PUSH3 0x7E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x81F DUP2 PUSH3 0x800 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x83C PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x814 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 0x53564720646174612063616E6E6F7420626520656D7074790000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x88B PUSH1 0x18 DUP4 PUSH3 0x842 JUMP JUMPDEST SWAP2 POP PUSH3 0x898 DUP3 PUSH3 0x853 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 PUSH3 0x8BE DUP2 PUSH3 0x87C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x535647206461746120746F6F206C617267650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8FD PUSH1 0x12 DUP4 PUSH3 0x842 JUMP JUMPDEST SWAP2 POP PUSH3 0x90A DUP3 PUSH3 0x8C5 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 PUSH3 0x930 DUP2 PUSH3 0x8EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3322 DUP1 PUSH3 0x947 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xA31E06DA GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xA31E06DA EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xA52DB60D EQ PUSH2 0x3E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x40A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x470 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4AD JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x38D JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x2B8 JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x1249C58B EQ PUSH2 0x208 JUMPI PUSH2 0x135 JUMP JUMPDEST CALLDATASIZE PUSH2 0x135 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x220D JUMP JUMPDEST PUSH2 0x4D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18C PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x199 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C4 SWAP2 SWAP1 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x201 SWAP2 SWAP1 PUSH2 0x240D JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x210 PUSH2 0x5FB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x244D JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x247 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x854 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x279 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x274 SWAP2 SWAP1 PUSH2 0x244D JUMP JUMPDEST PUSH2 0x95B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AF SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x98D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x24CA JUMP JUMPDEST PUSH2 0x993 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH2 0xA4D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34C PUSH2 0xA61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x359 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x377 PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3AF SWAP2 SWAP1 PUSH2 0x2523 JUMP JUMPDEST PUSH2 0xB1D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CB PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D8 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x2698 JUMP JUMPDEST PUSH2 0xBC1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x2782 JUMP JUMPDEST PUSH2 0xC66 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x455 SWAP2 SWAP1 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x467 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x497 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x492 SWAP2 SWAP1 PUSH2 0x2805 JUMP JUMPDEST PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A4 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4CF SWAP2 SWAP1 PUSH2 0x24CA JUMP JUMPDEST PUSH2 0xE2A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x530 JUMPI POP PUSH2 0x52F DUP3 PUSH2 0xEAD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x546 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x572 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5BF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x594 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5BF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5A2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D4 DUP3 PUSH2 0xF8F JUMP JUMPDEST POP PUSH2 0x5DE DUP3 PUSH2 0x1017 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5F7 DUP3 DUP3 PUSH2 0x5F2 PUSH2 0x1054 JUMP JUMPDEST PUSH2 0x105C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD CALLVALUE EQ PUSH2 0x63F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x636 SWAP1 PUSH2 0x28F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6D4 PUSH1 0xA DUP1 SLOAD PUSH2 0x651 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67D SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6CA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x69F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6CA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6AD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x106E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x6E1 DUP3 PUSH2 0x10E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x6F6 SWAP1 PUSH2 0x2940 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH2 0x70C CALLER DUP3 PUSH2 0x1132 JUMP JUMPDEST PUSH2 0x716 DUP2 DUP4 PUSH2 0x1150 JUMP JUMPDEST PUSH32 0x176B02BB2D12439FF7A20B59F402CCA16C76F50508B13EF3166A600EB719354A DUP2 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7BB SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7D8 DUP4 DUP4 PUSH2 0x7D3 PUSH2 0x1054 JUMP JUMPDEST PUSH2 0x11AC JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x84E JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x845 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x85C PUSH2 0x13C6 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x8A4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89B SWAP1 PUSH2 0x2A0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8AE PUSH2 0xA61 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x8D1 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x90E 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 0x913 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x957 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94E SWAP1 PUSH2 0x2ABD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x976 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC66 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x986 DUP3 PUSH2 0xF8F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA06 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FD SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xA55 PUSH2 0x13C6 JUMP JUMPDEST PUSH2 0xA5F PUSH1 0x0 PUSH2 0x144D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xA9A SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAC6 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB13 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAE8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB13 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAF6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB2F PUSH2 0xB28 PUSH2 0x1054 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1513 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xB40 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB6C SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBB9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB8E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBB9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB9C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xBC9 PUSH2 0x13C6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xC0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC04 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1388 DUP2 MLOAD GT ISZERO PUSH2 0xC53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4A SWAP1 PUSH2 0x2B95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH2 0xC62 SWAP2 SWAP1 PUSH2 0x2D61 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC71 DUP5 DUP5 DUP5 PUSH2 0x752 JUMP JUMPDEST PUSH2 0xC7D DUP5 DUP5 DUP5 DUP5 PUSH2 0x1682 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC8E DUP3 PUSH2 0xF8F JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xCAF SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCDB SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD28 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCFD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD28 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD0B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0xD39 PUSH2 0x1839 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xD4E JUMPI DUP2 SWAP3 POP POP POP PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0xD83 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD6B SWAP3 SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP PUSH2 0xD91 JUMP JUMPDEST PUSH2 0xD8C DUP5 PUSH2 0x1850 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH2 0xE32 PUSH2 0x13C6 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEA1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE98 SWAP1 PUSH2 0x2F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xEAA DUP2 PUSH2 0x144D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF78 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0xF88 JUMPI POP PUSH2 0xF87 DUP3 PUSH2 0x18B9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF9B DUP4 PUSH2 0x1923 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x100E JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1005 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1069 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1960 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174613A696D6167652F7376672B786D6C3B6261736536342C000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 PUSH2 0x10B5 DUP5 PUSH2 0x1B25 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10CA SWAP3 SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x110C DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10F8 SWAP2 SWAP1 PUSH2 0x302F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1B25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x111C SWAP2 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114C DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1B52 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1170 SWAP2 SWAP1 PUSH2 0x2D61 JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0x11A0 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11B8 DUP5 PUSH2 0x1923 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11FA JUMPI PUSH2 0x11F9 DUP2 DUP5 DUP7 PUSH2 0x1B6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x128B JUMPI PUSH2 0x123C PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x130E JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x1054 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13EC PUSH2 0xA61 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x144B JUMPI PUSH2 0x140F PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1442 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1584 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x157B SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1675 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1833 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x16C6 PUSH2 0x1054 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16E8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x311F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1724 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1721 SWAP2 SWAP1 PUSH2 0x3180 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x17A8 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1754 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 0x1759 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x17A0 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1797 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1831 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1828 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x185B DUP3 PUSH2 0xF8F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1866 PUSH2 0x1839 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1886 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x18B1 JUMP JUMPDEST DUP1 PUSH2 0x1890 DUP5 PUSH2 0x1C32 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x18A1 SWAP3 SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1999 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 PUSH2 0x19A9 DUP5 PUSH2 0xF8F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1A14 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A27 JUMPI POP PUSH2 0x1A25 DUP2 DUP5 PUSH2 0xD96 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1A69 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A60 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1ACB JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1B4B DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32AD PUSH1 0x40 SWAP2 CODECOPY PUSH1 0x1 PUSH2 0x1D00 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5C DUP4 DUP4 PUSH2 0x1E94 JUMP JUMPDEST PUSH2 0x1B69 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1682 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1B79 DUP4 DUP4 DUP4 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x1C2D JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1BEE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BE5 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C24 SWAP3 SWAP2 SWAP1 PUSH2 0x31AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1C41 DUP5 PUSH2 0x204E JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C60 JUMPI PUSH2 0x1C5F PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C92 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1CF5 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1CE9 JUMPI PUSH2 0x1CE8 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1CA0 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD SUB PUSH2 0x1D22 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x1E8D JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D54 JUMPI PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH1 0x4 PUSH2 0x1D3B SWAP2 SWAP1 PUSH2 0x3205 JUMP JUMPDEST PUSH2 0x1D45 SWAP2 SWAP1 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x1D4F SWAP2 SWAP1 PUSH2 0x327B JUMP JUMPDEST PUSH2 0x1D7B JUMP JUMPDEST PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH2 0x1D64 SWAP2 SWAP1 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x1D6E SWAP2 SWAP1 PUSH2 0x327B JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1D7A SWAP2 SWAP1 PUSH2 0x3205 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D99 JUMPI PUSH2 0x1D98 PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1DCB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP6 ADD PUSH1 0x20 DUP3 ADD DUP8 DUP9 MLOAD DUP10 ADD PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x0 DUP3 MSTORE JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x1E41 JUMPI PUSH1 0x3 DUP5 ADD SWAP4 POP DUP4 MLOAD PUSH1 0x3F DUP2 PUSH1 0x12 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0xC SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0x6 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP POP PUSH2 0x1DE6 JUMP JUMPDEST DUP1 DUP3 MSTORE DUP10 ISZERO PUSH2 0x1E81 JUMPI PUSH1 0x3 DUP13 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x1E64 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1E77 JUMPI PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 PUSH1 0x3D PUSH1 0x2 DUP8 SUB MSTORE8 PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 JUMPDEST POP JUMPDEST POP POP POP POP POP POP DUP1 SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1F06 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EFD SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F14 DUP4 DUP4 PUSH1 0x0 PUSH2 0x11AC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F88 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F7F SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2006 JUMPI POP PUSH2 0x2005 DUP5 DUP5 PUSH2 0xD96 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x2044 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x202C DUP4 PUSH2 0x1017 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x20AC JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x20A2 JUMPI PUSH2 0x20A1 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x20E9 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x20DF JUMPI PUSH2 0x20DE PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x2118 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x210E JUMPI PUSH2 0x210D PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x2141 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2137 JUMPI PUSH2 0x2136 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x2166 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x215C JUMPI PUSH2 0x215B PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x2189 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x217F JUMPI PUSH2 0x217E PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2198 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 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 0x21EA DUP2 PUSH2 0x21B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x21F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2207 DUP2 PUSH2 0x21E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2223 JUMPI PUSH2 0x2222 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2231 DUP5 DUP3 DUP6 ADD PUSH2 0x21F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x223A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x226A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2246 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22AA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x228F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22D2 DUP3 PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x22DC DUP2 DUP6 PUSH2 0x227B JUMP JUMPDEST SWAP4 POP PUSH2 0x22EC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x228C JUMP JUMPDEST PUSH2 0x22F5 DUP2 PUSH2 0x22B6 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x231A DUP2 DUP5 PUSH2 0x22C7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2335 DUP2 PUSH2 0x2322 JUMP JUMPDEST DUP2 EQ PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2352 DUP2 PUSH2 0x232C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x236E JUMPI PUSH2 0x236D PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x237C DUP5 DUP3 DUP6 ADD PUSH2 0x2343 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 0x23B0 DUP3 PUSH2 0x2385 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C0 DUP2 PUSH2 0x23A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23DB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23EA DUP2 PUSH2 0x23A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2407 DUP2 PUSH2 0x23E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2424 JUMPI PUSH2 0x2423 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2432 DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2443 DUP6 DUP3 DUP7 ADD PUSH2 0x2343 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 0x2466 JUMPI PUSH2 0x2465 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2474 DUP7 DUP3 DUP8 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2485 DUP7 DUP3 DUP8 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2496 DUP7 DUP3 DUP8 ADD PUSH2 0x2343 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x24A9 DUP2 PUSH2 0x2322 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x24C4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x24A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24E0 JUMPI PUSH2 0x24DF PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24EE DUP5 DUP3 DUP6 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2500 DUP2 PUSH2 0x223A JUMP JUMPDEST DUP2 EQ PUSH2 0x250B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x251D DUP2 PUSH2 0x24F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x253A JUMPI PUSH2 0x2539 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2548 DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2559 DUP6 DUP3 DUP7 ADD PUSH2 0x250E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x25A5 DUP3 PUSH2 0x22B6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x25C4 JUMPI PUSH2 0x25C3 PUSH2 0x256D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25D7 PUSH2 0x21A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x25E3 DUP3 DUP3 PUSH2 0x259C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2603 JUMPI PUSH2 0x2602 PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH2 0x260C DUP3 PUSH2 0x22B6 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 0x263B PUSH2 0x2636 DUP5 PUSH2 0x25E8 JUMP JUMPDEST PUSH2 0x25CD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2657 JUMPI PUSH2 0x2656 PUSH2 0x2568 JUMP JUMPDEST JUMPDEST PUSH2 0x2662 DUP5 DUP3 DUP6 PUSH2 0x2619 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x267F JUMPI PUSH2 0x267E PUSH2 0x2563 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x268F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2628 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AE JUMPI PUSH2 0x26AD PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26CC JUMPI PUSH2 0x26CB PUSH2 0x21B0 JUMP JUMPDEST JUMPDEST PUSH2 0x26D8 DUP5 DUP3 DUP6 ADD PUSH2 0x266A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x26FC JUMPI PUSH2 0x26FB PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH2 0x2705 DUP3 PUSH2 0x22B6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2725 PUSH2 0x2720 DUP5 PUSH2 0x26E1 JUMP JUMPDEST PUSH2 0x25CD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2741 JUMPI PUSH2 0x2740 PUSH2 0x2568 JUMP JUMPDEST JUMPDEST PUSH2 0x274C DUP5 DUP3 DUP6 PUSH2 0x2619 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2563 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2779 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2712 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 0x279C JUMPI PUSH2 0x279B PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27AA DUP8 DUP3 DUP9 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27BB DUP8 DUP3 DUP9 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x27CC DUP8 DUP3 DUP9 ADD PUSH2 0x2343 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27ED JUMPI PUSH2 0x27EC PUSH2 0x21B0 JUMP JUMPDEST JUMPDEST PUSH2 0x27F9 DUP8 DUP3 DUP9 ADD PUSH2 0x2754 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 0x281C JUMPI PUSH2 0x281B PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x282A DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x283B DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x288C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x289F JUMPI PUSH2 0x289E PUSH2 0x2845 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x302E3030303120657468657220726571756972656420746F206D696E74000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28DB PUSH1 0x1D DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x28E6 DUP3 PUSH2 0x28A5 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 0x290A DUP2 PUSH2 0x28CE 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 0x294B DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x297D JUMPI PUSH2 0x297C PUSH2 0x2911 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x299D PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x29AA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x24A0 JUMP JUMPDEST PUSH2 0x29B7 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x23B7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6F2066756E647320617661696C61626C650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29F5 PUSH1 0x12 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2A00 DUP3 PUSH2 0x29BF 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 0x2A24 DUP2 PUSH2 0x29E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A46 PUSH1 0x0 DUP4 PUSH2 0x2A2B JUMP JUMPDEST SWAP2 POP PUSH2 0x2A51 DUP3 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A67 DUP3 PUSH2 0x2A39 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AA7 PUSH1 0x11 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2AB2 DUP3 PUSH2 0x2A71 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 0x2AD6 DUP2 PUSH2 0x2A9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x53564720646174612063616E6E6F7420626520656D7074790000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B13 PUSH1 0x18 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1E DUP3 PUSH2 0x2ADD 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 0x2B42 DUP2 PUSH2 0x2B06 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x535647206461746120746F6F206C617267650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B7F PUSH1 0x12 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2B8A DUP3 PUSH2 0x2B49 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 0x2BAE DUP2 PUSH2 0x2B72 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2C17 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2BDA JUMP JUMPDEST PUSH2 0x2C21 DUP7 DUP4 PUSH2 0x2BDA JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C5E PUSH2 0x2C59 PUSH2 0x2C54 DUP5 PUSH2 0x2322 JUMP JUMPDEST PUSH2 0x2C39 JUMP JUMPDEST PUSH2 0x2322 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C78 DUP4 PUSH2 0x2C43 JUMP JUMPDEST PUSH2 0x2C8C PUSH2 0x2C84 DUP3 PUSH2 0x2C65 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2BE7 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2CA1 PUSH2 0x2C94 JUMP JUMPDEST PUSH2 0x2CAC DUP2 DUP5 DUP5 PUSH2 0x2C6F JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2CD0 JUMPI PUSH2 0x2CC5 PUSH1 0x0 DUP3 PUSH2 0x2C99 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2CB2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2D15 JUMPI PUSH2 0x2CE6 DUP2 PUSH2 0x2BB5 JUMP JUMPDEST PUSH2 0x2CEF DUP5 PUSH2 0x2BCA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2CFE JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2D12 PUSH2 0x2D0A DUP6 PUSH2 0x2BCA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2CB1 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D38 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2D1A JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D51 DUP4 DUP4 PUSH2 0x2D27 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D6A DUP3 PUSH2 0x2270 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D83 JUMPI PUSH2 0x2D82 PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH2 0x2D8D DUP3 SLOAD PUSH2 0x2874 JUMP JUMPDEST PUSH2 0x2D98 DUP3 DUP3 DUP6 PUSH2 0x2CD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2DB9 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2DC3 DUP6 DUP3 PUSH2 0x2D45 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2E2B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2DD9 DUP7 PUSH2 0x2BB5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2E01 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2DDC JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2E1E JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2E1A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2D27 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E49 DUP3 PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x2E53 DUP2 DUP6 PUSH2 0x2E33 JUMP JUMPDEST SWAP4 POP PUSH2 0x2E63 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x228C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E7B DUP3 DUP6 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E87 DUP3 DUP5 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E6577206F776E65722063616E6E6F7420626520746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EEF PUSH1 0x24 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2EFA DUP3 PUSH2 0x2E93 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 0x2F1E DUP2 PUSH2 0x2EE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7B226E616D65223A2022466C756666792046757279222C202264657363726970 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x74696F6E223A2022596F75722061636365737320696E746F20616E7920657665 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E742063726561746564207573696E67207468697320746F6B656E2061646472 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x657373222C2022696D616765223A220000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCD PUSH1 0x6F DUP4 PUSH2 0x2E33 JUMP JUMPDEST SWAP2 POP PUSH2 0x2FD8 DUP3 PUSH2 0x2F25 JUMP JUMPDEST PUSH1 0x6F DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x227D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3019 PUSH1 0x2 DUP4 PUSH2 0x2E33 JUMP JUMPDEST SWAP2 POP PUSH2 0x3024 DUP3 PUSH2 0x2FE3 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x303A DUP3 PUSH2 0x2FC0 JUMP JUMPDEST SWAP2 POP PUSH2 0x3046 DUP3 DUP5 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP PUSH2 0x3051 DUP3 PUSH2 0x300C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3092 PUSH1 0x1D DUP4 PUSH2 0x2E33 JUMP JUMPDEST SWAP2 POP PUSH2 0x309D DUP3 PUSH2 0x305C JUMP JUMPDEST PUSH1 0x1D DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30B3 DUP3 PUSH2 0x3085 JUMP JUMPDEST SWAP2 POP PUSH2 0x30BF DUP3 DUP5 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP 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 PUSH2 0x30F1 DUP3 PUSH2 0x30CA JUMP JUMPDEST PUSH2 0x30FB DUP2 DUP6 PUSH2 0x30D5 JUMP JUMPDEST SWAP4 POP PUSH2 0x310B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x228C JUMP JUMPDEST PUSH2 0x3114 DUP2 PUSH2 0x22B6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3134 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x3141 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x314E PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x24A0 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3160 DUP2 DUP5 PUSH2 0x30E6 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x317A DUP2 PUSH2 0x21E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3196 JUMPI PUSH2 0x3195 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x31A4 DUP5 DUP3 DUP6 ADD PUSH2 0x316B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x31C2 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x31CF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24A0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3210 DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH2 0x321B DUP4 PUSH2 0x2322 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x3229 DUP2 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3240 JUMPI PUSH2 0x323F PUSH2 0x2911 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3252 DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH2 0x325D DUP4 PUSH2 0x2322 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3275 JUMPI PUSH2 0x3274 PUSH2 0x2911 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3286 DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH2 0x3291 DUP4 PUSH2 0x2322 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x32A1 JUMPI PUSH2 0x32A0 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID COINBASE TIMESTAMP NUMBER PREVRANDAO GASLIMIT CHAINID SELFBALANCE BASEFEE BLOBHASH BLOBBASEFEE 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2FA2646970667358 0x22 SLT KECCAK256 0xA9 PUSH13 0xAF5FFF622FCBF040485665C2F6 PUSH16 0xB3EDD07BB5C32351CA7BF3B33C7A350B PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "287:3279:18:-:0;;;455:12;428:39;;570:291;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;336:10;1381:113:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:5;1447;:13;;;;;;:::i;:::-;;1480:7;1470;:17;;;;;;:::i;:::-;;1381:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;681:1:18::1;660:10;654:24;:28;646:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;757:4;735:10;729:24;:32;;721:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;804:10;794:7;:20;;;;;;:::i;:::-;;570:291:::0;287:3279;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:75:23:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:524::-;2757:6;2806:2;2794:9;2785:7;2781:23;2777:32;2774:119;;;2812:79;;:::i;:::-;2774:119;2953:1;2942:9;2938:17;2932:24;2983:18;2975:6;2972:30;2969:117;;;3005:79;;:::i;:::-;2969:117;3110:74;3176:7;3167:6;3156:9;3152:22;3110:74;:::i;:::-;3100:84;;2903:291;2677:524;;;;:::o;3207:99::-;3259:6;3293:5;3287:12;3277:22;;3207:99;;;:::o;3312:180::-;3360:77;3357:1;3350:88;3457:4;3454:1;3447:15;3481:4;3478:1;3471:15;3498:320;3542:6;3579:1;3573:4;3569:12;3559:22;;3626:1;3620:4;3616:12;3647:18;3637:81;;3703:4;3695:6;3691:17;3681:27;;3637:81;3765:2;3757:6;3754:14;3734:18;3731:38;3728:84;;3784:18;;:::i;:::-;3728:84;3549:269;3498:320;;;:::o;3824:141::-;3873:4;3896:3;3888:11;;3919:3;3916:1;3909:14;3953:4;3950:1;3940:18;3932:26;;3824:141;;;:::o;3971:93::-;4008:6;4055:2;4050;4043:5;4039:14;4035:23;4025:33;;3971:93;;;:::o;4070:107::-;4114:8;4164:5;4158:4;4154:16;4133:37;;4070:107;;;;:::o;4183:393::-;4252:6;4302:1;4290:10;4286:18;4325:97;4355:66;4344:9;4325:97;:::i;:::-;4443:39;4473:8;4462:9;4443:39;:::i;:::-;4431:51;;4515:4;4511:9;4504:5;4500:21;4491:30;;4564:4;4554:8;4550:19;4543:5;4540:30;4530:40;;4259:317;;4183:393;;;;;:::o;4582:77::-;4619:7;4648:5;4637:16;;4582:77;;;:::o;4665:60::-;4693:3;4714:5;4707:12;;4665:60;;;:::o;4731:142::-;4781:9;4814:53;4832:34;4841:24;4859:5;4841:24;:::i;:::-;4832:34;:::i;:::-;4814:53;:::i;:::-;4801:66;;4731:142;;;:::o;4879:75::-;4922:3;4943:5;4936:12;;4879:75;;;:::o;4960:269::-;5070:39;5101:7;5070:39;:::i;:::-;5131:91;5180:41;5204:16;5180:41;:::i;:::-;5172:6;5165:4;5159:11;5131:91;:::i;:::-;5125:4;5118:105;5036:193;4960:269;;;:::o;5235:73::-;5280:3;5235:73;:::o;5314:189::-;5391:32;;:::i;:::-;5432:65;5490:6;5482;5476:4;5432:65;:::i;:::-;5367:136;5314:189;;:::o;5509:186::-;5569:120;5586:3;5579:5;5576:14;5569:120;;;5640:39;5677:1;5670:5;5640:39;:::i;:::-;5613:1;5606:5;5602:13;5593:22;;5569:120;;;5509:186;;:::o;5701:543::-;5802:2;5797:3;5794:11;5791:446;;;5836:38;5868:5;5836:38;:::i;:::-;5920:29;5938:10;5920:29;:::i;:::-;5910:8;5906:44;6103:2;6091:10;6088:18;6085:49;;;6124:8;6109:23;;6085:49;6147:80;6203:22;6221:3;6203:22;:::i;:::-;6193:8;6189:37;6176:11;6147:80;:::i;:::-;5806:431;;5791:446;5701:543;;;:::o;6250:117::-;6304:8;6354:5;6348:4;6344:16;6323:37;;6250:117;;;;:::o;6373:169::-;6417:6;6450:51;6498:1;6494:6;6486:5;6483:1;6479:13;6450:51;:::i;:::-;6446:56;6531:4;6525;6521:15;6511:25;;6424:118;6373:169;;;;:::o;6547:295::-;6623:4;6769:29;6794:3;6788:4;6769:29;:::i;:::-;6761:37;;6831:3;6828:1;6824:11;6818:4;6815:21;6807:29;;6547:295;;;;:::o;6847:1395::-;6964:37;6997:3;6964:37;:::i;:::-;7066:18;7058:6;7055:30;7052:56;;;7088:18;;:::i;:::-;7052:56;7132:38;7164:4;7158:11;7132:38;:::i;:::-;7217:67;7277:6;7269;7263:4;7217:67;:::i;:::-;7311:1;7335:4;7322:17;;7367:2;7359:6;7356:14;7384:1;7379:618;;;;8041:1;8058:6;8055:77;;;8107:9;8102:3;8098:19;8092:26;8083:35;;8055:77;8158:67;8218:6;8211:5;8158:67;:::i;:::-;8152:4;8145:81;8014:222;7349:887;;7379:618;7431:4;7427:9;7419:6;7415:22;7465:37;7497:4;7465:37;:::i;:::-;7524:1;7538:208;7552:7;7549:1;7546:14;7538:208;;;7631:9;7626:3;7622:19;7616:26;7608:6;7601:42;7682:1;7674:6;7670:14;7660:24;;7729:2;7718:9;7714:18;7701:31;;7575:4;7572:1;7568:12;7563:17;;7538:208;;;7774:6;7765:7;7762:19;7759:179;;;7832:9;7827:3;7823:19;7817:26;7875:48;7917:4;7909:6;7905:17;7894:9;7875:48;:::i;:::-;7867:6;7860:64;7782:156;7759:179;7984:1;7980;7972:6;7968:14;7964:22;7958:4;7951:36;7386:611;;;7349:887;;6939:1303;;;6847:1395;;:::o;8248:126::-;8285:7;8325:42;8318:5;8314:54;8303:65;;8248:126;;;:::o;8380:96::-;8417:7;8446:24;8464:5;8446:24;:::i;:::-;8435:35;;8380:96;;;:::o;8482:118::-;8569:24;8587:5;8569:24;:::i;:::-;8564:3;8557:37;8482:118;;:::o;8606:222::-;8699:4;8737:2;8726:9;8722:18;8714:26;;8750:71;8818:1;8807:9;8803:17;8794:6;8750:71;:::i;:::-;8606:222;;;;:::o;8834:169::-;8918:11;8952:6;8947:3;8940:19;8992:4;8987:3;8983:14;8968:29;;8834:169;;;;:::o;9009:174::-;9149:26;9145:1;9137:6;9133:14;9126:50;9009:174;:::o;9189:366::-;9331:3;9352:67;9416:2;9411:3;9352:67;:::i;:::-;9345:74;;9428:93;9517:3;9428:93;:::i;:::-;9546:2;9541:3;9537:12;9530:19;;9189:366;;;:::o;9561:419::-;9727:4;9765:2;9754:9;9750:18;9742:26;;9814:9;9808:4;9804:20;9800:1;9789:9;9785:17;9778:47;9842:131;9968:4;9842:131;:::i;:::-;9834:139;;9561:419;;;:::o;9986:168::-;10126:20;10122:1;10114:6;10110:14;10103:44;9986:168;:::o;10160:366::-;10302:3;10323:67;10387:2;10382:3;10323:67;:::i;:::-;10316:74;;10399:93;10488:3;10399:93;:::i;:::-;10517:2;10512:3;10508:12;10501:19;;10160:366;;;:::o;10532:419::-;10698:4;10736:2;10725:9;10721:18;10713:26;;10785:9;10779:4;10775:20;10771:1;10760:9;10756:17;10749:47;10813:131;10939:4;10813:131;:::i;:::-;10805:139;;10532:419;;;:::o;287:3279:18:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_3709": { + "entryPoint": null, + "id": 3709, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_1128": { + "entryPoint": 4188, + "id": 1128, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1194": { + "entryPoint": 6496, + "id": 1194, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_521": { + "entryPoint": 6201, + "id": 521, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkAuthorized_776": { + "entryPoint": 7022, + "id": 776, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkOnERC721Received_1324": { + "entryPoint": 5762, + "id": 1324, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 5062, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_encode_3188": { + "entryPoint": 7424, + "id": 3188, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_getApproved_703": { + "entryPoint": 4119, + "id": 703, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isAuthorized_739": { + "entryPoint": 8077, + "id": 739, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_mint_932": { + "entryPoint": 7828, + "id": 932, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1626": { + "entryPoint": 4180, + "id": 1626, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_690": { + "entryPoint": 6435, + "id": 690, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireOwned_1260": { + "entryPoint": 3983, + "id": 1260, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_safeMint_947": { + "entryPoint": 4402, + "id": 947, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_973": { + "entryPoint": 6994, + "id": 973, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1231": { + "entryPoint": 5395, + "id": 1231, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setTokenURI_1585": { + "entryPoint": 4432, + "id": 1585, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 5197, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_update_882": { + "entryPoint": 4524, + "id": 882, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@approve_537": { + "entryPoint": 1509, + "id": 537, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_445": { + "entryPoint": 2451, + "id": 445, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@encode_3119": { + "entryPoint": 6949, + "id": 3119, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@formatTokenURI_3572": { + "entryPoint": 4322, + "id": 3572, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_554": { + "entryPoint": 1481, + "id": 554, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_587": { + "entryPoint": 3478, + "id": 587, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_2809": { + "entryPoint": 8270, + "id": 2809, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@mintPrice_3463": { + "entryPoint": 2445, + "id": 3463, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@mint_3612": { + "entryPoint": 1531, + "id": 3612, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@name_467": { + "entryPoint": 1335, + "id": 467, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_458": { + "entryPoint": 2427, + "id": 458, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 2657, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 2637, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeTransferFrom_651": { + "entryPoint": 2395, + "id": 651, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_677": { + "entryPoint": 3174, + "id": 677, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_570": { + "entryPoint": 2845, + "id": 570, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1509": { + "entryPoint": 1238, + "id": 1509, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1922": { + "entryPoint": 6329, + "id": 1922, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_417": { + "entryPoint": 3757, + "id": 417, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@svgData_3465": { + "entryPoint": 2867, + "id": 3465, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@svgToImageURI_3544": { + "entryPoint": 4206, + "id": 3544, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_476": { + "entryPoint": 2699, + "id": 476, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_1712": { + "entryPoint": 7218, + "id": 1712, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1566": { + "entryPoint": 3203, + "id": 1566, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_512": { + "entryPoint": 6224, + "id": 512, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_633": { + "entryPoint": 1874, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@transferOwnership_3705": { + "entryPoint": 3626, + "id": 3705, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@updateSVG_3682": { + "entryPoint": 3009, + "id": 3682, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@withdrawFunds_3648": { + "entryPoint": 2132, + "id": 3648, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 10002, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 9768, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 9208, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 9486, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8696, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 12651, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 10068, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 9834, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 9027, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 9418, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 10245, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 9293, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 10114, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 9507, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 9229, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8717, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 12672, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 9880, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 9048, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 9143, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8774, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 12518, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 8903, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11838, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10728, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11014, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12224, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12300, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12421, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10809, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10446, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11122, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12002, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9376, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11887, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12335, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12456, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 10844, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 9158, + "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": 12575, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 12717, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 10632, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8789, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 8960, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10763, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11049, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10481, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11157, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10941, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12037, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 9391, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9677, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8609, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9953, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 9704, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 11189, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 12490, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8816, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 12501, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10795, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8827, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11827, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12871, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 12923, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 12805, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 11476, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 9125, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8762, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8629, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 9093, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8994, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 11441, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 11331, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 11617, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9753, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8844, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 11210, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 10356, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 11589, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9628, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11321, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 10560, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 11559, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 10513, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 12758, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 10309, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9581, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 11365, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9571, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9576, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8624, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8619, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 8886, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 11226, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 11546, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 11417, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1": { + "entryPoint": 10687, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d": { + "entryPoint": 10973, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d": { + "entryPoint": 12069, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475": { + "entryPoint": 12259, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa": { + "entryPoint": 12380, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": { + "entryPoint": 10806, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b": { + "entryPoint": 10405, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244": { + "entryPoint": 11081, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88": { + "entryPoint": 10865, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422": { + "entryPoint": 11923, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 11239, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 11375, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 9185, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 9463, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8673, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 9004, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 11412, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:32377:23", + "nodeType": "YulBlock", + "src": "0:32377:23", + "statements": [ + { + "body": { + "nativeSrc": "47:35:23", + "nodeType": "YulBlock", + "src": "47:35:23", + "statements": [ + { + "nativeSrc": "57:19:23", + "nodeType": "YulAssignment", + "src": "57:19:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:23", + "nodeType": "YulLiteral", + "src": "73:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:23", + "nodeType": "YulIdentifier", + "src": "67:5:23" + }, + "nativeSrc": "67:9:23", + "nodeType": "YulFunctionCall", + "src": "67:9:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:23", + "nodeType": "YulIdentifier", + "src": "57:6:23" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:23", + "nodeType": "YulTypedName", + "src": "40:6:23", + "type": "" + } + ], + "src": "7:75:23" + }, + { + "body": { + "nativeSrc": "177:28:23", + "nodeType": "YulBlock", + "src": "177:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:23", + "nodeType": "YulLiteral", + "src": "194:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:23", + "nodeType": "YulLiteral", + "src": "197:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:23", + "nodeType": "YulIdentifier", + "src": "187:6:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulFunctionCall", + "src": "187:12:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulExpressionStatement", + "src": "187:12:23" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:23", + "nodeType": "YulFunctionDefinition", + "src": "88:117:23" + }, + { + "body": { + "nativeSrc": "300:28:23", + "nodeType": "YulBlock", + "src": "300:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:23", + "nodeType": "YulLiteral", + "src": "317:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:23", + "nodeType": "YulLiteral", + "src": "320:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:23", + "nodeType": "YulIdentifier", + "src": "310:6:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulFunctionCall", + "src": "310:12:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulExpressionStatement", + "src": "310:12:23" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:23", + "nodeType": "YulFunctionDefinition", + "src": "211:117:23" + }, + { + "body": { + "nativeSrc": "378:105:23", + "nodeType": "YulBlock", + "src": "378:105:23", + "statements": [ + { + "nativeSrc": "388:89:23", + "nodeType": "YulAssignment", + "src": "388:89:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:23", + "nodeType": "YulIdentifier", + "src": "403:5:23" + }, + { + "kind": "number", + "nativeSrc": "410:66:23", + "nodeType": "YulLiteral", + "src": "410:66:23", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:23", + "nodeType": "YulIdentifier", + "src": "399:3:23" + }, + "nativeSrc": "399:78:23", + "nodeType": "YulFunctionCall", + "src": "399:78:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:23", + "nodeType": "YulIdentifier", + "src": "388:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:23", + "nodeType": "YulTypedName", + "src": "360:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:23", + "nodeType": "YulTypedName", + "src": "370:7:23", + "type": "" + } + ], + "src": "334:149:23" + }, + { + "body": { + "nativeSrc": "531:78:23", + "nodeType": "YulBlock", + "src": "531:78:23", + "statements": [ + { + "body": { + "nativeSrc": "587:16:23", + "nodeType": "YulBlock", + "src": "587:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:23", + "nodeType": "YulLiteral", + "src": "596:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:23", + "nodeType": "YulLiteral", + "src": "599:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:23", + "nodeType": "YulIdentifier", + "src": "589:6:23" + }, + "nativeSrc": "589:12:23", + "nodeType": "YulFunctionCall", + "src": "589:12:23" + }, + "nativeSrc": "589:12:23", + "nodeType": "YulExpressionStatement", + "src": "589:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:23", + "nodeType": "YulIdentifier", + "src": "554:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:23", + "nodeType": "YulIdentifier", + "src": "578:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:23", + "nodeType": "YulIdentifier", + "src": "561:16:23" + }, + "nativeSrc": "561:23:23", + "nodeType": "YulFunctionCall", + "src": "561:23:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:23", + "nodeType": "YulIdentifier", + "src": "551:2:23" + }, + "nativeSrc": "551:34:23", + "nodeType": "YulFunctionCall", + "src": "551:34:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:23", + "nodeType": "YulIdentifier", + "src": "544:6:23" + }, + "nativeSrc": "544:42:23", + "nodeType": "YulFunctionCall", + "src": "544:42:23" + }, + "nativeSrc": "541:62:23", + "nodeType": "YulIf", + "src": "541:62:23" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:23", + "nodeType": "YulTypedName", + "src": "524:5:23", + "type": "" + } + ], + "src": "489:120:23" + }, + { + "body": { + "nativeSrc": "666:86:23", + "nodeType": "YulBlock", + "src": "666:86:23", + "statements": [ + { + "nativeSrc": "676:29:23", + "nodeType": "YulAssignment", + "src": "676:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:23", + "nodeType": "YulIdentifier", + "src": "698:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:23", + "nodeType": "YulIdentifier", + "src": "685:12:23" + }, + "nativeSrc": "685:20:23", + "nodeType": "YulFunctionCall", + "src": "685:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:23", + "nodeType": "YulIdentifier", + "src": "676:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:23", + "nodeType": "YulIdentifier", + "src": "740:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:23", + "nodeType": "YulIdentifier", + "src": "714:25:23" + }, + "nativeSrc": "714:32:23", + "nodeType": "YulFunctionCall", + "src": "714:32:23" + }, + "nativeSrc": "714:32:23", + "nodeType": "YulExpressionStatement", + "src": "714:32:23" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:23", + "nodeType": "YulTypedName", + "src": "644:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:23", + "nodeType": "YulTypedName", + "src": "652:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:23", + "nodeType": "YulTypedName", + "src": "660:5:23", + "type": "" + } + ], + "src": "615:137:23" + }, + { + "body": { + "nativeSrc": "823:262:23", + "nodeType": "YulBlock", + "src": "823:262:23", + "statements": [ + { + "body": { + "nativeSrc": "869:83:23", + "nodeType": "YulBlock", + "src": "869:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:23", + "nodeType": "YulIdentifier", + "src": "871:77:23" + }, + "nativeSrc": "871:79:23", + "nodeType": "YulFunctionCall", + "src": "871:79:23" + }, + "nativeSrc": "871:79:23", + "nodeType": "YulExpressionStatement", + "src": "871:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:23", + "nodeType": "YulIdentifier", + "src": "844:7:23" + }, + { + "name": "headStart", + "nativeSrc": "853:9:23", + "nodeType": "YulIdentifier", + "src": "853:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:23", + "nodeType": "YulIdentifier", + "src": "840:3:23" + }, + "nativeSrc": "840:23:23", + "nodeType": "YulFunctionCall", + "src": "840:23:23" + }, + { + "kind": "number", + "nativeSrc": "865:2:23", + "nodeType": "YulLiteral", + "src": "865:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:23", + "nodeType": "YulIdentifier", + "src": "836:3:23" + }, + "nativeSrc": "836:32:23", + "nodeType": "YulFunctionCall", + "src": "836:32:23" + }, + "nativeSrc": "833:119:23", + "nodeType": "YulIf", + "src": "833:119:23" + }, + { + "nativeSrc": "962:116:23", + "nodeType": "YulBlock", + "src": "962:116:23", + "statements": [ + { + "nativeSrc": "977:15:23", + "nodeType": "YulVariableDeclaration", + "src": "977:15:23", + "value": { + "kind": "number", + "nativeSrc": "991:1:23", + "nodeType": "YulLiteral", + "src": "991:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:23", + "nodeType": "YulTypedName", + "src": "981:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:23", + "nodeType": "YulAssignment", + "src": "1006:62:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:23", + "nodeType": "YulIdentifier", + "src": "1040:9:23" + }, + { + "name": "offset", + "nativeSrc": "1051:6:23", + "nodeType": "YulIdentifier", + "src": "1051:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:23", + "nodeType": "YulIdentifier", + "src": "1036:3:23" + }, + "nativeSrc": "1036:22:23", + "nodeType": "YulFunctionCall", + "src": "1036:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:23", + "nodeType": "YulIdentifier", + "src": "1060:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:23", + "nodeType": "YulIdentifier", + "src": "1016:19:23" + }, + "nativeSrc": "1016:52:23", + "nodeType": "YulFunctionCall", + "src": "1016:52:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:23", + "nodeType": "YulIdentifier", + "src": "1006:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:23", + "nodeType": "YulTypedName", + "src": "793:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:23", + "nodeType": "YulTypedName", + "src": "804:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:23", + "nodeType": "YulTypedName", + "src": "816:6:23", + "type": "" + } + ], + "src": "758:327:23" + }, + { + "body": { + "nativeSrc": "1133:48:23", + "nodeType": "YulBlock", + "src": "1133:48:23", + "statements": [ + { + "nativeSrc": "1143:32:23", + "nodeType": "YulAssignment", + "src": "1143:32:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:23", + "nodeType": "YulIdentifier", + "src": "1168:5:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:23", + "nodeType": "YulIdentifier", + "src": "1161:6:23" + }, + "nativeSrc": "1161:13:23", + "nodeType": "YulFunctionCall", + "src": "1161:13:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:23", + "nodeType": "YulIdentifier", + "src": "1154:6:23" + }, + "nativeSrc": "1154:21:23", + "nodeType": "YulFunctionCall", + "src": "1154:21:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:23", + "nodeType": "YulIdentifier", + "src": "1143:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:23", + "nodeType": "YulTypedName", + "src": "1115:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:23", + "nodeType": "YulTypedName", + "src": "1125:7:23", + "type": "" + } + ], + "src": "1091:90:23" + }, + { + "body": { + "nativeSrc": "1246:50:23", + "nodeType": "YulBlock", + "src": "1246:50:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:23", + "nodeType": "YulIdentifier", + "src": "1263:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:23", + "nodeType": "YulIdentifier", + "src": "1283:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:23", + "nodeType": "YulIdentifier", + "src": "1268:14:23" + }, + "nativeSrc": "1268:21:23", + "nodeType": "YulFunctionCall", + "src": "1268:21:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:23", + "nodeType": "YulIdentifier", + "src": "1256:6:23" + }, + "nativeSrc": "1256:34:23", + "nodeType": "YulFunctionCall", + "src": "1256:34:23" + }, + "nativeSrc": "1256:34:23", + "nodeType": "YulExpressionStatement", + "src": "1256:34:23" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:23", + "nodeType": "YulTypedName", + "src": "1234:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:23", + "nodeType": "YulTypedName", + "src": "1241:3:23", + "type": "" + } + ], + "src": "1187:109:23" + }, + { + "body": { + "nativeSrc": "1394:118:23", + "nodeType": "YulBlock", + "src": "1394:118:23", + "statements": [ + { + "nativeSrc": "1404:26:23", + "nodeType": "YulAssignment", + "src": "1404:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:23", + "nodeType": "YulIdentifier", + "src": "1416:9:23" + }, + { + "kind": "number", + "nativeSrc": "1427:2:23", + "nodeType": "YulLiteral", + "src": "1427:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:23", + "nodeType": "YulIdentifier", + "src": "1412:3:23" + }, + "nativeSrc": "1412:18:23", + "nodeType": "YulFunctionCall", + "src": "1412:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:23", + "nodeType": "YulIdentifier", + "src": "1404:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:23", + "nodeType": "YulIdentifier", + "src": "1478:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:23", + "nodeType": "YulIdentifier", + "src": "1491:9:23" + }, + { + "kind": "number", + "nativeSrc": "1502:1:23", + "nodeType": "YulLiteral", + "src": "1502:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:23", + "nodeType": "YulIdentifier", + "src": "1487:3:23" + }, + "nativeSrc": "1487:17:23", + "nodeType": "YulFunctionCall", + "src": "1487:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:23", + "nodeType": "YulIdentifier", + "src": "1440:37:23" + }, + "nativeSrc": "1440:65:23", + "nodeType": "YulFunctionCall", + "src": "1440:65:23" + }, + "nativeSrc": "1440:65:23", + "nodeType": "YulExpressionStatement", + "src": "1440:65:23" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:23", + "nodeType": "YulTypedName", + "src": "1366:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:23", + "nodeType": "YulTypedName", + "src": "1378:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:23", + "nodeType": "YulTypedName", + "src": "1389:4:23", + "type": "" + } + ], + "src": "1302:210:23" + }, + { + "body": { + "nativeSrc": "1577:40:23", + "nodeType": "YulBlock", + "src": "1577:40:23", + "statements": [ + { + "nativeSrc": "1588:22:23", + "nodeType": "YulAssignment", + "src": "1588:22:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1604:5:23", + "nodeType": "YulIdentifier", + "src": "1604:5:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1598:5:23", + "nodeType": "YulIdentifier", + "src": "1598:5:23" + }, + "nativeSrc": "1598:12:23", + "nodeType": "YulFunctionCall", + "src": "1598:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "1588:6:23", + "nodeType": "YulIdentifier", + "src": "1588:6:23" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "1518:99:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1560:5:23", + "nodeType": "YulTypedName", + "src": "1560:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "1570:6:23", + "nodeType": "YulTypedName", + "src": "1570:6:23", + "type": "" + } + ], + "src": "1518:99:23" + }, + { + "body": { + "nativeSrc": "1719:73:23", + "nodeType": "YulBlock", + "src": "1719:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1736:3:23", + "nodeType": "YulIdentifier", + "src": "1736:3:23" + }, + { + "name": "length", + "nativeSrc": "1741:6:23", + "nodeType": "YulIdentifier", + "src": "1741:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1729:6:23", + "nodeType": "YulIdentifier", + "src": "1729:6:23" + }, + "nativeSrc": "1729:19:23", + "nodeType": "YulFunctionCall", + "src": "1729:19:23" + }, + "nativeSrc": "1729:19:23", + "nodeType": "YulExpressionStatement", + "src": "1729:19:23" + }, + { + "nativeSrc": "1757:29:23", + "nodeType": "YulAssignment", + "src": "1757:29:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1776:3:23", + "nodeType": "YulIdentifier", + "src": "1776:3:23" + }, + { + "kind": "number", + "nativeSrc": "1781:4:23", + "nodeType": "YulLiteral", + "src": "1781:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:23", + "nodeType": "YulIdentifier", + "src": "1772:3:23" + }, + "nativeSrc": "1772:14:23", + "nodeType": "YulFunctionCall", + "src": "1772:14:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "1757:11:23", + "nodeType": "YulIdentifier", + "src": "1757:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1623:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1691:3:23", + "nodeType": "YulTypedName", + "src": "1691:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1696:6:23", + "nodeType": "YulTypedName", + "src": "1696:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "1707:11:23", + "nodeType": "YulTypedName", + "src": "1707:11:23", + "type": "" + } + ], + "src": "1623:169:23" + }, + { + "body": { + "nativeSrc": "1860:184:23", + "nodeType": "YulBlock", + "src": "1860:184:23", + "statements": [ + { + "nativeSrc": "1870:10:23", + "nodeType": "YulVariableDeclaration", + "src": "1870:10:23", + "value": { + "kind": "number", + "nativeSrc": "1879:1:23", + "nodeType": "YulLiteral", + "src": "1879:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1874:1:23", + "nodeType": "YulTypedName", + "src": "1874:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1939:63:23", + "nodeType": "YulBlock", + "src": "1939:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1964:3:23", + "nodeType": "YulIdentifier", + "src": "1964:3:23" + }, + { + "name": "i", + "nativeSrc": "1969:1:23", + "nodeType": "YulIdentifier", + "src": "1969:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1960:3:23", + "nodeType": "YulIdentifier", + "src": "1960:3:23" + }, + "nativeSrc": "1960:11:23", + "nodeType": "YulFunctionCall", + "src": "1960:11:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1983:3:23", + "nodeType": "YulIdentifier", + "src": "1983:3:23" + }, + { + "name": "i", + "nativeSrc": "1988:1:23", + "nodeType": "YulIdentifier", + "src": "1988:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1979:3:23", + "nodeType": "YulIdentifier", + "src": "1979:3:23" + }, + "nativeSrc": "1979:11:23", + "nodeType": "YulFunctionCall", + "src": "1979:11:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1973:5:23", + "nodeType": "YulIdentifier", + "src": "1973:5:23" + }, + "nativeSrc": "1973:18:23", + "nodeType": "YulFunctionCall", + "src": "1973:18:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1953:6:23", + "nodeType": "YulIdentifier", + "src": "1953:6:23" + }, + "nativeSrc": "1953:39:23", + "nodeType": "YulFunctionCall", + "src": "1953:39:23" + }, + "nativeSrc": "1953:39:23", + "nodeType": "YulExpressionStatement", + "src": "1953:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1900:1:23", + "nodeType": "YulIdentifier", + "src": "1900:1:23" + }, + { + "name": "length", + "nativeSrc": "1903:6:23", + "nodeType": "YulIdentifier", + "src": "1903:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1897:2:23", + "nodeType": "YulIdentifier", + "src": "1897:2:23" + }, + "nativeSrc": "1897:13:23", + "nodeType": "YulFunctionCall", + "src": "1897:13:23" + }, + "nativeSrc": "1889:113:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1911:19:23", + "nodeType": "YulBlock", + "src": "1911:19:23", + "statements": [ + { + "nativeSrc": "1913:15:23", + "nodeType": "YulAssignment", + "src": "1913:15:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1922:1:23", + "nodeType": "YulIdentifier", + "src": "1922:1:23" + }, + { + "kind": "number", + "nativeSrc": "1925:2:23", + "nodeType": "YulLiteral", + "src": "1925:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1918:3:23", + "nodeType": "YulIdentifier", + "src": "1918:3:23" + }, + "nativeSrc": "1918:10:23", + "nodeType": "YulFunctionCall", + "src": "1918:10:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1913:1:23", + "nodeType": "YulIdentifier", + "src": "1913:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1893:3:23", + "nodeType": "YulBlock", + "src": "1893:3:23", + "statements": [] + }, + "src": "1889:113:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2022:3:23", + "nodeType": "YulIdentifier", + "src": "2022:3:23" + }, + { + "name": "length", + "nativeSrc": "2027:6:23", + "nodeType": "YulIdentifier", + "src": "2027:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2018:3:23", + "nodeType": "YulIdentifier", + "src": "2018:3:23" + }, + "nativeSrc": "2018:16:23", + "nodeType": "YulFunctionCall", + "src": "2018:16:23" + }, + { + "kind": "number", + "nativeSrc": "2036:1:23", + "nodeType": "YulLiteral", + "src": "2036:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2011:6:23", + "nodeType": "YulIdentifier", + "src": "2011:6:23" + }, + "nativeSrc": "2011:27:23", + "nodeType": "YulFunctionCall", + "src": "2011:27:23" + }, + "nativeSrc": "2011:27:23", + "nodeType": "YulExpressionStatement", + "src": "2011:27:23" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1798:246:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1842:3:23", + "nodeType": "YulTypedName", + "src": "1842:3:23", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1847:3:23", + "nodeType": "YulTypedName", + "src": "1847:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1852:6:23", + "nodeType": "YulTypedName", + "src": "1852:6:23", + "type": "" + } + ], + "src": "1798:246:23" + }, + { + "body": { + "nativeSrc": "2098:54:23", + "nodeType": "YulBlock", + "src": "2098:54:23", + "statements": [ + { + "nativeSrc": "2108:38:23", + "nodeType": "YulAssignment", + "src": "2108:38:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2126:5:23", + "nodeType": "YulIdentifier", + "src": "2126:5:23" + }, + { + "kind": "number", + "nativeSrc": "2133:2:23", + "nodeType": "YulLiteral", + "src": "2133:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2122:3:23", + "nodeType": "YulIdentifier", + "src": "2122:3:23" + }, + "nativeSrc": "2122:14:23", + "nodeType": "YulFunctionCall", + "src": "2122:14:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2142:2:23", + "nodeType": "YulLiteral", + "src": "2142:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2138:3:23", + "nodeType": "YulIdentifier", + "src": "2138:3:23" + }, + "nativeSrc": "2138:7:23", + "nodeType": "YulFunctionCall", + "src": "2138:7:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2118:3:23", + "nodeType": "YulIdentifier", + "src": "2118:3:23" + }, + "nativeSrc": "2118:28:23", + "nodeType": "YulFunctionCall", + "src": "2118:28:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2108:6:23", + "nodeType": "YulIdentifier", + "src": "2108:6:23" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "2050:102:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2081:5:23", + "nodeType": "YulTypedName", + "src": "2081:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2091:6:23", + "nodeType": "YulTypedName", + "src": "2091:6:23", + "type": "" + } + ], + "src": "2050:102:23" + }, + { + "body": { + "nativeSrc": "2250:285:23", + "nodeType": "YulBlock", + "src": "2250:285:23", + "statements": [ + { + "nativeSrc": "2260:53:23", + "nodeType": "YulVariableDeclaration", + "src": "2260:53:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2307:5:23", + "nodeType": "YulIdentifier", + "src": "2307:5:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "2274:32:23", + "nodeType": "YulIdentifier", + "src": "2274:32:23" + }, + "nativeSrc": "2274:39:23", + "nodeType": "YulFunctionCall", + "src": "2274:39:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2264:6:23", + "nodeType": "YulTypedName", + "src": "2264:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "2322:78:23", + "nodeType": "YulAssignment", + "src": "2322:78:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2388:3:23", + "nodeType": "YulIdentifier", + "src": "2388:3:23" + }, + { + "name": "length", + "nativeSrc": "2393:6:23", + "nodeType": "YulIdentifier", + "src": "2393:6:23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2329:58:23", + "nodeType": "YulIdentifier", + "src": "2329:58:23" + }, + "nativeSrc": "2329:71:23", + "nodeType": "YulFunctionCall", + "src": "2329:71:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2322:3:23", + "nodeType": "YulIdentifier", + "src": "2322:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2448:5:23", + "nodeType": "YulIdentifier", + "src": "2448:5:23" + }, + { + "kind": "number", + "nativeSrc": "2455:4:23", + "nodeType": "YulLiteral", + "src": "2455:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2444:3:23", + "nodeType": "YulIdentifier", + "src": "2444:3:23" + }, + "nativeSrc": "2444:16:23", + "nodeType": "YulFunctionCall", + "src": "2444:16:23" + }, + { + "name": "pos", + "nativeSrc": "2462:3:23", + "nodeType": "YulIdentifier", + "src": "2462:3:23" + }, + { + "name": "length", + "nativeSrc": "2467:6:23", + "nodeType": "YulIdentifier", + "src": "2467:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2409:34:23", + "nodeType": "YulIdentifier", + "src": "2409:34:23" + }, + "nativeSrc": "2409:65:23", + "nodeType": "YulFunctionCall", + "src": "2409:65:23" + }, + "nativeSrc": "2409:65:23", + "nodeType": "YulExpressionStatement", + "src": "2409:65:23" + }, + { + "nativeSrc": "2483:46:23", + "nodeType": "YulAssignment", + "src": "2483:46:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2494:3:23", + "nodeType": "YulIdentifier", + "src": "2494:3:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2521:6:23", + "nodeType": "YulIdentifier", + "src": "2521:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2499:21:23", + "nodeType": "YulIdentifier", + "src": "2499:21:23" + }, + "nativeSrc": "2499:29:23", + "nodeType": "YulFunctionCall", + "src": "2499:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2490:3:23", + "nodeType": "YulIdentifier", + "src": "2490:3:23" + }, + "nativeSrc": "2490:39:23", + "nodeType": "YulFunctionCall", + "src": "2490:39:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2483:3:23", + "nodeType": "YulIdentifier", + "src": "2483:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2158:377:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2231:5:23", + "nodeType": "YulTypedName", + "src": "2231:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2238:3:23", + "nodeType": "YulTypedName", + "src": "2238:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2246:3:23", + "nodeType": "YulTypedName", + "src": "2246:3:23", + "type": "" + } + ], + "src": "2158:377:23" + }, + { + "body": { + "nativeSrc": "2659:195:23", + "nodeType": "YulBlock", + "src": "2659:195:23", + "statements": [ + { + "nativeSrc": "2669:26:23", + "nodeType": "YulAssignment", + "src": "2669:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2681:9:23", + "nodeType": "YulIdentifier", + "src": "2681:9:23" + }, + { + "kind": "number", + "nativeSrc": "2692:2:23", + "nodeType": "YulLiteral", + "src": "2692:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2677:3:23", + "nodeType": "YulIdentifier", + "src": "2677:3:23" + }, + "nativeSrc": "2677:18:23", + "nodeType": "YulFunctionCall", + "src": "2677:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2669:4:23", + "nodeType": "YulIdentifier", + "src": "2669:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2716:9:23", + "nodeType": "YulIdentifier", + "src": "2716:9:23" + }, + { + "kind": "number", + "nativeSrc": "2727:1:23", + "nodeType": "YulLiteral", + "src": "2727:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2712:3:23", + "nodeType": "YulIdentifier", + "src": "2712:3:23" + }, + "nativeSrc": "2712:17:23", + "nodeType": "YulFunctionCall", + "src": "2712:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "2735:4:23", + "nodeType": "YulIdentifier", + "src": "2735:4:23" + }, + { + "name": "headStart", + "nativeSrc": "2741:9:23", + "nodeType": "YulIdentifier", + "src": "2741:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2731:3:23", + "nodeType": "YulIdentifier", + "src": "2731:3:23" + }, + "nativeSrc": "2731:20:23", + "nodeType": "YulFunctionCall", + "src": "2731:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2705:6:23", + "nodeType": "YulIdentifier", + "src": "2705:6:23" + }, + "nativeSrc": "2705:47:23", + "nodeType": "YulFunctionCall", + "src": "2705:47:23" + }, + "nativeSrc": "2705:47:23", + "nodeType": "YulExpressionStatement", + "src": "2705:47:23" + }, + { + "nativeSrc": "2761:86:23", + "nodeType": "YulAssignment", + "src": "2761:86:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2833:6:23", + "nodeType": "YulIdentifier", + "src": "2833:6:23" + }, + { + "name": "tail", + "nativeSrc": "2842:4:23", + "nodeType": "YulIdentifier", + "src": "2842:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2769:63:23", + "nodeType": "YulIdentifier", + "src": "2769:63:23" + }, + "nativeSrc": "2769:78:23", + "nodeType": "YulFunctionCall", + "src": "2769:78:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2761:4:23", + "nodeType": "YulIdentifier", + "src": "2761:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2541:313:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2631:9:23", + "nodeType": "YulTypedName", + "src": "2631:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2643:6:23", + "nodeType": "YulTypedName", + "src": "2643:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2654:4:23", + "nodeType": "YulTypedName", + "src": "2654:4:23", + "type": "" + } + ], + "src": "2541:313:23" + }, + { + "body": { + "nativeSrc": "2905:32:23", + "nodeType": "YulBlock", + "src": "2905:32:23", + "statements": [ + { + "nativeSrc": "2915:16:23", + "nodeType": "YulAssignment", + "src": "2915:16:23", + "value": { + "name": "value", + "nativeSrc": "2926:5:23", + "nodeType": "YulIdentifier", + "src": "2926:5:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2915:7:23", + "nodeType": "YulIdentifier", + "src": "2915:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2860:77:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2887:5:23", + "nodeType": "YulTypedName", + "src": "2887:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2897:7:23", + "nodeType": "YulTypedName", + "src": "2897:7:23", + "type": "" + } + ], + "src": "2860:77:23" + }, + { + "body": { + "nativeSrc": "2986:79:23", + "nodeType": "YulBlock", + "src": "2986:79:23", + "statements": [ + { + "body": { + "nativeSrc": "3043:16:23", + "nodeType": "YulBlock", + "src": "3043:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3052:1:23", + "nodeType": "YulLiteral", + "src": "3052:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3055:1:23", + "nodeType": "YulLiteral", + "src": "3055:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3045:6:23", + "nodeType": "YulIdentifier", + "src": "3045:6:23" + }, + "nativeSrc": "3045:12:23", + "nodeType": "YulFunctionCall", + "src": "3045:12:23" + }, + "nativeSrc": "3045:12:23", + "nodeType": "YulExpressionStatement", + "src": "3045:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3009:5:23", + "nodeType": "YulIdentifier", + "src": "3009:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3034:5:23", + "nodeType": "YulIdentifier", + "src": "3034:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "3016:17:23", + "nodeType": "YulIdentifier", + "src": "3016:17:23" + }, + "nativeSrc": "3016:24:23", + "nodeType": "YulFunctionCall", + "src": "3016:24:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3006:2:23", + "nodeType": "YulIdentifier", + "src": "3006:2:23" + }, + "nativeSrc": "3006:35:23", + "nodeType": "YulFunctionCall", + "src": "3006:35:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2999:6:23", + "nodeType": "YulIdentifier", + "src": "2999:6:23" + }, + "nativeSrc": "2999:43:23", + "nodeType": "YulFunctionCall", + "src": "2999:43:23" + }, + "nativeSrc": "2996:63:23", + "nodeType": "YulIf", + "src": "2996:63:23" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2943:122:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2979:5:23", + "nodeType": "YulTypedName", + "src": "2979:5:23", + "type": "" + } + ], + "src": "2943:122:23" + }, + { + "body": { + "nativeSrc": "3123:87:23", + "nodeType": "YulBlock", + "src": "3123:87:23", + "statements": [ + { + "nativeSrc": "3133:29:23", + "nodeType": "YulAssignment", + "src": "3133:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3155:6:23", + "nodeType": "YulIdentifier", + "src": "3155:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3142:12:23", + "nodeType": "YulIdentifier", + "src": "3142:12:23" + }, + "nativeSrc": "3142:20:23", + "nodeType": "YulFunctionCall", + "src": "3142:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3133:5:23", + "nodeType": "YulIdentifier", + "src": "3133:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3198:5:23", + "nodeType": "YulIdentifier", + "src": "3198:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3171:26:23", + "nodeType": "YulIdentifier", + "src": "3171:26:23" + }, + "nativeSrc": "3171:33:23", + "nodeType": "YulFunctionCall", + "src": "3171:33:23" + }, + "nativeSrc": "3171:33:23", + "nodeType": "YulExpressionStatement", + "src": "3171:33:23" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "3071:139:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3101:6:23", + "nodeType": "YulTypedName", + "src": "3101:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3109:3:23", + "nodeType": "YulTypedName", + "src": "3109:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3117:5:23", + "nodeType": "YulTypedName", + "src": "3117:5:23", + "type": "" + } + ], + "src": "3071:139:23" + }, + { + "body": { + "nativeSrc": "3282:263:23", + "nodeType": "YulBlock", + "src": "3282:263:23", + "statements": [ + { + "body": { + "nativeSrc": "3328:83:23", + "nodeType": "YulBlock", + "src": "3328:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3330:77:23", + "nodeType": "YulIdentifier", + "src": "3330:77:23" + }, + "nativeSrc": "3330:79:23", + "nodeType": "YulFunctionCall", + "src": "3330:79:23" + }, + "nativeSrc": "3330:79:23", + "nodeType": "YulExpressionStatement", + "src": "3330:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3303:7:23", + "nodeType": "YulIdentifier", + "src": "3303:7:23" + }, + { + "name": "headStart", + "nativeSrc": "3312:9:23", + "nodeType": "YulIdentifier", + "src": "3312:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3299:3:23", + "nodeType": "YulIdentifier", + "src": "3299:3:23" + }, + "nativeSrc": "3299:23:23", + "nodeType": "YulFunctionCall", + "src": "3299:23:23" + }, + { + "kind": "number", + "nativeSrc": "3324:2:23", + "nodeType": "YulLiteral", + "src": "3324:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3295:3:23", + "nodeType": "YulIdentifier", + "src": "3295:3:23" + }, + "nativeSrc": "3295:32:23", + "nodeType": "YulFunctionCall", + "src": "3295:32:23" + }, + "nativeSrc": "3292:119:23", + "nodeType": "YulIf", + "src": "3292:119:23" + }, + { + "nativeSrc": "3421:117:23", + "nodeType": "YulBlock", + "src": "3421:117:23", + "statements": [ + { + "nativeSrc": "3436:15:23", + "nodeType": "YulVariableDeclaration", + "src": "3436:15:23", + "value": { + "kind": "number", + "nativeSrc": "3450:1:23", + "nodeType": "YulLiteral", + "src": "3450:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3440:6:23", + "nodeType": "YulTypedName", + "src": "3440:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "3465:63:23", + "nodeType": "YulAssignment", + "src": "3465:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3500:9:23", + "nodeType": "YulIdentifier", + "src": "3500:9:23" + }, + { + "name": "offset", + "nativeSrc": "3511:6:23", + "nodeType": "YulIdentifier", + "src": "3511:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3496:3:23", + "nodeType": "YulIdentifier", + "src": "3496:3:23" + }, + "nativeSrc": "3496:22:23", + "nodeType": "YulFunctionCall", + "src": "3496:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "3520:7:23", + "nodeType": "YulIdentifier", + "src": "3520:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3475:20:23", + "nodeType": "YulIdentifier", + "src": "3475:20:23" + }, + "nativeSrc": "3475:53:23", + "nodeType": "YulFunctionCall", + "src": "3475:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3465:6:23", + "nodeType": "YulIdentifier", + "src": "3465:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3216:329:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3252:9:23", + "nodeType": "YulTypedName", + "src": "3252:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3263:7:23", + "nodeType": "YulTypedName", + "src": "3263:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3275:6:23", + "nodeType": "YulTypedName", + "src": "3275:6:23", + "type": "" + } + ], + "src": "3216:329:23" + }, + { + "body": { + "nativeSrc": "3596:81:23", + "nodeType": "YulBlock", + "src": "3596:81:23", + "statements": [ + { + "nativeSrc": "3606:65:23", + "nodeType": "YulAssignment", + "src": "3606:65:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3621:5:23", + "nodeType": "YulIdentifier", + "src": "3621:5:23" + }, + { + "kind": "number", + "nativeSrc": "3628:42:23", + "nodeType": "YulLiteral", + "src": "3628:42:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3617:3:23", + "nodeType": "YulIdentifier", + "src": "3617:3:23" + }, + "nativeSrc": "3617:54:23", + "nodeType": "YulFunctionCall", + "src": "3617:54:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3606:7:23", + "nodeType": "YulIdentifier", + "src": "3606:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3551:126:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3578:5:23", + "nodeType": "YulTypedName", + "src": "3578:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3588:7:23", + "nodeType": "YulTypedName", + "src": "3588:7:23", + "type": "" + } + ], + "src": "3551:126:23" + }, + { + "body": { + "nativeSrc": "3728:51:23", + "nodeType": "YulBlock", + "src": "3728:51:23", + "statements": [ + { + "nativeSrc": "3738:35:23", + "nodeType": "YulAssignment", + "src": "3738:35:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3767:5:23", + "nodeType": "YulIdentifier", + "src": "3767:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3749:17:23", + "nodeType": "YulIdentifier", + "src": "3749:17:23" + }, + "nativeSrc": "3749:24:23", + "nodeType": "YulFunctionCall", + "src": "3749:24:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3738:7:23", + "nodeType": "YulIdentifier", + "src": "3738:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3683:96:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3710:5:23", + "nodeType": "YulTypedName", + "src": "3710:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3720:7:23", + "nodeType": "YulTypedName", + "src": "3720:7:23", + "type": "" + } + ], + "src": "3683:96:23" + }, + { + "body": { + "nativeSrc": "3850:53:23", + "nodeType": "YulBlock", + "src": "3850:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3867:3:23", + "nodeType": "YulIdentifier", + "src": "3867:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3890:5:23", + "nodeType": "YulIdentifier", + "src": "3890:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3872:17:23", + "nodeType": "YulIdentifier", + "src": "3872:17:23" + }, + "nativeSrc": "3872:24:23", + "nodeType": "YulFunctionCall", + "src": "3872:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3860:6:23", + "nodeType": "YulIdentifier", + "src": "3860:6:23" + }, + "nativeSrc": "3860:37:23", + "nodeType": "YulFunctionCall", + "src": "3860:37:23" + }, + "nativeSrc": "3860:37:23", + "nodeType": "YulExpressionStatement", + "src": "3860:37:23" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3785:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3838:5:23", + "nodeType": "YulTypedName", + "src": "3838:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3845:3:23", + "nodeType": "YulTypedName", + "src": "3845:3:23", + "type": "" + } + ], + "src": "3785:118:23" + }, + { + "body": { + "nativeSrc": "4007:124:23", + "nodeType": "YulBlock", + "src": "4007:124:23", + "statements": [ + { + "nativeSrc": "4017:26:23", + "nodeType": "YulAssignment", + "src": "4017:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4029:9:23", + "nodeType": "YulIdentifier", + "src": "4029:9:23" + }, + { + "kind": "number", + "nativeSrc": "4040:2:23", + "nodeType": "YulLiteral", + "src": "4040:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4025:3:23", + "nodeType": "YulIdentifier", + "src": "4025:3:23" + }, + "nativeSrc": "4025:18:23", + "nodeType": "YulFunctionCall", + "src": "4025:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4017:4:23", + "nodeType": "YulIdentifier", + "src": "4017:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4097:6:23", + "nodeType": "YulIdentifier", + "src": "4097:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4110:9:23", + "nodeType": "YulIdentifier", + "src": "4110:9:23" + }, + { + "kind": "number", + "nativeSrc": "4121:1:23", + "nodeType": "YulLiteral", + "src": "4121:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4106:3:23", + "nodeType": "YulIdentifier", + "src": "4106:3:23" + }, + "nativeSrc": "4106:17:23", + "nodeType": "YulFunctionCall", + "src": "4106:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4053:43:23", + "nodeType": "YulIdentifier", + "src": "4053:43:23" + }, + "nativeSrc": "4053:71:23", + "nodeType": "YulFunctionCall", + "src": "4053:71:23" + }, + "nativeSrc": "4053:71:23", + "nodeType": "YulExpressionStatement", + "src": "4053:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "3909:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3979:9:23", + "nodeType": "YulTypedName", + "src": "3979:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3991:6:23", + "nodeType": "YulTypedName", + "src": "3991:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4002:4:23", + "nodeType": "YulTypedName", + "src": "4002:4:23", + "type": "" + } + ], + "src": "3909:222:23" + }, + { + "body": { + "nativeSrc": "4180:79:23", + "nodeType": "YulBlock", + "src": "4180:79:23", + "statements": [ + { + "body": { + "nativeSrc": "4237:16:23", + "nodeType": "YulBlock", + "src": "4237:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4246:1:23", + "nodeType": "YulLiteral", + "src": "4246:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4249:1:23", + "nodeType": "YulLiteral", + "src": "4249:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4239:6:23", + "nodeType": "YulIdentifier", + "src": "4239:6:23" + }, + "nativeSrc": "4239:12:23", + "nodeType": "YulFunctionCall", + "src": "4239:12:23" + }, + "nativeSrc": "4239:12:23", + "nodeType": "YulExpressionStatement", + "src": "4239:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4203:5:23", + "nodeType": "YulIdentifier", + "src": "4203:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4228:5:23", + "nodeType": "YulIdentifier", + "src": "4228:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4210:17:23", + "nodeType": "YulIdentifier", + "src": "4210:17:23" + }, + "nativeSrc": "4210:24:23", + "nodeType": "YulFunctionCall", + "src": "4210:24:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4200:2:23", + "nodeType": "YulIdentifier", + "src": "4200:2:23" + }, + "nativeSrc": "4200:35:23", + "nodeType": "YulFunctionCall", + "src": "4200:35:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4193:6:23", + "nodeType": "YulIdentifier", + "src": "4193:6:23" + }, + "nativeSrc": "4193:43:23", + "nodeType": "YulFunctionCall", + "src": "4193:43:23" + }, + "nativeSrc": "4190:63:23", + "nodeType": "YulIf", + "src": "4190:63:23" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "4137:122:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4173:5:23", + "nodeType": "YulTypedName", + "src": "4173:5:23", + "type": "" + } + ], + "src": "4137:122:23" + }, + { + "body": { + "nativeSrc": "4317:87:23", + "nodeType": "YulBlock", + "src": "4317:87:23", + "statements": [ + { + "nativeSrc": "4327:29:23", + "nodeType": "YulAssignment", + "src": "4327:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4349:6:23", + "nodeType": "YulIdentifier", + "src": "4349:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4336:12:23", + "nodeType": "YulIdentifier", + "src": "4336:12:23" + }, + "nativeSrc": "4336:20:23", + "nodeType": "YulFunctionCall", + "src": "4336:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4327:5:23", + "nodeType": "YulIdentifier", + "src": "4327:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4392:5:23", + "nodeType": "YulIdentifier", + "src": "4392:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "4365:26:23", + "nodeType": "YulIdentifier", + "src": "4365:26:23" + }, + "nativeSrc": "4365:33:23", + "nodeType": "YulFunctionCall", + "src": "4365:33:23" + }, + "nativeSrc": "4365:33:23", + "nodeType": "YulExpressionStatement", + "src": "4365:33:23" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "4265:139:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4295:6:23", + "nodeType": "YulTypedName", + "src": "4295:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4303:3:23", + "nodeType": "YulTypedName", + "src": "4303:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4311:5:23", + "nodeType": "YulTypedName", + "src": "4311:5:23", + "type": "" + } + ], + "src": "4265:139:23" + }, + { + "body": { + "nativeSrc": "4493:391:23", + "nodeType": "YulBlock", + "src": "4493:391:23", + "statements": [ + { + "body": { + "nativeSrc": "4539:83:23", + "nodeType": "YulBlock", + "src": "4539:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4541:77:23", + "nodeType": "YulIdentifier", + "src": "4541:77:23" + }, + "nativeSrc": "4541:79:23", + "nodeType": "YulFunctionCall", + "src": "4541:79:23" + }, + "nativeSrc": "4541:79:23", + "nodeType": "YulExpressionStatement", + "src": "4541:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4514:7:23", + "nodeType": "YulIdentifier", + "src": "4514:7:23" + }, + { + "name": "headStart", + "nativeSrc": "4523:9:23", + "nodeType": "YulIdentifier", + "src": "4523:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4510:3:23", + "nodeType": "YulIdentifier", + "src": "4510:3:23" + }, + "nativeSrc": "4510:23:23", + "nodeType": "YulFunctionCall", + "src": "4510:23:23" + }, + { + "kind": "number", + "nativeSrc": "4535:2:23", + "nodeType": "YulLiteral", + "src": "4535:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4506:3:23", + "nodeType": "YulIdentifier", + "src": "4506:3:23" + }, + "nativeSrc": "4506:32:23", + "nodeType": "YulFunctionCall", + "src": "4506:32:23" + }, + "nativeSrc": "4503:119:23", + "nodeType": "YulIf", + "src": "4503:119:23" + }, + { + "nativeSrc": "4632:117:23", + "nodeType": "YulBlock", + "src": "4632:117:23", + "statements": [ + { + "nativeSrc": "4647:15:23", + "nodeType": "YulVariableDeclaration", + "src": "4647:15:23", + "value": { + "kind": "number", + "nativeSrc": "4661:1:23", + "nodeType": "YulLiteral", + "src": "4661:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4651:6:23", + "nodeType": "YulTypedName", + "src": "4651:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4676:63:23", + "nodeType": "YulAssignment", + "src": "4676:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4711:9:23", + "nodeType": "YulIdentifier", + "src": "4711:9:23" + }, + { + "name": "offset", + "nativeSrc": "4722:6:23", + "nodeType": "YulIdentifier", + "src": "4722:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4707:3:23", + "nodeType": "YulIdentifier", + "src": "4707:3:23" + }, + "nativeSrc": "4707:22:23", + "nodeType": "YulFunctionCall", + "src": "4707:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4731:7:23", + "nodeType": "YulIdentifier", + "src": "4731:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4686:20:23", + "nodeType": "YulIdentifier", + "src": "4686:20:23" + }, + "nativeSrc": "4686:53:23", + "nodeType": "YulFunctionCall", + "src": "4686:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4676:6:23", + "nodeType": "YulIdentifier", + "src": "4676:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "4759:118:23", + "nodeType": "YulBlock", + "src": "4759:118:23", + "statements": [ + { + "nativeSrc": "4774:16:23", + "nodeType": "YulVariableDeclaration", + "src": "4774:16:23", + "value": { + "kind": "number", + "nativeSrc": "4788:2:23", + "nodeType": "YulLiteral", + "src": "4788:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4778:6:23", + "nodeType": "YulTypedName", + "src": "4778:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4804:63:23", + "nodeType": "YulAssignment", + "src": "4804:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4839:9:23", + "nodeType": "YulIdentifier", + "src": "4839:9:23" + }, + { + "name": "offset", + "nativeSrc": "4850:6:23", + "nodeType": "YulIdentifier", + "src": "4850:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4835:3:23", + "nodeType": "YulIdentifier", + "src": "4835:3:23" + }, + "nativeSrc": "4835:22:23", + "nodeType": "YulFunctionCall", + "src": "4835:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4859:7:23", + "nodeType": "YulIdentifier", + "src": "4859:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4814:20:23", + "nodeType": "YulIdentifier", + "src": "4814:20:23" + }, + "nativeSrc": "4814:53:23", + "nodeType": "YulFunctionCall", + "src": "4814:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4804:6:23", + "nodeType": "YulIdentifier", + "src": "4804:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "4410:474:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4455:9:23", + "nodeType": "YulTypedName", + "src": "4455:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4466:7:23", + "nodeType": "YulTypedName", + "src": "4466:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4478:6:23", + "nodeType": "YulTypedName", + "src": "4478:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4486:6:23", + "nodeType": "YulTypedName", + "src": "4486:6:23", + "type": "" + } + ], + "src": "4410:474:23" + }, + { + "body": { + "nativeSrc": "4990:519:23", + "nodeType": "YulBlock", + "src": "4990:519:23", + "statements": [ + { + "body": { + "nativeSrc": "5036:83:23", + "nodeType": "YulBlock", + "src": "5036:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5038:77:23", + "nodeType": "YulIdentifier", + "src": "5038:77:23" + }, + "nativeSrc": "5038:79:23", + "nodeType": "YulFunctionCall", + "src": "5038:79:23" + }, + "nativeSrc": "5038:79:23", + "nodeType": "YulExpressionStatement", + "src": "5038:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5011:7:23", + "nodeType": "YulIdentifier", + "src": "5011:7:23" + }, + { + "name": "headStart", + "nativeSrc": "5020:9:23", + "nodeType": "YulIdentifier", + "src": "5020:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5007:3:23", + "nodeType": "YulIdentifier", + "src": "5007:3:23" + }, + "nativeSrc": "5007:23:23", + "nodeType": "YulFunctionCall", + "src": "5007:23:23" + }, + { + "kind": "number", + "nativeSrc": "5032:2:23", + "nodeType": "YulLiteral", + "src": "5032:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5003:3:23", + "nodeType": "YulIdentifier", + "src": "5003:3:23" + }, + "nativeSrc": "5003:32:23", + "nodeType": "YulFunctionCall", + "src": "5003:32:23" + }, + "nativeSrc": "5000:119:23", + "nodeType": "YulIf", + "src": "5000:119:23" + }, + { + "nativeSrc": "5129:117:23", + "nodeType": "YulBlock", + "src": "5129:117:23", + "statements": [ + { + "nativeSrc": "5144:15:23", + "nodeType": "YulVariableDeclaration", + "src": "5144:15:23", + "value": { + "kind": "number", + "nativeSrc": "5158:1:23", + "nodeType": "YulLiteral", + "src": "5158:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5148:6:23", + "nodeType": "YulTypedName", + "src": "5148:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5173:63:23", + "nodeType": "YulAssignment", + "src": "5173:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5208:9:23", + "nodeType": "YulIdentifier", + "src": "5208:9:23" + }, + { + "name": "offset", + "nativeSrc": "5219:6:23", + "nodeType": "YulIdentifier", + "src": "5219:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5204:3:23", + "nodeType": "YulIdentifier", + "src": "5204:3:23" + }, + "nativeSrc": "5204:22:23", + "nodeType": "YulFunctionCall", + "src": "5204:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "5228:7:23", + "nodeType": "YulIdentifier", + "src": "5228:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5183:20:23", + "nodeType": "YulIdentifier", + "src": "5183:20:23" + }, + "nativeSrc": "5183:53:23", + "nodeType": "YulFunctionCall", + "src": "5183:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5173:6:23", + "nodeType": "YulIdentifier", + "src": "5173:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "5256:118:23", + "nodeType": "YulBlock", + "src": "5256:118:23", + "statements": [ + { + "nativeSrc": "5271:16:23", + "nodeType": "YulVariableDeclaration", + "src": "5271:16:23", + "value": { + "kind": "number", + "nativeSrc": "5285:2:23", + "nodeType": "YulLiteral", + "src": "5285:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5275:6:23", + "nodeType": "YulTypedName", + "src": "5275:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5301:63:23", + "nodeType": "YulAssignment", + "src": "5301:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5336:9:23", + "nodeType": "YulIdentifier", + "src": "5336:9:23" + }, + { + "name": "offset", + "nativeSrc": "5347:6:23", + "nodeType": "YulIdentifier", + "src": "5347:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5332:3:23", + "nodeType": "YulIdentifier", + "src": "5332:3:23" + }, + "nativeSrc": "5332:22:23", + "nodeType": "YulFunctionCall", + "src": "5332:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "5356:7:23", + "nodeType": "YulIdentifier", + "src": "5356:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5311:20:23", + "nodeType": "YulIdentifier", + "src": "5311:20:23" + }, + "nativeSrc": "5311:53:23", + "nodeType": "YulFunctionCall", + "src": "5311:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5301:6:23", + "nodeType": "YulIdentifier", + "src": "5301:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "5384:118:23", + "nodeType": "YulBlock", + "src": "5384:118:23", + "statements": [ + { + "nativeSrc": "5399:16:23", + "nodeType": "YulVariableDeclaration", + "src": "5399:16:23", + "value": { + "kind": "number", + "nativeSrc": "5413:2:23", + "nodeType": "YulLiteral", + "src": "5413:2:23", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5403:6:23", + "nodeType": "YulTypedName", + "src": "5403:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5429:63:23", + "nodeType": "YulAssignment", + "src": "5429:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5464:9:23", + "nodeType": "YulIdentifier", + "src": "5464:9:23" + }, + { + "name": "offset", + "nativeSrc": "5475:6:23", + "nodeType": "YulIdentifier", + "src": "5475:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5460:3:23", + "nodeType": "YulIdentifier", + "src": "5460:3:23" + }, + "nativeSrc": "5460:22:23", + "nodeType": "YulFunctionCall", + "src": "5460:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "5484:7:23", + "nodeType": "YulIdentifier", + "src": "5484:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5439:20:23", + "nodeType": "YulIdentifier", + "src": "5439:20:23" + }, + "nativeSrc": "5439:53:23", + "nodeType": "YulFunctionCall", + "src": "5439:53:23" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5429:6:23", + "nodeType": "YulIdentifier", + "src": "5429:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "4890:619:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4944:9:23", + "nodeType": "YulTypedName", + "src": "4944:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4955:7:23", + "nodeType": "YulTypedName", + "src": "4955:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4967:6:23", + "nodeType": "YulTypedName", + "src": "4967:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4975:6:23", + "nodeType": "YulTypedName", + "src": "4975:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4983:6:23", + "nodeType": "YulTypedName", + "src": "4983:6:23", + "type": "" + } + ], + "src": "4890:619:23" + }, + { + "body": { + "nativeSrc": "5580:53:23", + "nodeType": "YulBlock", + "src": "5580:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5597:3:23", + "nodeType": "YulIdentifier", + "src": "5597:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5620:5:23", + "nodeType": "YulIdentifier", + "src": "5620:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "5602:17:23", + "nodeType": "YulIdentifier", + "src": "5602:17:23" + }, + "nativeSrc": "5602:24:23", + "nodeType": "YulFunctionCall", + "src": "5602:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5590:6:23", + "nodeType": "YulIdentifier", + "src": "5590:6:23" + }, + "nativeSrc": "5590:37:23", + "nodeType": "YulFunctionCall", + "src": "5590:37:23" + }, + "nativeSrc": "5590:37:23", + "nodeType": "YulExpressionStatement", + "src": "5590:37:23" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5515:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5568:5:23", + "nodeType": "YulTypedName", + "src": "5568:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5575:3:23", + "nodeType": "YulTypedName", + "src": "5575:3:23", + "type": "" + } + ], + "src": "5515:118:23" + }, + { + "body": { + "nativeSrc": "5737:124:23", + "nodeType": "YulBlock", + "src": "5737:124:23", + "statements": [ + { + "nativeSrc": "5747:26:23", + "nodeType": "YulAssignment", + "src": "5747:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5759:9:23", + "nodeType": "YulIdentifier", + "src": "5759:9:23" + }, + { + "kind": "number", + "nativeSrc": "5770:2:23", + "nodeType": "YulLiteral", + "src": "5770:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5755:3:23", + "nodeType": "YulIdentifier", + "src": "5755:3:23" + }, + "nativeSrc": "5755:18:23", + "nodeType": "YulFunctionCall", + "src": "5755:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5747:4:23", + "nodeType": "YulIdentifier", + "src": "5747:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5827:6:23", + "nodeType": "YulIdentifier", + "src": "5827:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5840:9:23", + "nodeType": "YulIdentifier", + "src": "5840:9:23" + }, + { + "kind": "number", + "nativeSrc": "5851:1:23", + "nodeType": "YulLiteral", + "src": "5851:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5836:3:23", + "nodeType": "YulIdentifier", + "src": "5836:3:23" + }, + "nativeSrc": "5836:17:23", + "nodeType": "YulFunctionCall", + "src": "5836:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5783:43:23", + "nodeType": "YulIdentifier", + "src": "5783:43:23" + }, + "nativeSrc": "5783:71:23", + "nodeType": "YulFunctionCall", + "src": "5783:71:23" + }, + "nativeSrc": "5783:71:23", + "nodeType": "YulExpressionStatement", + "src": "5783:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "5639:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5709:9:23", + "nodeType": "YulTypedName", + "src": "5709:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5721:6:23", + "nodeType": "YulTypedName", + "src": "5721:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5732:4:23", + "nodeType": "YulTypedName", + "src": "5732:4:23", + "type": "" + } + ], + "src": "5639:222:23" + }, + { + "body": { + "nativeSrc": "5933:263:23", + "nodeType": "YulBlock", + "src": "5933:263:23", + "statements": [ + { + "body": { + "nativeSrc": "5979:83:23", + "nodeType": "YulBlock", + "src": "5979:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5981:77:23", + "nodeType": "YulIdentifier", + "src": "5981:77:23" + }, + "nativeSrc": "5981:79:23", + "nodeType": "YulFunctionCall", + "src": "5981:79:23" + }, + "nativeSrc": "5981:79:23", + "nodeType": "YulExpressionStatement", + "src": "5981:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5954:7:23", + "nodeType": "YulIdentifier", + "src": "5954:7:23" + }, + { + "name": "headStart", + "nativeSrc": "5963:9:23", + "nodeType": "YulIdentifier", + "src": "5963:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5950:3:23", + "nodeType": "YulIdentifier", + "src": "5950:3:23" + }, + "nativeSrc": "5950:23:23", + "nodeType": "YulFunctionCall", + "src": "5950:23:23" + }, + { + "kind": "number", + "nativeSrc": "5975:2:23", + "nodeType": "YulLiteral", + "src": "5975:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5946:3:23", + "nodeType": "YulIdentifier", + "src": "5946:3:23" + }, + "nativeSrc": "5946:32:23", + "nodeType": "YulFunctionCall", + "src": "5946:32:23" + }, + "nativeSrc": "5943:119:23", + "nodeType": "YulIf", + "src": "5943:119:23" + }, + { + "nativeSrc": "6072:117:23", + "nodeType": "YulBlock", + "src": "6072:117:23", + "statements": [ + { + "nativeSrc": "6087:15:23", + "nodeType": "YulVariableDeclaration", + "src": "6087:15:23", + "value": { + "kind": "number", + "nativeSrc": "6101:1:23", + "nodeType": "YulLiteral", + "src": "6101:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6091:6:23", + "nodeType": "YulTypedName", + "src": "6091:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "6116:63:23", + "nodeType": "YulAssignment", + "src": "6116:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6151:9:23", + "nodeType": "YulIdentifier", + "src": "6151:9:23" + }, + { + "name": "offset", + "nativeSrc": "6162:6:23", + "nodeType": "YulIdentifier", + "src": "6162:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6147:3:23", + "nodeType": "YulIdentifier", + "src": "6147:3:23" + }, + "nativeSrc": "6147:22:23", + "nodeType": "YulFunctionCall", + "src": "6147:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "6171:7:23", + "nodeType": "YulIdentifier", + "src": "6171:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6126:20:23", + "nodeType": "YulIdentifier", + "src": "6126:20:23" + }, + "nativeSrc": "6126:53:23", + "nodeType": "YulFunctionCall", + "src": "6126:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6116:6:23", + "nodeType": "YulIdentifier", + "src": "6116:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "5867:329:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5903:9:23", + "nodeType": "YulTypedName", + "src": "5903:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5914:7:23", + "nodeType": "YulTypedName", + "src": "5914:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5926:6:23", + "nodeType": "YulTypedName", + "src": "5926:6:23", + "type": "" + } + ], + "src": "5867:329:23" + }, + { + "body": { + "nativeSrc": "6242:76:23", + "nodeType": "YulBlock", + "src": "6242:76:23", + "statements": [ + { + "body": { + "nativeSrc": "6296:16:23", + "nodeType": "YulBlock", + "src": "6296:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6305:1:23", + "nodeType": "YulLiteral", + "src": "6305:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6308:1:23", + "nodeType": "YulLiteral", + "src": "6308:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6298:6:23", + "nodeType": "YulIdentifier", + "src": "6298:6:23" + }, + "nativeSrc": "6298:12:23", + "nodeType": "YulFunctionCall", + "src": "6298:12:23" + }, + "nativeSrc": "6298:12:23", + "nodeType": "YulExpressionStatement", + "src": "6298:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6265:5:23", + "nodeType": "YulIdentifier", + "src": "6265:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6287:5:23", + "nodeType": "YulIdentifier", + "src": "6287:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "6272:14:23", + "nodeType": "YulIdentifier", + "src": "6272:14:23" + }, + "nativeSrc": "6272:21:23", + "nodeType": "YulFunctionCall", + "src": "6272:21:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "6262:2:23", + "nodeType": "YulIdentifier", + "src": "6262:2:23" + }, + "nativeSrc": "6262:32:23", + "nodeType": "YulFunctionCall", + "src": "6262:32:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6255:6:23", + "nodeType": "YulIdentifier", + "src": "6255:6:23" + }, + "nativeSrc": "6255:40:23", + "nodeType": "YulFunctionCall", + "src": "6255:40:23" + }, + "nativeSrc": "6252:60:23", + "nodeType": "YulIf", + "src": "6252:60:23" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "6202:116:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6235:5:23", + "nodeType": "YulTypedName", + "src": "6235:5:23", + "type": "" + } + ], + "src": "6202:116:23" + }, + { + "body": { + "nativeSrc": "6373:84:23", + "nodeType": "YulBlock", + "src": "6373:84:23", + "statements": [ + { + "nativeSrc": "6383:29:23", + "nodeType": "YulAssignment", + "src": "6383:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "6405:6:23", + "nodeType": "YulIdentifier", + "src": "6405:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6392:12:23", + "nodeType": "YulIdentifier", + "src": "6392:12:23" + }, + "nativeSrc": "6392:20:23", + "nodeType": "YulFunctionCall", + "src": "6392:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "6383:5:23", + "nodeType": "YulIdentifier", + "src": "6383:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6445:5:23", + "nodeType": "YulIdentifier", + "src": "6445:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "6421:23:23", + "nodeType": "YulIdentifier", + "src": "6421:23:23" + }, + "nativeSrc": "6421:30:23", + "nodeType": "YulFunctionCall", + "src": "6421:30:23" + }, + "nativeSrc": "6421:30:23", + "nodeType": "YulExpressionStatement", + "src": "6421:30:23" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "6324:133:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "6351:6:23", + "nodeType": "YulTypedName", + "src": "6351:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "6359:3:23", + "nodeType": "YulTypedName", + "src": "6359:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "6367:5:23", + "nodeType": "YulTypedName", + "src": "6367:5:23", + "type": "" + } + ], + "src": "6324:133:23" + }, + { + "body": { + "nativeSrc": "6543:388:23", + "nodeType": "YulBlock", + "src": "6543:388:23", + "statements": [ + { + "body": { + "nativeSrc": "6589:83:23", + "nodeType": "YulBlock", + "src": "6589:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6591:77:23", + "nodeType": "YulIdentifier", + "src": "6591:77:23" + }, + "nativeSrc": "6591:79:23", + "nodeType": "YulFunctionCall", + "src": "6591:79:23" + }, + "nativeSrc": "6591:79:23", + "nodeType": "YulExpressionStatement", + "src": "6591:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6564:7:23", + "nodeType": "YulIdentifier", + "src": "6564:7:23" + }, + { + "name": "headStart", + "nativeSrc": "6573:9:23", + "nodeType": "YulIdentifier", + "src": "6573:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6560:3:23", + "nodeType": "YulIdentifier", + "src": "6560:3:23" + }, + "nativeSrc": "6560:23:23", + "nodeType": "YulFunctionCall", + "src": "6560:23:23" + }, + { + "kind": "number", + "nativeSrc": "6585:2:23", + "nodeType": "YulLiteral", + "src": "6585:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6556:3:23", + "nodeType": "YulIdentifier", + "src": "6556:3:23" + }, + "nativeSrc": "6556:32:23", + "nodeType": "YulFunctionCall", + "src": "6556:32:23" + }, + "nativeSrc": "6553:119:23", + "nodeType": "YulIf", + "src": "6553:119:23" + }, + { + "nativeSrc": "6682:117:23", + "nodeType": "YulBlock", + "src": "6682:117:23", + "statements": [ + { + "nativeSrc": "6697:15:23", + "nodeType": "YulVariableDeclaration", + "src": "6697:15:23", + "value": { + "kind": "number", + "nativeSrc": "6711:1:23", + "nodeType": "YulLiteral", + "src": "6711:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6701:6:23", + "nodeType": "YulTypedName", + "src": "6701:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "6726:63:23", + "nodeType": "YulAssignment", + "src": "6726:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6761:9:23", + "nodeType": "YulIdentifier", + "src": "6761:9:23" + }, + { + "name": "offset", + "nativeSrc": "6772:6:23", + "nodeType": "YulIdentifier", + "src": "6772:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6757:3:23", + "nodeType": "YulIdentifier", + "src": "6757:3:23" + }, + "nativeSrc": "6757:22:23", + "nodeType": "YulFunctionCall", + "src": "6757:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "6781:7:23", + "nodeType": "YulIdentifier", + "src": "6781:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6736:20:23", + "nodeType": "YulIdentifier", + "src": "6736:20:23" + }, + "nativeSrc": "6736:53:23", + "nodeType": "YulFunctionCall", + "src": "6736:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6726:6:23", + "nodeType": "YulIdentifier", + "src": "6726:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "6809:115:23", + "nodeType": "YulBlock", + "src": "6809:115:23", + "statements": [ + { + "nativeSrc": "6824:16:23", + "nodeType": "YulVariableDeclaration", + "src": "6824:16:23", + "value": { + "kind": "number", + "nativeSrc": "6838:2:23", + "nodeType": "YulLiteral", + "src": "6838:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6828:6:23", + "nodeType": "YulTypedName", + "src": "6828:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "6854:60:23", + "nodeType": "YulAssignment", + "src": "6854:60:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6886:9:23", + "nodeType": "YulIdentifier", + "src": "6886:9:23" + }, + { + "name": "offset", + "nativeSrc": "6897:6:23", + "nodeType": "YulIdentifier", + "src": "6897:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6882:3:23", + "nodeType": "YulIdentifier", + "src": "6882:3:23" + }, + "nativeSrc": "6882:22:23", + "nodeType": "YulFunctionCall", + "src": "6882:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "6906:7:23", + "nodeType": "YulIdentifier", + "src": "6906:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "6864:17:23", + "nodeType": "YulIdentifier", + "src": "6864:17:23" + }, + "nativeSrc": "6864:50:23", + "nodeType": "YulFunctionCall", + "src": "6864:50:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6854:6:23", + "nodeType": "YulIdentifier", + "src": "6854:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "6463:468:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6505:9:23", + "nodeType": "YulTypedName", + "src": "6505:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6516:7:23", + "nodeType": "YulTypedName", + "src": "6516:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6528:6:23", + "nodeType": "YulTypedName", + "src": "6528:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6536:6:23", + "nodeType": "YulTypedName", + "src": "6536:6:23", + "type": "" + } + ], + "src": "6463:468:23" + }, + { + "body": { + "nativeSrc": "7026:28:23", + "nodeType": "YulBlock", + "src": "7026:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7043:1:23", + "nodeType": "YulLiteral", + "src": "7043:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7046:1:23", + "nodeType": "YulLiteral", + "src": "7046:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7036:6:23", + "nodeType": "YulIdentifier", + "src": "7036:6:23" + }, + "nativeSrc": "7036:12:23", + "nodeType": "YulFunctionCall", + "src": "7036:12:23" + }, + "nativeSrc": "7036:12:23", + "nodeType": "YulExpressionStatement", + "src": "7036:12:23" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "6937:117:23", + "nodeType": "YulFunctionDefinition", + "src": "6937:117:23" + }, + { + "body": { + "nativeSrc": "7149:28:23", + "nodeType": "YulBlock", + "src": "7149:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7166:1:23", + "nodeType": "YulLiteral", + "src": "7166:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7169:1:23", + "nodeType": "YulLiteral", + "src": "7169:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7159:6:23", + "nodeType": "YulIdentifier", + "src": "7159:6:23" + }, + "nativeSrc": "7159:12:23", + "nodeType": "YulFunctionCall", + "src": "7159:12:23" + }, + "nativeSrc": "7159:12:23", + "nodeType": "YulExpressionStatement", + "src": "7159:12:23" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7060:117:23", + "nodeType": "YulFunctionDefinition", + "src": "7060:117:23" + }, + { + "body": { + "nativeSrc": "7211:152:23", + "nodeType": "YulBlock", + "src": "7211:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7228:1:23", + "nodeType": "YulLiteral", + "src": "7228:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7231:77:23", + "nodeType": "YulLiteral", + "src": "7231:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7221:6:23", + "nodeType": "YulIdentifier", + "src": "7221:6:23" + }, + "nativeSrc": "7221:88:23", + "nodeType": "YulFunctionCall", + "src": "7221:88:23" + }, + "nativeSrc": "7221:88:23", + "nodeType": "YulExpressionStatement", + "src": "7221:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7325:1:23", + "nodeType": "YulLiteral", + "src": "7325:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7328:4:23", + "nodeType": "YulLiteral", + "src": "7328:4:23", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7318:6:23", + "nodeType": "YulIdentifier", + "src": "7318:6:23" + }, + "nativeSrc": "7318:15:23", + "nodeType": "YulFunctionCall", + "src": "7318:15:23" + }, + "nativeSrc": "7318:15:23", + "nodeType": "YulExpressionStatement", + "src": "7318:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7349:1:23", + "nodeType": "YulLiteral", + "src": "7349:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7352:4:23", + "nodeType": "YulLiteral", + "src": "7352:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7342:6:23", + "nodeType": "YulIdentifier", + "src": "7342:6:23" + }, + "nativeSrc": "7342:15:23", + "nodeType": "YulFunctionCall", + "src": "7342:15:23" + }, + "nativeSrc": "7342:15:23", + "nodeType": "YulExpressionStatement", + "src": "7342:15:23" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "7183:180:23", + "nodeType": "YulFunctionDefinition", + "src": "7183:180:23" + }, + { + "body": { + "nativeSrc": "7412:238:23", + "nodeType": "YulBlock", + "src": "7412:238:23", + "statements": [ + { + "nativeSrc": "7422:58:23", + "nodeType": "YulVariableDeclaration", + "src": "7422:58:23", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7444:6:23", + "nodeType": "YulIdentifier", + "src": "7444:6:23" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "7474:4:23", + "nodeType": "YulIdentifier", + "src": "7474:4:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7452:21:23", + "nodeType": "YulIdentifier", + "src": "7452:21:23" + }, + "nativeSrc": "7452:27:23", + "nodeType": "YulFunctionCall", + "src": "7452:27:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7440:3:23", + "nodeType": "YulIdentifier", + "src": "7440:3:23" + }, + "nativeSrc": "7440:40:23", + "nodeType": "YulFunctionCall", + "src": "7440:40:23" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "7426:10:23", + "nodeType": "YulTypedName", + "src": "7426:10:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7591:22:23", + "nodeType": "YulBlock", + "src": "7591:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7593:16:23", + "nodeType": "YulIdentifier", + "src": "7593:16:23" + }, + "nativeSrc": "7593:18:23", + "nodeType": "YulFunctionCall", + "src": "7593:18:23" + }, + "nativeSrc": "7593:18:23", + "nodeType": "YulExpressionStatement", + "src": "7593:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7534:10:23", + "nodeType": "YulIdentifier", + "src": "7534:10:23" + }, + { + "kind": "number", + "nativeSrc": "7546:18:23", + "nodeType": "YulLiteral", + "src": "7546:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7531:2:23", + "nodeType": "YulIdentifier", + "src": "7531:2:23" + }, + "nativeSrc": "7531:34:23", + "nodeType": "YulFunctionCall", + "src": "7531:34:23" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7570:10:23", + "nodeType": "YulIdentifier", + "src": "7570:10:23" + }, + { + "name": "memPtr", + "nativeSrc": "7582:6:23", + "nodeType": "YulIdentifier", + "src": "7582:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7567:2:23", + "nodeType": "YulIdentifier", + "src": "7567:2:23" + }, + "nativeSrc": "7567:22:23", + "nodeType": "YulFunctionCall", + "src": "7567:22:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "7528:2:23", + "nodeType": "YulIdentifier", + "src": "7528:2:23" + }, + "nativeSrc": "7528:62:23", + "nodeType": "YulFunctionCall", + "src": "7528:62:23" + }, + "nativeSrc": "7525:88:23", + "nodeType": "YulIf", + "src": "7525:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7629:2:23", + "nodeType": "YulLiteral", + "src": "7629:2:23", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "7633:10:23", + "nodeType": "YulIdentifier", + "src": "7633:10:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7622:6:23", + "nodeType": "YulIdentifier", + "src": "7622:6:23" + }, + "nativeSrc": "7622:22:23", + "nodeType": "YulFunctionCall", + "src": "7622:22:23" + }, + "nativeSrc": "7622:22:23", + "nodeType": "YulExpressionStatement", + "src": "7622:22:23" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "7369:281:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "7398:6:23", + "nodeType": "YulTypedName", + "src": "7398:6:23", + "type": "" + }, + { + "name": "size", + "nativeSrc": "7406:4:23", + "nodeType": "YulTypedName", + "src": "7406:4:23", + "type": "" + } + ], + "src": "7369:281:23" + }, + { + "body": { + "nativeSrc": "7697:88:23", + "nodeType": "YulBlock", + "src": "7697:88:23", + "statements": [ + { + "nativeSrc": "7707:30:23", + "nodeType": "YulAssignment", + "src": "7707:30:23", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "7717:18:23", + "nodeType": "YulIdentifier", + "src": "7717:18:23" + }, + "nativeSrc": "7717:20:23", + "nodeType": "YulFunctionCall", + "src": "7717:20:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "7707:6:23", + "nodeType": "YulIdentifier", + "src": "7707:6:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7766:6:23", + "nodeType": "YulIdentifier", + "src": "7766:6:23" + }, + { + "name": "size", + "nativeSrc": "7774:4:23", + "nodeType": "YulIdentifier", + "src": "7774:4:23" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "7746:19:23", + "nodeType": "YulIdentifier", + "src": "7746:19:23" + }, + "nativeSrc": "7746:33:23", + "nodeType": "YulFunctionCall", + "src": "7746:33:23" + }, + "nativeSrc": "7746:33:23", + "nodeType": "YulExpressionStatement", + "src": "7746:33:23" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "7656:129:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "7681:4:23", + "nodeType": "YulTypedName", + "src": "7681:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "7690:6:23", + "nodeType": "YulTypedName", + "src": "7690:6:23", + "type": "" + } + ], + "src": "7656:129:23" + }, + { + "body": { + "nativeSrc": "7858:241:23", + "nodeType": "YulBlock", + "src": "7858:241:23", + "statements": [ + { + "body": { + "nativeSrc": "7963:22:23", + "nodeType": "YulBlock", + "src": "7963:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7965:16:23", + "nodeType": "YulIdentifier", + "src": "7965:16:23" + }, + "nativeSrc": "7965:18:23", + "nodeType": "YulFunctionCall", + "src": "7965:18:23" + }, + "nativeSrc": "7965:18:23", + "nodeType": "YulExpressionStatement", + "src": "7965:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7935:6:23", + "nodeType": "YulIdentifier", + "src": "7935:6:23" + }, + { + "kind": "number", + "nativeSrc": "7943:18:23", + "nodeType": "YulLiteral", + "src": "7943:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7932:2:23", + "nodeType": "YulIdentifier", + "src": "7932:2:23" + }, + "nativeSrc": "7932:30:23", + "nodeType": "YulFunctionCall", + "src": "7932:30:23" + }, + "nativeSrc": "7929:56:23", + "nodeType": "YulIf", + "src": "7929:56:23" + }, + { + "nativeSrc": "7995:37:23", + "nodeType": "YulAssignment", + "src": "7995:37:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8025:6:23", + "nodeType": "YulIdentifier", + "src": "8025:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "8003:21:23", + "nodeType": "YulIdentifier", + "src": "8003:21:23" + }, + "nativeSrc": "8003:29:23", + "nodeType": "YulFunctionCall", + "src": "8003:29:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7995:4:23", + "nodeType": "YulIdentifier", + "src": "7995:4:23" + } + ] + }, + { + "nativeSrc": "8069:23:23", + "nodeType": "YulAssignment", + "src": "8069:23:23", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "8081:4:23", + "nodeType": "YulIdentifier", + "src": "8081:4:23" + }, + { + "kind": "number", + "nativeSrc": "8087:4:23", + "nodeType": "YulLiteral", + "src": "8087:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8077:3:23", + "nodeType": "YulIdentifier", + "src": "8077:3:23" + }, + "nativeSrc": "8077:15:23", + "nodeType": "YulFunctionCall", + "src": "8077:15:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8069:4:23", + "nodeType": "YulIdentifier", + "src": "8069:4:23" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7791:308:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "7842:6:23", + "nodeType": "YulTypedName", + "src": "7842:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "7853:4:23", + "nodeType": "YulTypedName", + "src": "7853:4:23", + "type": "" + } + ], + "src": "7791:308:23" + }, + { + "body": { + "nativeSrc": "8169:82:23", + "nodeType": "YulBlock", + "src": "8169:82:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8192:3:23", + "nodeType": "YulIdentifier", + "src": "8192:3:23" + }, + { + "name": "src", + "nativeSrc": "8197:3:23", + "nodeType": "YulIdentifier", + "src": "8197:3:23" + }, + { + "name": "length", + "nativeSrc": "8202:6:23", + "nodeType": "YulIdentifier", + "src": "8202:6:23" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "8179:12:23", + "nodeType": "YulIdentifier", + "src": "8179:12:23" + }, + "nativeSrc": "8179:30:23", + "nodeType": "YulFunctionCall", + "src": "8179:30:23" + }, + "nativeSrc": "8179:30:23", + "nodeType": "YulExpressionStatement", + "src": "8179:30:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8229:3:23", + "nodeType": "YulIdentifier", + "src": "8229:3:23" + }, + { + "name": "length", + "nativeSrc": "8234:6:23", + "nodeType": "YulIdentifier", + "src": "8234:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8225:3:23", + "nodeType": "YulIdentifier", + "src": "8225:3:23" + }, + "nativeSrc": "8225:16:23", + "nodeType": "YulFunctionCall", + "src": "8225:16:23" + }, + { + "kind": "number", + "nativeSrc": "8243:1:23", + "nodeType": "YulLiteral", + "src": "8243:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8218:6:23", + "nodeType": "YulIdentifier", + "src": "8218:6:23" + }, + "nativeSrc": "8218:27:23", + "nodeType": "YulFunctionCall", + "src": "8218:27:23" + }, + "nativeSrc": "8218:27:23", + "nodeType": "YulExpressionStatement", + "src": "8218:27:23" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8105:146:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8151:3:23", + "nodeType": "YulTypedName", + "src": "8151:3:23", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "8156:3:23", + "nodeType": "YulTypedName", + "src": "8156:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8161:6:23", + "nodeType": "YulTypedName", + "src": "8161:6:23", + "type": "" + } + ], + "src": "8105:146:23" + }, + { + "body": { + "nativeSrc": "8341:341:23", + "nodeType": "YulBlock", + "src": "8341:341:23", + "statements": [ + { + "nativeSrc": "8351:75:23", + "nodeType": "YulAssignment", + "src": "8351:75:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8418:6:23", + "nodeType": "YulIdentifier", + "src": "8418:6:23" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "8376:41:23", + "nodeType": "YulIdentifier", + "src": "8376:41:23" + }, + "nativeSrc": "8376:49:23", + "nodeType": "YulFunctionCall", + "src": "8376:49:23" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "8360:15:23", + "nodeType": "YulIdentifier", + "src": "8360:15:23" + }, + "nativeSrc": "8360:66:23", + "nodeType": "YulFunctionCall", + "src": "8360:66:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8351:5:23", + "nodeType": "YulIdentifier", + "src": "8351:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "8442:5:23", + "nodeType": "YulIdentifier", + "src": "8442:5:23" + }, + { + "name": "length", + "nativeSrc": "8449:6:23", + "nodeType": "YulIdentifier", + "src": "8449:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8435:6:23", + "nodeType": "YulIdentifier", + "src": "8435:6:23" + }, + "nativeSrc": "8435:21:23", + "nodeType": "YulFunctionCall", + "src": "8435:21:23" + }, + "nativeSrc": "8435:21:23", + "nodeType": "YulExpressionStatement", + "src": "8435:21:23" + }, + { + "nativeSrc": "8465:27:23", + "nodeType": "YulVariableDeclaration", + "src": "8465:27:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "8480:5:23", + "nodeType": "YulIdentifier", + "src": "8480:5:23" + }, + { + "kind": "number", + "nativeSrc": "8487:4:23", + "nodeType": "YulLiteral", + "src": "8487:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8476:3:23", + "nodeType": "YulIdentifier", + "src": "8476:3:23" + }, + "nativeSrc": "8476:16:23", + "nodeType": "YulFunctionCall", + "src": "8476:16:23" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "8469:3:23", + "nodeType": "YulTypedName", + "src": "8469:3:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8530:83:23", + "nodeType": "YulBlock", + "src": "8530:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "8532:77:23", + "nodeType": "YulIdentifier", + "src": "8532:77:23" + }, + "nativeSrc": "8532:79:23", + "nodeType": "YulFunctionCall", + "src": "8532:79:23" + }, + "nativeSrc": "8532:79:23", + "nodeType": "YulExpressionStatement", + "src": "8532:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8511:3:23", + "nodeType": "YulIdentifier", + "src": "8511:3:23" + }, + { + "name": "length", + "nativeSrc": "8516:6:23", + "nodeType": "YulIdentifier", + "src": "8516:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8507:3:23", + "nodeType": "YulIdentifier", + "src": "8507:3:23" + }, + "nativeSrc": "8507:16:23", + "nodeType": "YulFunctionCall", + "src": "8507:16:23" + }, + { + "name": "end", + "nativeSrc": "8525:3:23", + "nodeType": "YulIdentifier", + "src": "8525:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8504:2:23", + "nodeType": "YulIdentifier", + "src": "8504:2:23" + }, + "nativeSrc": "8504:25:23", + "nodeType": "YulFunctionCall", + "src": "8504:25:23" + }, + "nativeSrc": "8501:112:23", + "nodeType": "YulIf", + "src": "8501:112:23" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "8659:3:23", + "nodeType": "YulIdentifier", + "src": "8659:3:23" + }, + { + "name": "dst", + "nativeSrc": "8664:3:23", + "nodeType": "YulIdentifier", + "src": "8664:3:23" + }, + { + "name": "length", + "nativeSrc": "8669:6:23", + "nodeType": "YulIdentifier", + "src": "8669:6:23" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8622:36:23", + "nodeType": "YulIdentifier", + "src": "8622:36:23" + }, + "nativeSrc": "8622:54:23", + "nodeType": "YulFunctionCall", + "src": "8622:54:23" + }, + "nativeSrc": "8622:54:23", + "nodeType": "YulExpressionStatement", + "src": "8622:54:23" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "8257:425:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8314:3:23", + "nodeType": "YulTypedName", + "src": "8314:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8319:6:23", + "nodeType": "YulTypedName", + "src": "8319:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8327:3:23", + "nodeType": "YulTypedName", + "src": "8327:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8335:5:23", + "nodeType": "YulTypedName", + "src": "8335:5:23", + "type": "" + } + ], + "src": "8257:425:23" + }, + { + "body": { + "nativeSrc": "8764:278:23", + "nodeType": "YulBlock", + "src": "8764:278:23", + "statements": [ + { + "body": { + "nativeSrc": "8813:83:23", + "nodeType": "YulBlock", + "src": "8813:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "8815:77:23", + "nodeType": "YulIdentifier", + "src": "8815:77:23" + }, + "nativeSrc": "8815:79:23", + "nodeType": "YulFunctionCall", + "src": "8815:79:23" + }, + "nativeSrc": "8815:79:23", + "nodeType": "YulExpressionStatement", + "src": "8815:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8792:6:23", + "nodeType": "YulIdentifier", + "src": "8792:6:23" + }, + { + "kind": "number", + "nativeSrc": "8800:4:23", + "nodeType": "YulLiteral", + "src": "8800:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8788:3:23", + "nodeType": "YulIdentifier", + "src": "8788:3:23" + }, + "nativeSrc": "8788:17:23", + "nodeType": "YulFunctionCall", + "src": "8788:17:23" + }, + { + "name": "end", + "nativeSrc": "8807:3:23", + "nodeType": "YulIdentifier", + "src": "8807:3:23" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8784:3:23", + "nodeType": "YulIdentifier", + "src": "8784:3:23" + }, + "nativeSrc": "8784:27:23", + "nodeType": "YulFunctionCall", + "src": "8784:27:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8777:6:23", + "nodeType": "YulIdentifier", + "src": "8777:6:23" + }, + "nativeSrc": "8777:35:23", + "nodeType": "YulFunctionCall", + "src": "8777:35:23" + }, + "nativeSrc": "8774:122:23", + "nodeType": "YulIf", + "src": "8774:122:23" + }, + { + "nativeSrc": "8905:34:23", + "nodeType": "YulVariableDeclaration", + "src": "8905:34:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8932:6:23", + "nodeType": "YulIdentifier", + "src": "8932:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8919:12:23", + "nodeType": "YulIdentifier", + "src": "8919:12:23" + }, + "nativeSrc": "8919:20:23", + "nodeType": "YulFunctionCall", + "src": "8919:20:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8909:6:23", + "nodeType": "YulTypedName", + "src": "8909:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "8948:88:23", + "nodeType": "YulAssignment", + "src": "8948:88:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9009:6:23", + "nodeType": "YulIdentifier", + "src": "9009:6:23" + }, + { + "kind": "number", + "nativeSrc": "9017:4:23", + "nodeType": "YulLiteral", + "src": "9017:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9005:3:23", + "nodeType": "YulIdentifier", + "src": "9005:3:23" + }, + "nativeSrc": "9005:17:23", + "nodeType": "YulFunctionCall", + "src": "9005:17:23" + }, + { + "name": "length", + "nativeSrc": "9024:6:23", + "nodeType": "YulIdentifier", + "src": "9024:6:23" + }, + { + "name": "end", + "nativeSrc": "9032:3:23", + "nodeType": "YulIdentifier", + "src": "9032:3:23" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "8957:47:23", + "nodeType": "YulIdentifier", + "src": "8957:47:23" + }, + "nativeSrc": "8957:79:23", + "nodeType": "YulFunctionCall", + "src": "8957:79:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8948:5:23", + "nodeType": "YulIdentifier", + "src": "8948:5:23" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "8702:340:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8742:6:23", + "nodeType": "YulTypedName", + "src": "8742:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8750:3:23", + "nodeType": "YulTypedName", + "src": "8750:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8758:5:23", + "nodeType": "YulTypedName", + "src": "8758:5:23", + "type": "" + } + ], + "src": "8702:340:23" + }, + { + "body": { + "nativeSrc": "9124:433:23", + "nodeType": "YulBlock", + "src": "9124:433:23", + "statements": [ + { + "body": { + "nativeSrc": "9170:83:23", + "nodeType": "YulBlock", + "src": "9170:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9172:77:23", + "nodeType": "YulIdentifier", + "src": "9172:77:23" + }, + "nativeSrc": "9172:79:23", + "nodeType": "YulFunctionCall", + "src": "9172:79:23" + }, + "nativeSrc": "9172:79:23", + "nodeType": "YulExpressionStatement", + "src": "9172:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9145:7:23", + "nodeType": "YulIdentifier", + "src": "9145:7:23" + }, + { + "name": "headStart", + "nativeSrc": "9154:9:23", + "nodeType": "YulIdentifier", + "src": "9154:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9141:3:23", + "nodeType": "YulIdentifier", + "src": "9141:3:23" + }, + "nativeSrc": "9141:23:23", + "nodeType": "YulFunctionCall", + "src": "9141:23:23" + }, + { + "kind": "number", + "nativeSrc": "9166:2:23", + "nodeType": "YulLiteral", + "src": "9166:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9137:3:23", + "nodeType": "YulIdentifier", + "src": "9137:3:23" + }, + "nativeSrc": "9137:32:23", + "nodeType": "YulFunctionCall", + "src": "9137:32:23" + }, + "nativeSrc": "9134:119:23", + "nodeType": "YulIf", + "src": "9134:119:23" + }, + { + "nativeSrc": "9263:287:23", + "nodeType": "YulBlock", + "src": "9263:287:23", + "statements": [ + { + "nativeSrc": "9278:45:23", + "nodeType": "YulVariableDeclaration", + "src": "9278:45:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9309:9:23", + "nodeType": "YulIdentifier", + "src": "9309:9:23" + }, + { + "kind": "number", + "nativeSrc": "9320:1:23", + "nodeType": "YulLiteral", + "src": "9320:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9305:3:23", + "nodeType": "YulIdentifier", + "src": "9305:3:23" + }, + "nativeSrc": "9305:17:23", + "nodeType": "YulFunctionCall", + "src": "9305:17:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9292:12:23", + "nodeType": "YulIdentifier", + "src": "9292:12:23" + }, + "nativeSrc": "9292:31:23", + "nodeType": "YulFunctionCall", + "src": "9292:31:23" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9282:6:23", + "nodeType": "YulTypedName", + "src": "9282:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9370:83:23", + "nodeType": "YulBlock", + "src": "9370:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "9372:77:23", + "nodeType": "YulIdentifier", + "src": "9372:77:23" + }, + "nativeSrc": "9372:79:23", + "nodeType": "YulFunctionCall", + "src": "9372:79:23" + }, + "nativeSrc": "9372:79:23", + "nodeType": "YulExpressionStatement", + "src": "9372:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9342:6:23", + "nodeType": "YulIdentifier", + "src": "9342:6:23" + }, + { + "kind": "number", + "nativeSrc": "9350:18:23", + "nodeType": "YulLiteral", + "src": "9350:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9339:2:23", + "nodeType": "YulIdentifier", + "src": "9339:2:23" + }, + "nativeSrc": "9339:30:23", + "nodeType": "YulFunctionCall", + "src": "9339:30:23" + }, + "nativeSrc": "9336:117:23", + "nodeType": "YulIf", + "src": "9336:117:23" + }, + { + "nativeSrc": "9467:73:23", + "nodeType": "YulAssignment", + "src": "9467:73:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9512:9:23", + "nodeType": "YulIdentifier", + "src": "9512:9:23" + }, + { + "name": "offset", + "nativeSrc": "9523:6:23", + "nodeType": "YulIdentifier", + "src": "9523:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9508:3:23", + "nodeType": "YulIdentifier", + "src": "9508:3:23" + }, + "nativeSrc": "9508:22:23", + "nodeType": "YulFunctionCall", + "src": "9508:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "9532:7:23", + "nodeType": "YulIdentifier", + "src": "9532:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "9477:30:23", + "nodeType": "YulIdentifier", + "src": "9477:30:23" + }, + "nativeSrc": "9477:63:23", + "nodeType": "YulFunctionCall", + "src": "9477:63:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9467:6:23", + "nodeType": "YulIdentifier", + "src": "9467:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "9048:509:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9094:9:23", + "nodeType": "YulTypedName", + "src": "9094:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9105:7:23", + "nodeType": "YulTypedName", + "src": "9105:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9117:6:23", + "nodeType": "YulTypedName", + "src": "9117:6:23", + "type": "" + } + ], + "src": "9048:509:23" + }, + { + "body": { + "nativeSrc": "9629:241:23", + "nodeType": "YulBlock", + "src": "9629:241:23", + "statements": [ + { + "body": { + "nativeSrc": "9734:22:23", + "nodeType": "YulBlock", + "src": "9734:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "9736:16:23", + "nodeType": "YulIdentifier", + "src": "9736:16:23" + }, + "nativeSrc": "9736:18:23", + "nodeType": "YulFunctionCall", + "src": "9736:18:23" + }, + "nativeSrc": "9736:18:23", + "nodeType": "YulExpressionStatement", + "src": "9736:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9706:6:23", + "nodeType": "YulIdentifier", + "src": "9706:6:23" + }, + { + "kind": "number", + "nativeSrc": "9714:18:23", + "nodeType": "YulLiteral", + "src": "9714:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9703:2:23", + "nodeType": "YulIdentifier", + "src": "9703:2:23" + }, + "nativeSrc": "9703:30:23", + "nodeType": "YulFunctionCall", + "src": "9703:30:23" + }, + "nativeSrc": "9700:56:23", + "nodeType": "YulIf", + "src": "9700:56:23" + }, + { + "nativeSrc": "9766:37:23", + "nodeType": "YulAssignment", + "src": "9766:37:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9796:6:23", + "nodeType": "YulIdentifier", + "src": "9796:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "9774:21:23", + "nodeType": "YulIdentifier", + "src": "9774:21:23" + }, + "nativeSrc": "9774:29:23", + "nodeType": "YulFunctionCall", + "src": "9774:29:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9766:4:23", + "nodeType": "YulIdentifier", + "src": "9766:4:23" + } + ] + }, + { + "nativeSrc": "9840:23:23", + "nodeType": "YulAssignment", + "src": "9840:23:23", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "9852:4:23", + "nodeType": "YulIdentifier", + "src": "9852:4:23" + }, + { + "kind": "number", + "nativeSrc": "9858:4:23", + "nodeType": "YulLiteral", + "src": "9858:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9848:3:23", + "nodeType": "YulIdentifier", + "src": "9848:3:23" + }, + "nativeSrc": "9848:15:23", + "nodeType": "YulFunctionCall", + "src": "9848:15:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9840:4:23", + "nodeType": "YulIdentifier", + "src": "9840:4:23" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9563:307:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "9613:6:23", + "nodeType": "YulTypedName", + "src": "9613:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "9624:4:23", + "nodeType": "YulTypedName", + "src": "9624:4:23", + "type": "" + } + ], + "src": "9563:307:23" + }, + { + "body": { + "nativeSrc": "9959:340:23", + "nodeType": "YulBlock", + "src": "9959:340:23", + "statements": [ + { + "nativeSrc": "9969:74:23", + "nodeType": "YulAssignment", + "src": "9969:74:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "10035:6:23", + "nodeType": "YulIdentifier", + "src": "10035:6:23" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9994:40:23", + "nodeType": "YulIdentifier", + "src": "9994:40:23" + }, + "nativeSrc": "9994:48:23", + "nodeType": "YulFunctionCall", + "src": "9994:48:23" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9978:15:23", + "nodeType": "YulIdentifier", + "src": "9978:15:23" + }, + "nativeSrc": "9978:65:23", + "nodeType": "YulFunctionCall", + "src": "9978:65:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9969:5:23", + "nodeType": "YulIdentifier", + "src": "9969:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10059:5:23", + "nodeType": "YulIdentifier", + "src": "10059:5:23" + }, + { + "name": "length", + "nativeSrc": "10066:6:23", + "nodeType": "YulIdentifier", + "src": "10066:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10052:6:23", + "nodeType": "YulIdentifier", + "src": "10052:6:23" + }, + "nativeSrc": "10052:21:23", + "nodeType": "YulFunctionCall", + "src": "10052:21:23" + }, + "nativeSrc": "10052:21:23", + "nodeType": "YulExpressionStatement", + "src": "10052:21:23" + }, + { + "nativeSrc": "10082:27:23", + "nodeType": "YulVariableDeclaration", + "src": "10082:27:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10097:5:23", + "nodeType": "YulIdentifier", + "src": "10097:5:23" + }, + { + "kind": "number", + "nativeSrc": "10104:4:23", + "nodeType": "YulLiteral", + "src": "10104:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10093:3:23", + "nodeType": "YulIdentifier", + "src": "10093:3:23" + }, + "nativeSrc": "10093:16:23", + "nodeType": "YulFunctionCall", + "src": "10093:16:23" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "10086:3:23", + "nodeType": "YulTypedName", + "src": "10086:3:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10147:83:23", + "nodeType": "YulBlock", + "src": "10147:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "10149:77:23", + "nodeType": "YulIdentifier", + "src": "10149:77:23" + }, + "nativeSrc": "10149:79:23", + "nodeType": "YulFunctionCall", + "src": "10149:79:23" + }, + "nativeSrc": "10149:79:23", + "nodeType": "YulExpressionStatement", + "src": "10149:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "10128:3:23", + "nodeType": "YulIdentifier", + "src": "10128:3:23" + }, + { + "name": "length", + "nativeSrc": "10133:6:23", + "nodeType": "YulIdentifier", + "src": "10133:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10124:3:23", + "nodeType": "YulIdentifier", + "src": "10124:3:23" + }, + "nativeSrc": "10124:16:23", + "nodeType": "YulFunctionCall", + "src": "10124:16:23" + }, + { + "name": "end", + "nativeSrc": "10142:3:23", + "nodeType": "YulIdentifier", + "src": "10142:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10121:2:23", + "nodeType": "YulIdentifier", + "src": "10121:2:23" + }, + "nativeSrc": "10121:25:23", + "nodeType": "YulFunctionCall", + "src": "10121:25:23" + }, + "nativeSrc": "10118:112:23", + "nodeType": "YulIf", + "src": "10118:112:23" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "10276:3:23", + "nodeType": "YulIdentifier", + "src": "10276:3:23" + }, + { + "name": "dst", + "nativeSrc": "10281:3:23", + "nodeType": "YulIdentifier", + "src": "10281:3:23" + }, + { + "name": "length", + "nativeSrc": "10286:6:23", + "nodeType": "YulIdentifier", + "src": "10286:6:23" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "10239:36:23", + "nodeType": "YulIdentifier", + "src": "10239:36:23" + }, + "nativeSrc": "10239:54:23", + "nodeType": "YulFunctionCall", + "src": "10239:54:23" + }, + "nativeSrc": "10239:54:23", + "nodeType": "YulExpressionStatement", + "src": "10239:54:23" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9876:423:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "9932:3:23", + "nodeType": "YulTypedName", + "src": "9932:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9937:6:23", + "nodeType": "YulTypedName", + "src": "9937:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9945:3:23", + "nodeType": "YulTypedName", + "src": "9945:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9953:5:23", + "nodeType": "YulTypedName", + "src": "9953:5:23", + "type": "" + } + ], + "src": "9876:423:23" + }, + { + "body": { + "nativeSrc": "10379:277:23", + "nodeType": "YulBlock", + "src": "10379:277:23", + "statements": [ + { + "body": { + "nativeSrc": "10428:83:23", + "nodeType": "YulBlock", + "src": "10428:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "10430:77:23", + "nodeType": "YulIdentifier", + "src": "10430:77:23" + }, + "nativeSrc": "10430:79:23", + "nodeType": "YulFunctionCall", + "src": "10430:79:23" + }, + "nativeSrc": "10430:79:23", + "nodeType": "YulExpressionStatement", + "src": "10430:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10407:6:23", + "nodeType": "YulIdentifier", + "src": "10407:6:23" + }, + { + "kind": "number", + "nativeSrc": "10415:4:23", + "nodeType": "YulLiteral", + "src": "10415:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10403:3:23", + "nodeType": "YulIdentifier", + "src": "10403:3:23" + }, + "nativeSrc": "10403:17:23", + "nodeType": "YulFunctionCall", + "src": "10403:17:23" + }, + { + "name": "end", + "nativeSrc": "10422:3:23", + "nodeType": "YulIdentifier", + "src": "10422:3:23" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10399:3:23", + "nodeType": "YulIdentifier", + "src": "10399:3:23" + }, + "nativeSrc": "10399:27:23", + "nodeType": "YulFunctionCall", + "src": "10399:27:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10392:6:23", + "nodeType": "YulIdentifier", + "src": "10392:6:23" + }, + "nativeSrc": "10392:35:23", + "nodeType": "YulFunctionCall", + "src": "10392:35:23" + }, + "nativeSrc": "10389:122:23", + "nodeType": "YulIf", + "src": "10389:122:23" + }, + { + "nativeSrc": "10520:34:23", + "nodeType": "YulVariableDeclaration", + "src": "10520:34:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10547:6:23", + "nodeType": "YulIdentifier", + "src": "10547:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10534:12:23", + "nodeType": "YulIdentifier", + "src": "10534:12:23" + }, + "nativeSrc": "10534:20:23", + "nodeType": "YulFunctionCall", + "src": "10534:20:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10524:6:23", + "nodeType": "YulTypedName", + "src": "10524:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "10563:87:23", + "nodeType": "YulAssignment", + "src": "10563:87:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10623:6:23", + "nodeType": "YulIdentifier", + "src": "10623:6:23" + }, + { + "kind": "number", + "nativeSrc": "10631:4:23", + "nodeType": "YulLiteral", + "src": "10631:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10619:3:23", + "nodeType": "YulIdentifier", + "src": "10619:3:23" + }, + "nativeSrc": "10619:17:23", + "nodeType": "YulFunctionCall", + "src": "10619:17:23" + }, + { + "name": "length", + "nativeSrc": "10638:6:23", + "nodeType": "YulIdentifier", + "src": "10638:6:23" + }, + { + "name": "end", + "nativeSrc": "10646:3:23", + "nodeType": "YulIdentifier", + "src": "10646:3:23" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "10572:46:23", + "nodeType": "YulIdentifier", + "src": "10572:46:23" + }, + "nativeSrc": "10572:78:23", + "nodeType": "YulFunctionCall", + "src": "10572:78:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "10563:5:23", + "nodeType": "YulIdentifier", + "src": "10563:5:23" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "10318:338:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "10357:6:23", + "nodeType": "YulTypedName", + "src": "10357:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "10365:3:23", + "nodeType": "YulTypedName", + "src": "10365:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "10373:5:23", + "nodeType": "YulTypedName", + "src": "10373:5:23", + "type": "" + } + ], + "src": "10318:338:23" + }, + { + "body": { + "nativeSrc": "10788:817:23", + "nodeType": "YulBlock", + "src": "10788:817:23", + "statements": [ + { + "body": { + "nativeSrc": "10835:83:23", + "nodeType": "YulBlock", + "src": "10835:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10837:77:23", + "nodeType": "YulIdentifier", + "src": "10837:77:23" + }, + "nativeSrc": "10837:79:23", + "nodeType": "YulFunctionCall", + "src": "10837:79:23" + }, + "nativeSrc": "10837:79:23", + "nodeType": "YulExpressionStatement", + "src": "10837:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10809:7:23", + "nodeType": "YulIdentifier", + "src": "10809:7:23" + }, + { + "name": "headStart", + "nativeSrc": "10818:9:23", + "nodeType": "YulIdentifier", + "src": "10818:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10805:3:23", + "nodeType": "YulIdentifier", + "src": "10805:3:23" + }, + "nativeSrc": "10805:23:23", + "nodeType": "YulFunctionCall", + "src": "10805:23:23" + }, + { + "kind": "number", + "nativeSrc": "10830:3:23", + "nodeType": "YulLiteral", + "src": "10830:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10801:3:23", + "nodeType": "YulIdentifier", + "src": "10801:3:23" + }, + "nativeSrc": "10801:33:23", + "nodeType": "YulFunctionCall", + "src": "10801:33:23" + }, + "nativeSrc": "10798:120:23", + "nodeType": "YulIf", + "src": "10798:120:23" + }, + { + "nativeSrc": "10928:117:23", + "nodeType": "YulBlock", + "src": "10928:117:23", + "statements": [ + { + "nativeSrc": "10943:15:23", + "nodeType": "YulVariableDeclaration", + "src": "10943:15:23", + "value": { + "kind": "number", + "nativeSrc": "10957:1:23", + "nodeType": "YulLiteral", + "src": "10957:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10947:6:23", + "nodeType": "YulTypedName", + "src": "10947:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "10972:63:23", + "nodeType": "YulAssignment", + "src": "10972:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11007:9:23", + "nodeType": "YulIdentifier", + "src": "11007:9:23" + }, + { + "name": "offset", + "nativeSrc": "11018:6:23", + "nodeType": "YulIdentifier", + "src": "11018:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11003:3:23", + "nodeType": "YulIdentifier", + "src": "11003:3:23" + }, + "nativeSrc": "11003:22:23", + "nodeType": "YulFunctionCall", + "src": "11003:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11027:7:23", + "nodeType": "YulIdentifier", + "src": "11027:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10982:20:23", + "nodeType": "YulIdentifier", + "src": "10982:20:23" + }, + "nativeSrc": "10982:53:23", + "nodeType": "YulFunctionCall", + "src": "10982:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10972:6:23", + "nodeType": "YulIdentifier", + "src": "10972:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11055:118:23", + "nodeType": "YulBlock", + "src": "11055:118:23", + "statements": [ + { + "nativeSrc": "11070:16:23", + "nodeType": "YulVariableDeclaration", + "src": "11070:16:23", + "value": { + "kind": "number", + "nativeSrc": "11084:2:23", + "nodeType": "YulLiteral", + "src": "11084:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11074:6:23", + "nodeType": "YulTypedName", + "src": "11074:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "11100:63:23", + "nodeType": "YulAssignment", + "src": "11100:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11135:9:23", + "nodeType": "YulIdentifier", + "src": "11135:9:23" + }, + { + "name": "offset", + "nativeSrc": "11146:6:23", + "nodeType": "YulIdentifier", + "src": "11146:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11131:3:23", + "nodeType": "YulIdentifier", + "src": "11131:3:23" + }, + "nativeSrc": "11131:22:23", + "nodeType": "YulFunctionCall", + "src": "11131:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11155:7:23", + "nodeType": "YulIdentifier", + "src": "11155:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11110:20:23", + "nodeType": "YulIdentifier", + "src": "11110:20:23" + }, + "nativeSrc": "11110:53:23", + "nodeType": "YulFunctionCall", + "src": "11110:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11100:6:23", + "nodeType": "YulIdentifier", + "src": "11100:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11183:118:23", + "nodeType": "YulBlock", + "src": "11183:118:23", + "statements": [ + { + "nativeSrc": "11198:16:23", + "nodeType": "YulVariableDeclaration", + "src": "11198:16:23", + "value": { + "kind": "number", + "nativeSrc": "11212:2:23", + "nodeType": "YulLiteral", + "src": "11212:2:23", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11202:6:23", + "nodeType": "YulTypedName", + "src": "11202:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "11228:63:23", + "nodeType": "YulAssignment", + "src": "11228:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11263:9:23", + "nodeType": "YulIdentifier", + "src": "11263:9:23" + }, + { + "name": "offset", + "nativeSrc": "11274:6:23", + "nodeType": "YulIdentifier", + "src": "11274:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11259:3:23", + "nodeType": "YulIdentifier", + "src": "11259:3:23" + }, + "nativeSrc": "11259:22:23", + "nodeType": "YulFunctionCall", + "src": "11259:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11283:7:23", + "nodeType": "YulIdentifier", + "src": "11283:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "11238:20:23", + "nodeType": "YulIdentifier", + "src": "11238:20:23" + }, + "nativeSrc": "11238:53:23", + "nodeType": "YulFunctionCall", + "src": "11238:53:23" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11228:6:23", + "nodeType": "YulIdentifier", + "src": "11228:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11311:287:23", + "nodeType": "YulBlock", + "src": "11311:287:23", + "statements": [ + { + "nativeSrc": "11326:46:23", + "nodeType": "YulVariableDeclaration", + "src": "11326:46:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11357:9:23", + "nodeType": "YulIdentifier", + "src": "11357:9:23" + }, + { + "kind": "number", + "nativeSrc": "11368:2:23", + "nodeType": "YulLiteral", + "src": "11368:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11353:3:23", + "nodeType": "YulIdentifier", + "src": "11353:3:23" + }, + "nativeSrc": "11353:18:23", + "nodeType": "YulFunctionCall", + "src": "11353:18:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11340:12:23", + "nodeType": "YulIdentifier", + "src": "11340:12:23" + }, + "nativeSrc": "11340:32:23", + "nodeType": "YulFunctionCall", + "src": "11340:32:23" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11330:6:23", + "nodeType": "YulTypedName", + "src": "11330:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11419:83:23", + "nodeType": "YulBlock", + "src": "11419:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "11421:77:23", + "nodeType": "YulIdentifier", + "src": "11421:77:23" + }, + "nativeSrc": "11421:79:23", + "nodeType": "YulFunctionCall", + "src": "11421:79:23" + }, + "nativeSrc": "11421:79:23", + "nodeType": "YulExpressionStatement", + "src": "11421:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11391:6:23", + "nodeType": "YulIdentifier", + "src": "11391:6:23" + }, + { + "kind": "number", + "nativeSrc": "11399:18:23", + "nodeType": "YulLiteral", + "src": "11399:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11388:2:23", + "nodeType": "YulIdentifier", + "src": "11388:2:23" + }, + "nativeSrc": "11388:30:23", + "nodeType": "YulFunctionCall", + "src": "11388:30:23" + }, + "nativeSrc": "11385:117:23", + "nodeType": "YulIf", + "src": "11385:117:23" + }, + { + "nativeSrc": "11516:72:23", + "nodeType": "YulAssignment", + "src": "11516:72:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11560:9:23", + "nodeType": "YulIdentifier", + "src": "11560:9:23" + }, + { + "name": "offset", + "nativeSrc": "11571:6:23", + "nodeType": "YulIdentifier", + "src": "11571:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11556:3:23", + "nodeType": "YulIdentifier", + "src": "11556:3:23" + }, + "nativeSrc": "11556:22:23", + "nodeType": "YulFunctionCall", + "src": "11556:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11580:7:23", + "nodeType": "YulIdentifier", + "src": "11580:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11526:29:23", + "nodeType": "YulIdentifier", + "src": "11526:29:23" + }, + "nativeSrc": "11526:62:23", + "nodeType": "YulFunctionCall", + "src": "11526:62:23" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "11516:6:23", + "nodeType": "YulIdentifier", + "src": "11516:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "10662:943:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10734:9:23", + "nodeType": "YulTypedName", + "src": "10734:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10745:7:23", + "nodeType": "YulTypedName", + "src": "10745:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10757:6:23", + "nodeType": "YulTypedName", + "src": "10757:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10765:6:23", + "nodeType": "YulTypedName", + "src": "10765:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10773:6:23", + "nodeType": "YulTypedName", + "src": "10773:6:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "10781:6:23", + "nodeType": "YulTypedName", + "src": "10781:6:23", + "type": "" + } + ], + "src": "10662:943:23" + }, + { + "body": { + "nativeSrc": "11694:391:23", + "nodeType": "YulBlock", + "src": "11694:391:23", + "statements": [ + { + "body": { + "nativeSrc": "11740:83:23", + "nodeType": "YulBlock", + "src": "11740:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11742:77:23", + "nodeType": "YulIdentifier", + "src": "11742:77:23" + }, + "nativeSrc": "11742:79:23", + "nodeType": "YulFunctionCall", + "src": "11742:79:23" + }, + "nativeSrc": "11742:79:23", + "nodeType": "YulExpressionStatement", + "src": "11742:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11715:7:23", + "nodeType": "YulIdentifier", + "src": "11715:7:23" + }, + { + "name": "headStart", + "nativeSrc": "11724:9:23", + "nodeType": "YulIdentifier", + "src": "11724:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11711:3:23", + "nodeType": "YulIdentifier", + "src": "11711:3:23" + }, + "nativeSrc": "11711:23:23", + "nodeType": "YulFunctionCall", + "src": "11711:23:23" + }, + { + "kind": "number", + "nativeSrc": "11736:2:23", + "nodeType": "YulLiteral", + "src": "11736:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11707:3:23", + "nodeType": "YulIdentifier", + "src": "11707:3:23" + }, + "nativeSrc": "11707:32:23", + "nodeType": "YulFunctionCall", + "src": "11707:32:23" + }, + "nativeSrc": "11704:119:23", + "nodeType": "YulIf", + "src": "11704:119:23" + }, + { + "nativeSrc": "11833:117:23", + "nodeType": "YulBlock", + "src": "11833:117:23", + "statements": [ + { + "nativeSrc": "11848:15:23", + "nodeType": "YulVariableDeclaration", + "src": "11848:15:23", + "value": { + "kind": "number", + "nativeSrc": "11862:1:23", + "nodeType": "YulLiteral", + "src": "11862:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11852:6:23", + "nodeType": "YulTypedName", + "src": "11852:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "11877:63:23", + "nodeType": "YulAssignment", + "src": "11877:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11912:9:23", + "nodeType": "YulIdentifier", + "src": "11912:9:23" + }, + { + "name": "offset", + "nativeSrc": "11923:6:23", + "nodeType": "YulIdentifier", + "src": "11923:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11908:3:23", + "nodeType": "YulIdentifier", + "src": "11908:3:23" + }, + "nativeSrc": "11908:22:23", + "nodeType": "YulFunctionCall", + "src": "11908:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "11932:7:23", + "nodeType": "YulIdentifier", + "src": "11932:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11887:20:23", + "nodeType": "YulIdentifier", + "src": "11887:20:23" + }, + "nativeSrc": "11887:53:23", + "nodeType": "YulFunctionCall", + "src": "11887:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11877:6:23", + "nodeType": "YulIdentifier", + "src": "11877:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "11960:118:23", + "nodeType": "YulBlock", + "src": "11960:118:23", + "statements": [ + { + "nativeSrc": "11975:16:23", + "nodeType": "YulVariableDeclaration", + "src": "11975:16:23", + "value": { + "kind": "number", + "nativeSrc": "11989:2:23", + "nodeType": "YulLiteral", + "src": "11989:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11979:6:23", + "nodeType": "YulTypedName", + "src": "11979:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "12005:63:23", + "nodeType": "YulAssignment", + "src": "12005:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12040:9:23", + "nodeType": "YulIdentifier", + "src": "12040:9:23" + }, + { + "name": "offset", + "nativeSrc": "12051:6:23", + "nodeType": "YulIdentifier", + "src": "12051:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12036:3:23", + "nodeType": "YulIdentifier", + "src": "12036:3:23" + }, + "nativeSrc": "12036:22:23", + "nodeType": "YulFunctionCall", + "src": "12036:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "12060:7:23", + "nodeType": "YulIdentifier", + "src": "12060:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12015:20:23", + "nodeType": "YulIdentifier", + "src": "12015:20:23" + }, + "nativeSrc": "12015:53:23", + "nodeType": "YulFunctionCall", + "src": "12015:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12005:6:23", + "nodeType": "YulIdentifier", + "src": "12005:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "11611:474:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11656:9:23", + "nodeType": "YulTypedName", + "src": "11656:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11667:7:23", + "nodeType": "YulTypedName", + "src": "11667:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11679:6:23", + "nodeType": "YulTypedName", + "src": "11679:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11687:6:23", + "nodeType": "YulTypedName", + "src": "11687:6:23", + "type": "" + } + ], + "src": "11611:474:23" + }, + { + "body": { + "nativeSrc": "12119:152:23", + "nodeType": "YulBlock", + "src": "12119:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12136:1:23", + "nodeType": "YulLiteral", + "src": "12136:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12139:77:23", + "nodeType": "YulLiteral", + "src": "12139:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12129:6:23", + "nodeType": "YulIdentifier", + "src": "12129:6:23" + }, + "nativeSrc": "12129:88:23", + "nodeType": "YulFunctionCall", + "src": "12129:88:23" + }, + "nativeSrc": "12129:88:23", + "nodeType": "YulExpressionStatement", + "src": "12129:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12233:1:23", + "nodeType": "YulLiteral", + "src": "12233:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12236:4:23", + "nodeType": "YulLiteral", + "src": "12236:4:23", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12226:6:23", + "nodeType": "YulIdentifier", + "src": "12226:6:23" + }, + "nativeSrc": "12226:15:23", + "nodeType": "YulFunctionCall", + "src": "12226:15:23" + }, + "nativeSrc": "12226:15:23", + "nodeType": "YulExpressionStatement", + "src": "12226:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12257:1:23", + "nodeType": "YulLiteral", + "src": "12257:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12260:4:23", + "nodeType": "YulLiteral", + "src": "12260:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12250:6:23", + "nodeType": "YulIdentifier", + "src": "12250:6:23" + }, + "nativeSrc": "12250:15:23", + "nodeType": "YulFunctionCall", + "src": "12250:15:23" + }, + "nativeSrc": "12250:15:23", + "nodeType": "YulExpressionStatement", + "src": "12250:15:23" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "12091:180:23", + "nodeType": "YulFunctionDefinition", + "src": "12091:180:23" + }, + { + "body": { + "nativeSrc": "12328:269:23", + "nodeType": "YulBlock", + "src": "12328:269:23", + "statements": [ + { + "nativeSrc": "12338:22:23", + "nodeType": "YulAssignment", + "src": "12338:22:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12352:4:23", + "nodeType": "YulIdentifier", + "src": "12352:4:23" + }, + { + "kind": "number", + "nativeSrc": "12358:1:23", + "nodeType": "YulLiteral", + "src": "12358:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "12348:3:23", + "nodeType": "YulIdentifier", + "src": "12348:3:23" + }, + "nativeSrc": "12348:12:23", + "nodeType": "YulFunctionCall", + "src": "12348:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12338:6:23", + "nodeType": "YulIdentifier", + "src": "12338:6:23" + } + ] + }, + { + "nativeSrc": "12369:38:23", + "nodeType": "YulVariableDeclaration", + "src": "12369:38:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12399:4:23", + "nodeType": "YulIdentifier", + "src": "12399:4:23" + }, + { + "kind": "number", + "nativeSrc": "12405:1:23", + "nodeType": "YulLiteral", + "src": "12405:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12395:3:23", + "nodeType": "YulIdentifier", + "src": "12395:3:23" + }, + "nativeSrc": "12395:12:23", + "nodeType": "YulFunctionCall", + "src": "12395:12:23" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12373:18:23", + "nodeType": "YulTypedName", + "src": "12373:18:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12446:51:23", + "nodeType": "YulBlock", + "src": "12446:51:23", + "statements": [ + { + "nativeSrc": "12460:27:23", + "nodeType": "YulAssignment", + "src": "12460:27:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12474:6:23", + "nodeType": "YulIdentifier", + "src": "12474:6:23" + }, + { + "kind": "number", + "nativeSrc": "12482:4:23", + "nodeType": "YulLiteral", + "src": "12482:4:23", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12470:3:23", + "nodeType": "YulIdentifier", + "src": "12470:3:23" + }, + "nativeSrc": "12470:17:23", + "nodeType": "YulFunctionCall", + "src": "12470:17:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12460:6:23", + "nodeType": "YulIdentifier", + "src": "12460:6:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12426:18:23", + "nodeType": "YulIdentifier", + "src": "12426:18:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12419:6:23", + "nodeType": "YulIdentifier", + "src": "12419:6:23" + }, + "nativeSrc": "12419:26:23", + "nodeType": "YulFunctionCall", + "src": "12419:26:23" + }, + "nativeSrc": "12416:81:23", + "nodeType": "YulIf", + "src": "12416:81:23" + }, + { + "body": { + "nativeSrc": "12549:42:23", + "nodeType": "YulBlock", + "src": "12549:42:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "12563:16:23", + "nodeType": "YulIdentifier", + "src": "12563:16:23" + }, + "nativeSrc": "12563:18:23", + "nodeType": "YulFunctionCall", + "src": "12563:18:23" + }, + "nativeSrc": "12563:18:23", + "nodeType": "YulExpressionStatement", + "src": "12563:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12513:18:23", + "nodeType": "YulIdentifier", + "src": "12513:18:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12536:6:23", + "nodeType": "YulIdentifier", + "src": "12536:6:23" + }, + { + "kind": "number", + "nativeSrc": "12544:2:23", + "nodeType": "YulLiteral", + "src": "12544:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12533:2:23", + "nodeType": "YulIdentifier", + "src": "12533:2:23" + }, + "nativeSrc": "12533:14:23", + "nodeType": "YulFunctionCall", + "src": "12533:14:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "12510:2:23", + "nodeType": "YulIdentifier", + "src": "12510:2:23" + }, + "nativeSrc": "12510:38:23", + "nodeType": "YulFunctionCall", + "src": "12510:38:23" + }, + "nativeSrc": "12507:84:23", + "nodeType": "YulIf", + "src": "12507:84:23" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "12277:320:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "12312:4:23", + "nodeType": "YulTypedName", + "src": "12312:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "12321:6:23", + "nodeType": "YulTypedName", + "src": "12321:6:23", + "type": "" + } + ], + "src": "12277:320:23" + }, + { + "body": { + "nativeSrc": "12709:73:23", + "nodeType": "YulBlock", + "src": "12709:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12731:6:23", + "nodeType": "YulIdentifier", + "src": "12731:6:23" + }, + { + "kind": "number", + "nativeSrc": "12739:1:23", + "nodeType": "YulLiteral", + "src": "12739:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12727:3:23", + "nodeType": "YulIdentifier", + "src": "12727:3:23" + }, + "nativeSrc": "12727:14:23", + "nodeType": "YulFunctionCall", + "src": "12727:14:23" + }, + { + "hexValue": "302e3030303120657468657220726571756972656420746f206d696e74", + "kind": "string", + "nativeSrc": "12743:31:23", + "nodeType": "YulLiteral", + "src": "12743:31:23", + "type": "", + "value": "0.0001 ether required to mint" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12720:6:23", + "nodeType": "YulIdentifier", + "src": "12720:6:23" + }, + "nativeSrc": "12720:55:23", + "nodeType": "YulFunctionCall", + "src": "12720:55:23" + }, + "nativeSrc": "12720:55:23", + "nodeType": "YulExpressionStatement", + "src": "12720:55:23" + } + ] + }, + "name": "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "nativeSrc": "12603:179:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "12701:6:23", + "nodeType": "YulTypedName", + "src": "12701:6:23", + "type": "" + } + ], + "src": "12603:179:23" + }, + { + "body": { + "nativeSrc": "12934:220:23", + "nodeType": "YulBlock", + "src": "12934:220:23", + "statements": [ + { + "nativeSrc": "12944:74:23", + "nodeType": "YulAssignment", + "src": "12944:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13010:3:23", + "nodeType": "YulIdentifier", + "src": "13010:3:23" + }, + { + "kind": "number", + "nativeSrc": "13015:2:23", + "nodeType": "YulLiteral", + "src": "13015:2:23", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "12951:58:23", + "nodeType": "YulIdentifier", + "src": "12951:58:23" + }, + "nativeSrc": "12951:67:23", + "nodeType": "YulFunctionCall", + "src": "12951:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12944:3:23", + "nodeType": "YulIdentifier", + "src": "12944:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13116:3:23", + "nodeType": "YulIdentifier", + "src": "13116:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "nativeSrc": "13027:88:23", + "nodeType": "YulIdentifier", + "src": "13027:88:23" + }, + "nativeSrc": "13027:93:23", + "nodeType": "YulFunctionCall", + "src": "13027:93:23" + }, + "nativeSrc": "13027:93:23", + "nodeType": "YulExpressionStatement", + "src": "13027:93:23" + }, + { + "nativeSrc": "13129:19:23", + "nodeType": "YulAssignment", + "src": "13129:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13140:3:23", + "nodeType": "YulIdentifier", + "src": "13140:3:23" + }, + { + "kind": "number", + "nativeSrc": "13145:2:23", + "nodeType": "YulLiteral", + "src": "13145:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13136:3:23", + "nodeType": "YulIdentifier", + "src": "13136:3:23" + }, + "nativeSrc": "13136:12:23", + "nodeType": "YulFunctionCall", + "src": "13136:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13129:3:23", + "nodeType": "YulIdentifier", + "src": "13129:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12788:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "12922:3:23", + "nodeType": "YulTypedName", + "src": "12922:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "12930:3:23", + "nodeType": "YulTypedName", + "src": "12930:3:23", + "type": "" + } + ], + "src": "12788:366:23" + }, + { + "body": { + "nativeSrc": "13331:248:23", + "nodeType": "YulBlock", + "src": "13331:248:23", + "statements": [ + { + "nativeSrc": "13341:26:23", + "nodeType": "YulAssignment", + "src": "13341:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13353:9:23", + "nodeType": "YulIdentifier", + "src": "13353:9:23" + }, + { + "kind": "number", + "nativeSrc": "13364:2:23", + "nodeType": "YulLiteral", + "src": "13364:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13349:3:23", + "nodeType": "YulIdentifier", + "src": "13349:3:23" + }, + "nativeSrc": "13349:18:23", + "nodeType": "YulFunctionCall", + "src": "13349:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13341:4:23", + "nodeType": "YulIdentifier", + "src": "13341:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13388:9:23", + "nodeType": "YulIdentifier", + "src": "13388:9:23" + }, + { + "kind": "number", + "nativeSrc": "13399:1:23", + "nodeType": "YulLiteral", + "src": "13399:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13384:3:23", + "nodeType": "YulIdentifier", + "src": "13384:3:23" + }, + "nativeSrc": "13384:17:23", + "nodeType": "YulFunctionCall", + "src": "13384:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13407:4:23", + "nodeType": "YulIdentifier", + "src": "13407:4:23" + }, + { + "name": "headStart", + "nativeSrc": "13413:9:23", + "nodeType": "YulIdentifier", + "src": "13413:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13403:3:23", + "nodeType": "YulIdentifier", + "src": "13403:3:23" + }, + "nativeSrc": "13403:20:23", + "nodeType": "YulFunctionCall", + "src": "13403:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13377:6:23", + "nodeType": "YulIdentifier", + "src": "13377:6:23" + }, + "nativeSrc": "13377:47:23", + "nodeType": "YulFunctionCall", + "src": "13377:47:23" + }, + "nativeSrc": "13377:47:23", + "nodeType": "YulExpressionStatement", + "src": "13377:47:23" + }, + { + "nativeSrc": "13433:139:23", + "nodeType": "YulAssignment", + "src": "13433:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13567:4:23", + "nodeType": "YulIdentifier", + "src": "13567:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13441:124:23", + "nodeType": "YulIdentifier", + "src": "13441:124:23" + }, + "nativeSrc": "13441:131:23", + "nodeType": "YulFunctionCall", + "src": "13441:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13433:4:23", + "nodeType": "YulIdentifier", + "src": "13433:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13160:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13311:9:23", + "nodeType": "YulTypedName", + "src": "13311:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13326:4:23", + "nodeType": "YulTypedName", + "src": "13326:4:23", + "type": "" + } + ], + "src": "13160:419:23" + }, + { + "body": { + "nativeSrc": "13613:152:23", + "nodeType": "YulBlock", + "src": "13613:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13630:1:23", + "nodeType": "YulLiteral", + "src": "13630:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13633:77:23", + "nodeType": "YulLiteral", + "src": "13633:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13623:6:23", + "nodeType": "YulIdentifier", + "src": "13623:6:23" + }, + "nativeSrc": "13623:88:23", + "nodeType": "YulFunctionCall", + "src": "13623:88:23" + }, + "nativeSrc": "13623:88:23", + "nodeType": "YulExpressionStatement", + "src": "13623:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13727:1:23", + "nodeType": "YulLiteral", + "src": "13727:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "13730:4:23", + "nodeType": "YulLiteral", + "src": "13730:4:23", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13720:6:23", + "nodeType": "YulIdentifier", + "src": "13720:6:23" + }, + "nativeSrc": "13720:15:23", + "nodeType": "YulFunctionCall", + "src": "13720:15:23" + }, + "nativeSrc": "13720:15:23", + "nodeType": "YulExpressionStatement", + "src": "13720:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13751:1:23", + "nodeType": "YulLiteral", + "src": "13751:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13754:4:23", + "nodeType": "YulLiteral", + "src": "13754:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13744:6:23", + "nodeType": "YulIdentifier", + "src": "13744:6:23" + }, + "nativeSrc": "13744:15:23", + "nodeType": "YulFunctionCall", + "src": "13744:15:23" + }, + "nativeSrc": "13744:15:23", + "nodeType": "YulExpressionStatement", + "src": "13744:15:23" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "13585:180:23", + "nodeType": "YulFunctionDefinition", + "src": "13585:180:23" + }, + { + "body": { + "nativeSrc": "13814:190:23", + "nodeType": "YulBlock", + "src": "13814:190:23", + "statements": [ + { + "nativeSrc": "13824:33:23", + "nodeType": "YulAssignment", + "src": "13824:33:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13851:5:23", + "nodeType": "YulIdentifier", + "src": "13851:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "13833:17:23", + "nodeType": "YulIdentifier", + "src": "13833:17:23" + }, + "nativeSrc": "13833:24:23", + "nodeType": "YulFunctionCall", + "src": "13833:24:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13824:5:23", + "nodeType": "YulIdentifier", + "src": "13824:5:23" + } + ] + }, + { + "body": { + "nativeSrc": "13947:22:23", + "nodeType": "YulBlock", + "src": "13947:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "13949:16:23", + "nodeType": "YulIdentifier", + "src": "13949:16:23" + }, + "nativeSrc": "13949:18:23", + "nodeType": "YulFunctionCall", + "src": "13949:18:23" + }, + "nativeSrc": "13949:18:23", + "nodeType": "YulExpressionStatement", + "src": "13949:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13872:5:23", + "nodeType": "YulIdentifier", + "src": "13872:5:23" + }, + { + "kind": "number", + "nativeSrc": "13879:66:23", + "nodeType": "YulLiteral", + "src": "13879:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "13869:2:23", + "nodeType": "YulIdentifier", + "src": "13869:2:23" + }, + "nativeSrc": "13869:77:23", + "nodeType": "YulFunctionCall", + "src": "13869:77:23" + }, + "nativeSrc": "13866:103:23", + "nodeType": "YulIf", + "src": "13866:103:23" + }, + { + "nativeSrc": "13978:20:23", + "nodeType": "YulAssignment", + "src": "13978:20:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13989:5:23", + "nodeType": "YulIdentifier", + "src": "13989:5:23" + }, + { + "kind": "number", + "nativeSrc": "13996:1:23", + "nodeType": "YulLiteral", + "src": "13996:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13985:3:23", + "nodeType": "YulIdentifier", + "src": "13985:3:23" + }, + "nativeSrc": "13985:13:23", + "nodeType": "YulFunctionCall", + "src": "13985:13:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "13978:3:23", + "nodeType": "YulIdentifier", + "src": "13978:3:23" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "13771:233:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "13800:5:23", + "nodeType": "YulTypedName", + "src": "13800:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "13810:3:23", + "nodeType": "YulTypedName", + "src": "13810:3:23", + "type": "" + } + ], + "src": "13771:233:23" + }, + { + "body": { + "nativeSrc": "14164:288:23", + "nodeType": "YulBlock", + "src": "14164:288:23", + "statements": [ + { + "nativeSrc": "14174:26:23", + "nodeType": "YulAssignment", + "src": "14174:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14186:9:23", + "nodeType": "YulIdentifier", + "src": "14186:9:23" + }, + { + "kind": "number", + "nativeSrc": "14197:2:23", + "nodeType": "YulLiteral", + "src": "14197:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14182:3:23", + "nodeType": "YulIdentifier", + "src": "14182:3:23" + }, + "nativeSrc": "14182:18:23", + "nodeType": "YulFunctionCall", + "src": "14182:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14174:4:23", + "nodeType": "YulIdentifier", + "src": "14174:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14254:6:23", + "nodeType": "YulIdentifier", + "src": "14254:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14267:9:23", + "nodeType": "YulIdentifier", + "src": "14267:9:23" + }, + { + "kind": "number", + "nativeSrc": "14278:1:23", + "nodeType": "YulLiteral", + "src": "14278:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14263:3:23", + "nodeType": "YulIdentifier", + "src": "14263:3:23" + }, + "nativeSrc": "14263:17:23", + "nodeType": "YulFunctionCall", + "src": "14263:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "14210:43:23", + "nodeType": "YulIdentifier", + "src": "14210:43:23" + }, + "nativeSrc": "14210:71:23", + "nodeType": "YulFunctionCall", + "src": "14210:71:23" + }, + "nativeSrc": "14210:71:23", + "nodeType": "YulExpressionStatement", + "src": "14210:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "14335:6:23", + "nodeType": "YulIdentifier", + "src": "14335:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14348:9:23", + "nodeType": "YulIdentifier", + "src": "14348:9:23" + }, + { + "kind": "number", + "nativeSrc": "14359:2:23", + "nodeType": "YulLiteral", + "src": "14359:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14344:3:23", + "nodeType": "YulIdentifier", + "src": "14344:3:23" + }, + "nativeSrc": "14344:18:23", + "nodeType": "YulFunctionCall", + "src": "14344:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14291:43:23", + "nodeType": "YulIdentifier", + "src": "14291:43:23" + }, + "nativeSrc": "14291:72:23", + "nodeType": "YulFunctionCall", + "src": "14291:72:23" + }, + "nativeSrc": "14291:72:23", + "nodeType": "YulExpressionStatement", + "src": "14291:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "14417:6:23", + "nodeType": "YulIdentifier", + "src": "14417:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14430:9:23", + "nodeType": "YulIdentifier", + "src": "14430:9:23" + }, + { + "kind": "number", + "nativeSrc": "14441:2:23", + "nodeType": "YulLiteral", + "src": "14441:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14426:3:23", + "nodeType": "YulIdentifier", + "src": "14426:3:23" + }, + "nativeSrc": "14426:18:23", + "nodeType": "YulFunctionCall", + "src": "14426:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "14373:43:23", + "nodeType": "YulIdentifier", + "src": "14373:43:23" + }, + "nativeSrc": "14373:72:23", + "nodeType": "YulFunctionCall", + "src": "14373:72:23" + }, + "nativeSrc": "14373:72:23", + "nodeType": "YulExpressionStatement", + "src": "14373:72:23" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "14010:442:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14120:9:23", + "nodeType": "YulTypedName", + "src": "14120:9:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "14132:6:23", + "nodeType": "YulTypedName", + "src": "14132:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "14140:6:23", + "nodeType": "YulTypedName", + "src": "14140:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14148:6:23", + "nodeType": "YulTypedName", + "src": "14148:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14159:4:23", + "nodeType": "YulTypedName", + "src": "14159:4:23", + "type": "" + } + ], + "src": "14010:442:23" + }, + { + "body": { + "nativeSrc": "14564:62:23", + "nodeType": "YulBlock", + "src": "14564:62:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14586:6:23", + "nodeType": "YulIdentifier", + "src": "14586:6:23" + }, + { + "kind": "number", + "nativeSrc": "14594:1:23", + "nodeType": "YulLiteral", + "src": "14594:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14582:3:23", + "nodeType": "YulIdentifier", + "src": "14582:3:23" + }, + "nativeSrc": "14582:14:23", + "nodeType": "YulFunctionCall", + "src": "14582:14:23" + }, + { + "hexValue": "4e6f2066756e647320617661696c61626c65", + "kind": "string", + "nativeSrc": "14598:20:23", + "nodeType": "YulLiteral", + "src": "14598:20:23", + "type": "", + "value": "No funds available" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14575:6:23", + "nodeType": "YulIdentifier", + "src": "14575:6:23" + }, + "nativeSrc": "14575:44:23", + "nodeType": "YulFunctionCall", + "src": "14575:44:23" + }, + "nativeSrc": "14575:44:23", + "nodeType": "YulExpressionStatement", + "src": "14575:44:23" + } + ] + }, + "name": "store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "nativeSrc": "14458:168:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "14556:6:23", + "nodeType": "YulTypedName", + "src": "14556:6:23", + "type": "" + } + ], + "src": "14458:168:23" + }, + { + "body": { + "nativeSrc": "14778:220:23", + "nodeType": "YulBlock", + "src": "14778:220:23", + "statements": [ + { + "nativeSrc": "14788:74:23", + "nodeType": "YulAssignment", + "src": "14788:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14854:3:23", + "nodeType": "YulIdentifier", + "src": "14854:3:23" + }, + { + "kind": "number", + "nativeSrc": "14859:2:23", + "nodeType": "YulLiteral", + "src": "14859:2:23", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "14795:58:23", + "nodeType": "YulIdentifier", + "src": "14795:58:23" + }, + "nativeSrc": "14795:67:23", + "nodeType": "YulFunctionCall", + "src": "14795:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14788:3:23", + "nodeType": "YulIdentifier", + "src": "14788:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14960:3:23", + "nodeType": "YulIdentifier", + "src": "14960:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "nativeSrc": "14871:88:23", + "nodeType": "YulIdentifier", + "src": "14871:88:23" + }, + "nativeSrc": "14871:93:23", + "nodeType": "YulFunctionCall", + "src": "14871:93:23" + }, + "nativeSrc": "14871:93:23", + "nodeType": "YulExpressionStatement", + "src": "14871:93:23" + }, + { + "nativeSrc": "14973:19:23", + "nodeType": "YulAssignment", + "src": "14973:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14984:3:23", + "nodeType": "YulIdentifier", + "src": "14984:3:23" + }, + { + "kind": "number", + "nativeSrc": "14989:2:23", + "nodeType": "YulLiteral", + "src": "14989:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14980:3:23", + "nodeType": "YulIdentifier", + "src": "14980:3:23" + }, + "nativeSrc": "14980:12:23", + "nodeType": "YulFunctionCall", + "src": "14980:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14973:3:23", + "nodeType": "YulIdentifier", + "src": "14973:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack", + "nativeSrc": "14632:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14766:3:23", + "nodeType": "YulTypedName", + "src": "14766:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14774:3:23", + "nodeType": "YulTypedName", + "src": "14774:3:23", + "type": "" + } + ], + "src": "14632:366:23" + }, + { + "body": { + "nativeSrc": "15175:248:23", + "nodeType": "YulBlock", + "src": "15175:248:23", + "statements": [ + { + "nativeSrc": "15185:26:23", + "nodeType": "YulAssignment", + "src": "15185:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15197:9:23", + "nodeType": "YulIdentifier", + "src": "15197:9:23" + }, + { + "kind": "number", + "nativeSrc": "15208:2:23", + "nodeType": "YulLiteral", + "src": "15208:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15193:3:23", + "nodeType": "YulIdentifier", + "src": "15193:3:23" + }, + "nativeSrc": "15193:18:23", + "nodeType": "YulFunctionCall", + "src": "15193:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15185:4:23", + "nodeType": "YulIdentifier", + "src": "15185:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15232:9:23", + "nodeType": "YulIdentifier", + "src": "15232:9:23" + }, + { + "kind": "number", + "nativeSrc": "15243:1:23", + "nodeType": "YulLiteral", + "src": "15243:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15228:3:23", + "nodeType": "YulIdentifier", + "src": "15228:3:23" + }, + "nativeSrc": "15228:17:23", + "nodeType": "YulFunctionCall", + "src": "15228:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15251:4:23", + "nodeType": "YulIdentifier", + "src": "15251:4:23" + }, + { + "name": "headStart", + "nativeSrc": "15257:9:23", + "nodeType": "YulIdentifier", + "src": "15257:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15247:3:23", + "nodeType": "YulIdentifier", + "src": "15247:3:23" + }, + "nativeSrc": "15247:20:23", + "nodeType": "YulFunctionCall", + "src": "15247:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15221:6:23", + "nodeType": "YulIdentifier", + "src": "15221:6:23" + }, + "nativeSrc": "15221:47:23", + "nodeType": "YulFunctionCall", + "src": "15221:47:23" + }, + "nativeSrc": "15221:47:23", + "nodeType": "YulExpressionStatement", + "src": "15221:47:23" + }, + { + "nativeSrc": "15277:139:23", + "nodeType": "YulAssignment", + "src": "15277:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15411:4:23", + "nodeType": "YulIdentifier", + "src": "15411:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack", + "nativeSrc": "15285:124:23", + "nodeType": "YulIdentifier", + "src": "15285:124:23" + }, + "nativeSrc": "15285:131:23", + "nodeType": "YulFunctionCall", + "src": "15285:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15277:4:23", + "nodeType": "YulIdentifier", + "src": "15277:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "15004:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15155:9:23", + "nodeType": "YulTypedName", + "src": "15155:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15170:4:23", + "nodeType": "YulTypedName", + "src": "15170:4:23", + "type": "" + } + ], + "src": "15004:419:23" + }, + { + "body": { + "nativeSrc": "15542:34:23", + "nodeType": "YulBlock", + "src": "15542:34:23", + "statements": [ + { + "nativeSrc": "15552:18:23", + "nodeType": "YulAssignment", + "src": "15552:18:23", + "value": { + "name": "pos", + "nativeSrc": "15567:3:23", + "nodeType": "YulIdentifier", + "src": "15567:3:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "15552:11:23", + "nodeType": "YulIdentifier", + "src": "15552:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15429:147:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15514:3:23", + "nodeType": "YulTypedName", + "src": "15514:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "15519:6:23", + "nodeType": "YulTypedName", + "src": "15519:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "15530:11:23", + "nodeType": "YulTypedName", + "src": "15530:11:23", + "type": "" + } + ], + "src": "15429:147:23" + }, + { + "body": { + "nativeSrc": "15688:8:23", + "nodeType": "YulBlock", + "src": "15688:8:23", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15582:114:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "15680:6:23", + "nodeType": "YulTypedName", + "src": "15680:6:23", + "type": "" + } + ], + "src": "15582:114:23" + }, + { + "body": { + "nativeSrc": "15865:235:23", + "nodeType": "YulBlock", + "src": "15865:235:23", + "statements": [ + { + "nativeSrc": "15875:90:23", + "nodeType": "YulAssignment", + "src": "15875:90:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15958:3:23", + "nodeType": "YulIdentifier", + "src": "15958:3:23" + }, + { + "kind": "number", + "nativeSrc": "15963:1:23", + "nodeType": "YulLiteral", + "src": "15963:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15882:75:23", + "nodeType": "YulIdentifier", + "src": "15882:75:23" + }, + "nativeSrc": "15882:83:23", + "nodeType": "YulFunctionCall", + "src": "15882:83:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15875:3:23", + "nodeType": "YulIdentifier", + "src": "15875:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16063:3:23", + "nodeType": "YulIdentifier", + "src": "16063:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15974:88:23", + "nodeType": "YulIdentifier", + "src": "15974:88:23" + }, + "nativeSrc": "15974:93:23", + "nodeType": "YulFunctionCall", + "src": "15974:93:23" + }, + "nativeSrc": "15974:93:23", + "nodeType": "YulExpressionStatement", + "src": "15974:93:23" + }, + { + "nativeSrc": "16076:18:23", + "nodeType": "YulAssignment", + "src": "16076:18:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16087:3:23", + "nodeType": "YulIdentifier", + "src": "16087:3:23" + }, + { + "kind": "number", + "nativeSrc": "16092:1:23", + "nodeType": "YulLiteral", + "src": "16092:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16083:3:23", + "nodeType": "YulIdentifier", + "src": "16083:3:23" + }, + "nativeSrc": "16083:11:23", + "nodeType": "YulFunctionCall", + "src": "16083:11:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16076:3:23", + "nodeType": "YulIdentifier", + "src": "16076:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15702:398:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15853:3:23", + "nodeType": "YulTypedName", + "src": "15853:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15861:3:23", + "nodeType": "YulTypedName", + "src": "15861:3:23", + "type": "" + } + ], + "src": "15702:398:23" + }, + { + "body": { + "nativeSrc": "16294:191:23", + "nodeType": "YulBlock", + "src": "16294:191:23", + "statements": [ + { + "nativeSrc": "16305:154:23", + "nodeType": "YulAssignment", + "src": "16305:154:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16455:3:23", + "nodeType": "YulIdentifier", + "src": "16455:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "16312:141:23", + "nodeType": "YulIdentifier", + "src": "16312:141:23" + }, + "nativeSrc": "16312:147:23", + "nodeType": "YulFunctionCall", + "src": "16312:147:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16305:3:23", + "nodeType": "YulIdentifier", + "src": "16305:3:23" + } + ] + }, + { + "nativeSrc": "16469:10:23", + "nodeType": "YulAssignment", + "src": "16469:10:23", + "value": { + "name": "pos", + "nativeSrc": "16476:3:23", + "nodeType": "YulIdentifier", + "src": "16476:3:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16469:3:23", + "nodeType": "YulIdentifier", + "src": "16469:3:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "16106:379:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16281:3:23", + "nodeType": "YulTypedName", + "src": "16281:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16290:3:23", + "nodeType": "YulTypedName", + "src": "16290:3:23", + "type": "" + } + ], + "src": "16106:379:23" + }, + { + "body": { + "nativeSrc": "16597:61:23", + "nodeType": "YulBlock", + "src": "16597:61:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16619:6:23", + "nodeType": "YulIdentifier", + "src": "16619:6:23" + }, + { + "kind": "number", + "nativeSrc": "16627:1:23", + "nodeType": "YulLiteral", + "src": "16627:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16615:3:23", + "nodeType": "YulIdentifier", + "src": "16615:3:23" + }, + "nativeSrc": "16615:14:23", + "nodeType": "YulFunctionCall", + "src": "16615:14:23" + }, + { + "hexValue": "5769746864726177616c206661696c6564", + "kind": "string", + "nativeSrc": "16631:19:23", + "nodeType": "YulLiteral", + "src": "16631:19:23", + "type": "", + "value": "Withdrawal failed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16608:6:23", + "nodeType": "YulIdentifier", + "src": "16608:6:23" + }, + "nativeSrc": "16608:43:23", + "nodeType": "YulFunctionCall", + "src": "16608:43:23" + }, + "nativeSrc": "16608:43:23", + "nodeType": "YulExpressionStatement", + "src": "16608:43:23" + } + ] + }, + "name": "store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "nativeSrc": "16491:167:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "16589:6:23", + "nodeType": "YulTypedName", + "src": "16589:6:23", + "type": "" + } + ], + "src": "16491:167:23" + }, + { + "body": { + "nativeSrc": "16810:220:23", + "nodeType": "YulBlock", + "src": "16810:220:23", + "statements": [ + { + "nativeSrc": "16820:74:23", + "nodeType": "YulAssignment", + "src": "16820:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16886:3:23", + "nodeType": "YulIdentifier", + "src": "16886:3:23" + }, + { + "kind": "number", + "nativeSrc": "16891:2:23", + "nodeType": "YulLiteral", + "src": "16891:2:23", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "16827:58:23", + "nodeType": "YulIdentifier", + "src": "16827:58:23" + }, + "nativeSrc": "16827:67:23", + "nodeType": "YulFunctionCall", + "src": "16827:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16820:3:23", + "nodeType": "YulIdentifier", + "src": "16820:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16992:3:23", + "nodeType": "YulIdentifier", + "src": "16992:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "nativeSrc": "16903:88:23", + "nodeType": "YulIdentifier", + "src": "16903:88:23" + }, + "nativeSrc": "16903:93:23", + "nodeType": "YulFunctionCall", + "src": "16903:93:23" + }, + "nativeSrc": "16903:93:23", + "nodeType": "YulExpressionStatement", + "src": "16903:93:23" + }, + { + "nativeSrc": "17005:19:23", + "nodeType": "YulAssignment", + "src": "17005:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17016:3:23", + "nodeType": "YulIdentifier", + "src": "17016:3:23" + }, + { + "kind": "number", + "nativeSrc": "17021:2:23", + "nodeType": "YulLiteral", + "src": "17021:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17012:3:23", + "nodeType": "YulIdentifier", + "src": "17012:3:23" + }, + "nativeSrc": "17012:12:23", + "nodeType": "YulFunctionCall", + "src": "17012:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "17005:3:23", + "nodeType": "YulIdentifier", + "src": "17005:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack", + "nativeSrc": "16664:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16798:3:23", + "nodeType": "YulTypedName", + "src": "16798:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16806:3:23", + "nodeType": "YulTypedName", + "src": "16806:3:23", + "type": "" + } + ], + "src": "16664:366:23" + }, + { + "body": { + "nativeSrc": "17207:248:23", + "nodeType": "YulBlock", + "src": "17207:248:23", + "statements": [ + { + "nativeSrc": "17217:26:23", + "nodeType": "YulAssignment", + "src": "17217:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17229:9:23", + "nodeType": "YulIdentifier", + "src": "17229:9:23" + }, + { + "kind": "number", + "nativeSrc": "17240:2:23", + "nodeType": "YulLiteral", + "src": "17240:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17225:3:23", + "nodeType": "YulIdentifier", + "src": "17225:3:23" + }, + "nativeSrc": "17225:18:23", + "nodeType": "YulFunctionCall", + "src": "17225:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17217:4:23", + "nodeType": "YulIdentifier", + "src": "17217:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17264:9:23", + "nodeType": "YulIdentifier", + "src": "17264:9:23" + }, + { + "kind": "number", + "nativeSrc": "17275:1:23", + "nodeType": "YulLiteral", + "src": "17275:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17260:3:23", + "nodeType": "YulIdentifier", + "src": "17260:3:23" + }, + "nativeSrc": "17260:17:23", + "nodeType": "YulFunctionCall", + "src": "17260:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17283:4:23", + "nodeType": "YulIdentifier", + "src": "17283:4:23" + }, + { + "name": "headStart", + "nativeSrc": "17289:9:23", + "nodeType": "YulIdentifier", + "src": "17289:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "17279:3:23", + "nodeType": "YulIdentifier", + "src": "17279:3:23" + }, + "nativeSrc": "17279:20:23", + "nodeType": "YulFunctionCall", + "src": "17279:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17253:6:23", + "nodeType": "YulIdentifier", + "src": "17253:6:23" + }, + "nativeSrc": "17253:47:23", + "nodeType": "YulFunctionCall", + "src": "17253:47:23" + }, + "nativeSrc": "17253:47:23", + "nodeType": "YulExpressionStatement", + "src": "17253:47:23" + }, + { + "nativeSrc": "17309:139:23", + "nodeType": "YulAssignment", + "src": "17309:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17443:4:23", + "nodeType": "YulIdentifier", + "src": "17443:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack", + "nativeSrc": "17317:124:23", + "nodeType": "YulIdentifier", + "src": "17317:124:23" + }, + "nativeSrc": "17317:131:23", + "nodeType": "YulFunctionCall", + "src": "17317:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17309:4:23", + "nodeType": "YulIdentifier", + "src": "17309:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "17036:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17187:9:23", + "nodeType": "YulTypedName", + "src": "17187:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "17202:4:23", + "nodeType": "YulTypedName", + "src": "17202:4:23", + "type": "" + } + ], + "src": "17036:419:23" + }, + { + "body": { + "nativeSrc": "17567:68:23", + "nodeType": "YulBlock", + "src": "17567:68:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "17589:6:23", + "nodeType": "YulIdentifier", + "src": "17589:6:23" + }, + { + "kind": "number", + "nativeSrc": "17597:1:23", + "nodeType": "YulLiteral", + "src": "17597:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17585:3:23", + "nodeType": "YulIdentifier", + "src": "17585:3:23" + }, + "nativeSrc": "17585:14:23", + "nodeType": "YulFunctionCall", + "src": "17585:14:23" + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "17601:26:23", + "nodeType": "YulLiteral", + "src": "17601:26:23", + "type": "", + "value": "SVG data cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17578:6:23", + "nodeType": "YulIdentifier", + "src": "17578:6:23" + }, + "nativeSrc": "17578:50:23", + "nodeType": "YulFunctionCall", + "src": "17578:50:23" + }, + "nativeSrc": "17578:50:23", + "nodeType": "YulExpressionStatement", + "src": "17578:50:23" + } + ] + }, + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "17461:174:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "17559:6:23", + "nodeType": "YulTypedName", + "src": "17559:6:23", + "type": "" + } + ], + "src": "17461:174:23" + }, + { + "body": { + "nativeSrc": "17787:220:23", + "nodeType": "YulBlock", + "src": "17787:220:23", + "statements": [ + { + "nativeSrc": "17797:74:23", + "nodeType": "YulAssignment", + "src": "17797:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17863:3:23", + "nodeType": "YulIdentifier", + "src": "17863:3:23" + }, + { + "kind": "number", + "nativeSrc": "17868:2:23", + "nodeType": "YulLiteral", + "src": "17868:2:23", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "17804:58:23", + "nodeType": "YulIdentifier", + "src": "17804:58:23" + }, + "nativeSrc": "17804:67:23", + "nodeType": "YulFunctionCall", + "src": "17804:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "17797:3:23", + "nodeType": "YulIdentifier", + "src": "17797:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17969:3:23", + "nodeType": "YulIdentifier", + "src": "17969:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "17880:88:23", + "nodeType": "YulIdentifier", + "src": "17880:88:23" + }, + "nativeSrc": "17880:93:23", + "nodeType": "YulFunctionCall", + "src": "17880:93:23" + }, + "nativeSrc": "17880:93:23", + "nodeType": "YulExpressionStatement", + "src": "17880:93:23" + }, + { + "nativeSrc": "17982:19:23", + "nodeType": "YulAssignment", + "src": "17982:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17993:3:23", + "nodeType": "YulIdentifier", + "src": "17993:3:23" + }, + { + "kind": "number", + "nativeSrc": "17998:2:23", + "nodeType": "YulLiteral", + "src": "17998:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17989:3:23", + "nodeType": "YulIdentifier", + "src": "17989:3:23" + }, + "nativeSrc": "17989:12:23", + "nodeType": "YulFunctionCall", + "src": "17989:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "17982:3:23", + "nodeType": "YulIdentifier", + "src": "17982:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "17641:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "17775:3:23", + "nodeType": "YulTypedName", + "src": "17775:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "17783:3:23", + "nodeType": "YulTypedName", + "src": "17783:3:23", + "type": "" + } + ], + "src": "17641:366:23" + }, + { + "body": { + "nativeSrc": "18184:248:23", + "nodeType": "YulBlock", + "src": "18184:248:23", + "statements": [ + { + "nativeSrc": "18194:26:23", + "nodeType": "YulAssignment", + "src": "18194:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18206:9:23", + "nodeType": "YulIdentifier", + "src": "18206:9:23" + }, + { + "kind": "number", + "nativeSrc": "18217:2:23", + "nodeType": "YulLiteral", + "src": "18217:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18202:3:23", + "nodeType": "YulIdentifier", + "src": "18202:3:23" + }, + "nativeSrc": "18202:18:23", + "nodeType": "YulFunctionCall", + "src": "18202:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "18194:4:23", + "nodeType": "YulIdentifier", + "src": "18194:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18241:9:23", + "nodeType": "YulIdentifier", + "src": "18241:9:23" + }, + { + "kind": "number", + "nativeSrc": "18252:1:23", + "nodeType": "YulLiteral", + "src": "18252:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18237:3:23", + "nodeType": "YulIdentifier", + "src": "18237:3:23" + }, + "nativeSrc": "18237:17:23", + "nodeType": "YulFunctionCall", + "src": "18237:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "18260:4:23", + "nodeType": "YulIdentifier", + "src": "18260:4:23" + }, + { + "name": "headStart", + "nativeSrc": "18266:9:23", + "nodeType": "YulIdentifier", + "src": "18266:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18256:3:23", + "nodeType": "YulIdentifier", + "src": "18256:3:23" + }, + "nativeSrc": "18256:20:23", + "nodeType": "YulFunctionCall", + "src": "18256:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18230:6:23", + "nodeType": "YulIdentifier", + "src": "18230:6:23" + }, + "nativeSrc": "18230:47:23", + "nodeType": "YulFunctionCall", + "src": "18230:47:23" + }, + "nativeSrc": "18230:47:23", + "nodeType": "YulExpressionStatement", + "src": "18230:47:23" + }, + { + "nativeSrc": "18286:139:23", + "nodeType": "YulAssignment", + "src": "18286:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "18420:4:23", + "nodeType": "YulIdentifier", + "src": "18420:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "18294:124:23", + "nodeType": "YulIdentifier", + "src": "18294:124:23" + }, + "nativeSrc": "18294:131:23", + "nodeType": "YulFunctionCall", + "src": "18294:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "18286:4:23", + "nodeType": "YulIdentifier", + "src": "18286:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "18013:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18164:9:23", + "nodeType": "YulTypedName", + "src": "18164:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "18179:4:23", + "nodeType": "YulTypedName", + "src": "18179:4:23", + "type": "" + } + ], + "src": "18013:419:23" + }, + { + "body": { + "nativeSrc": "18544:62:23", + "nodeType": "YulBlock", + "src": "18544:62:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "18566:6:23", + "nodeType": "YulIdentifier", + "src": "18566:6:23" + }, + { + "kind": "number", + "nativeSrc": "18574:1:23", + "nodeType": "YulLiteral", + "src": "18574:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18562:3:23", + "nodeType": "YulIdentifier", + "src": "18562:3:23" + }, + "nativeSrc": "18562:14:23", + "nodeType": "YulFunctionCall", + "src": "18562:14:23" + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "kind": "string", + "nativeSrc": "18578:20:23", + "nodeType": "YulLiteral", + "src": "18578:20:23", + "type": "", + "value": "SVG data too large" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18555:6:23", + "nodeType": "YulIdentifier", + "src": "18555:6:23" + }, + "nativeSrc": "18555:44:23", + "nodeType": "YulFunctionCall", + "src": "18555:44:23" + }, + "nativeSrc": "18555:44:23", + "nodeType": "YulExpressionStatement", + "src": "18555:44:23" + } + ] + }, + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "18438:168:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "18536:6:23", + "nodeType": "YulTypedName", + "src": "18536:6:23", + "type": "" + } + ], + "src": "18438:168:23" + }, + { + "body": { + "nativeSrc": "18758:220:23", + "nodeType": "YulBlock", + "src": "18758:220:23", + "statements": [ + { + "nativeSrc": "18768:74:23", + "nodeType": "YulAssignment", + "src": "18768:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "18834:3:23", + "nodeType": "YulIdentifier", + "src": "18834:3:23" + }, + { + "kind": "number", + "nativeSrc": "18839:2:23", + "nodeType": "YulLiteral", + "src": "18839:2:23", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "18775:58:23", + "nodeType": "YulIdentifier", + "src": "18775:58:23" + }, + "nativeSrc": "18775:67:23", + "nodeType": "YulFunctionCall", + "src": "18775:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "18768:3:23", + "nodeType": "YulIdentifier", + "src": "18768:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "18940:3:23", + "nodeType": "YulIdentifier", + "src": "18940:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "18851:88:23", + "nodeType": "YulIdentifier", + "src": "18851:88:23" + }, + "nativeSrc": "18851:93:23", + "nodeType": "YulFunctionCall", + "src": "18851:93:23" + }, + "nativeSrc": "18851:93:23", + "nodeType": "YulExpressionStatement", + "src": "18851:93:23" + }, + { + "nativeSrc": "18953:19:23", + "nodeType": "YulAssignment", + "src": "18953:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "18964:3:23", + "nodeType": "YulIdentifier", + "src": "18964:3:23" + }, + { + "kind": "number", + "nativeSrc": "18969:2:23", + "nodeType": "YulLiteral", + "src": "18969:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18960:3:23", + "nodeType": "YulIdentifier", + "src": "18960:3:23" + }, + "nativeSrc": "18960:12:23", + "nodeType": "YulFunctionCall", + "src": "18960:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "18953:3:23", + "nodeType": "YulIdentifier", + "src": "18953:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "18612:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "18746:3:23", + "nodeType": "YulTypedName", + "src": "18746:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "18754:3:23", + "nodeType": "YulTypedName", + "src": "18754:3:23", + "type": "" + } + ], + "src": "18612:366:23" + }, + { + "body": { + "nativeSrc": "19155:248:23", + "nodeType": "YulBlock", + "src": "19155:248:23", + "statements": [ + { + "nativeSrc": "19165:26:23", + "nodeType": "YulAssignment", + "src": "19165:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19177:9:23", + "nodeType": "YulIdentifier", + "src": "19177:9:23" + }, + { + "kind": "number", + "nativeSrc": "19188:2:23", + "nodeType": "YulLiteral", + "src": "19188:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19173:3:23", + "nodeType": "YulIdentifier", + "src": "19173:3:23" + }, + "nativeSrc": "19173:18:23", + "nodeType": "YulFunctionCall", + "src": "19173:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19165:4:23", + "nodeType": "YulIdentifier", + "src": "19165:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19212:9:23", + "nodeType": "YulIdentifier", + "src": "19212:9:23" + }, + { + "kind": "number", + "nativeSrc": "19223:1:23", + "nodeType": "YulLiteral", + "src": "19223:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19208:3:23", + "nodeType": "YulIdentifier", + "src": "19208:3:23" + }, + "nativeSrc": "19208:17:23", + "nodeType": "YulFunctionCall", + "src": "19208:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "19231:4:23", + "nodeType": "YulIdentifier", + "src": "19231:4:23" + }, + { + "name": "headStart", + "nativeSrc": "19237:9:23", + "nodeType": "YulIdentifier", + "src": "19237:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19227:3:23", + "nodeType": "YulIdentifier", + "src": "19227:3:23" + }, + "nativeSrc": "19227:20:23", + "nodeType": "YulFunctionCall", + "src": "19227:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19201:6:23", + "nodeType": "YulIdentifier", + "src": "19201:6:23" + }, + "nativeSrc": "19201:47:23", + "nodeType": "YulFunctionCall", + "src": "19201:47:23" + }, + "nativeSrc": "19201:47:23", + "nodeType": "YulExpressionStatement", + "src": "19201:47:23" + }, + { + "nativeSrc": "19257:139:23", + "nodeType": "YulAssignment", + "src": "19257:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "19391:4:23", + "nodeType": "YulIdentifier", + "src": "19391:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "19265:124:23", + "nodeType": "YulIdentifier", + "src": "19265:124:23" + }, + "nativeSrc": "19265:131:23", + "nodeType": "YulFunctionCall", + "src": "19265:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19257:4:23", + "nodeType": "YulIdentifier", + "src": "19257:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "18984:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19135:9:23", + "nodeType": "YulTypedName", + "src": "19135:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "19150:4:23", + "nodeType": "YulTypedName", + "src": "19150:4:23", + "type": "" + } + ], + "src": "18984:419:23" + }, + { + "body": { + "nativeSrc": "19463:87:23", + "nodeType": "YulBlock", + "src": "19463:87:23", + "statements": [ + { + "nativeSrc": "19473:11:23", + "nodeType": "YulAssignment", + "src": "19473:11:23", + "value": { + "name": "ptr", + "nativeSrc": "19481:3:23", + "nodeType": "YulIdentifier", + "src": "19481:3:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "19473:4:23", + "nodeType": "YulIdentifier", + "src": "19473:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19501:1:23", + "nodeType": "YulLiteral", + "src": "19501:1:23", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "19504:3:23", + "nodeType": "YulIdentifier", + "src": "19504:3:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19494:6:23", + "nodeType": "YulIdentifier", + "src": "19494:6:23" + }, + "nativeSrc": "19494:14:23", + "nodeType": "YulFunctionCall", + "src": "19494:14:23" + }, + "nativeSrc": "19494:14:23", + "nodeType": "YulExpressionStatement", + "src": "19494:14:23" + }, + { + "nativeSrc": "19517:26:23", + "nodeType": "YulAssignment", + "src": "19517:26:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19535:1:23", + "nodeType": "YulLiteral", + "src": "19535:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19538:4:23", + "nodeType": "YulLiteral", + "src": "19538:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "19525:9:23", + "nodeType": "YulIdentifier", + "src": "19525:9:23" + }, + "nativeSrc": "19525:18:23", + "nodeType": "YulFunctionCall", + "src": "19525:18:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "19517:4:23", + "nodeType": "YulIdentifier", + "src": "19517:4:23" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "19409:141:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "19450:3:23", + "nodeType": "YulTypedName", + "src": "19450:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "19458:4:23", + "nodeType": "YulTypedName", + "src": "19458:4:23", + "type": "" + } + ], + "src": "19409:141:23" + }, + { + "body": { + "nativeSrc": "19600:49:23", + "nodeType": "YulBlock", + "src": "19600:49:23", + "statements": [ + { + "nativeSrc": "19610:33:23", + "nodeType": "YulAssignment", + "src": "19610:33:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19628:5:23", + "nodeType": "YulIdentifier", + "src": "19628:5:23" + }, + { + "kind": "number", + "nativeSrc": "19635:2:23", + "nodeType": "YulLiteral", + "src": "19635:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19624:3:23", + "nodeType": "YulIdentifier", + "src": "19624:3:23" + }, + "nativeSrc": "19624:14:23", + "nodeType": "YulFunctionCall", + "src": "19624:14:23" + }, + { + "kind": "number", + "nativeSrc": "19640:2:23", + "nodeType": "YulLiteral", + "src": "19640:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "19620:3:23", + "nodeType": "YulIdentifier", + "src": "19620:3:23" + }, + "nativeSrc": "19620:23:23", + "nodeType": "YulFunctionCall", + "src": "19620:23:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "19610:6:23", + "nodeType": "YulIdentifier", + "src": "19610:6:23" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "19556:93:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19583:5:23", + "nodeType": "YulTypedName", + "src": "19583:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "19593:6:23", + "nodeType": "YulTypedName", + "src": "19593:6:23", + "type": "" + } + ], + "src": "19556:93:23" + }, + { + "body": { + "nativeSrc": "19708:54:23", + "nodeType": "YulBlock", + "src": "19708:54:23", + "statements": [ + { + "nativeSrc": "19718:37:23", + "nodeType": "YulAssignment", + "src": "19718:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "19743:4:23", + "nodeType": "YulIdentifier", + "src": "19743:4:23" + }, + { + "name": "value", + "nativeSrc": "19749:5:23", + "nodeType": "YulIdentifier", + "src": "19749:5:23" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19739:3:23", + "nodeType": "YulIdentifier", + "src": "19739:3:23" + }, + "nativeSrc": "19739:16:23", + "nodeType": "YulFunctionCall", + "src": "19739:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "19718:8:23", + "nodeType": "YulIdentifier", + "src": "19718:8:23" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "19655:107:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "19683:4:23", + "nodeType": "YulTypedName", + "src": "19683:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "19689:5:23", + "nodeType": "YulTypedName", + "src": "19689:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "19699:8:23", + "nodeType": "YulTypedName", + "src": "19699:8:23", + "type": "" + } + ], + "src": "19655:107:23" + }, + { + "body": { + "nativeSrc": "19844:317:23", + "nodeType": "YulBlock", + "src": "19844:317:23", + "statements": [ + { + "nativeSrc": "19854:35:23", + "nodeType": "YulVariableDeclaration", + "src": "19854:35:23", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "19875:10:23", + "nodeType": "YulIdentifier", + "src": "19875:10:23" + }, + { + "kind": "number", + "nativeSrc": "19887:1:23", + "nodeType": "YulLiteral", + "src": "19887:1:23", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19871:3:23", + "nodeType": "YulIdentifier", + "src": "19871:3:23" + }, + "nativeSrc": "19871:18:23", + "nodeType": "YulFunctionCall", + "src": "19871:18:23" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "19858:9:23", + "nodeType": "YulTypedName", + "src": "19858:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "19898:109:23", + "nodeType": "YulVariableDeclaration", + "src": "19898:109:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "19929:9:23", + "nodeType": "YulIdentifier", + "src": "19929:9:23" + }, + { + "kind": "number", + "nativeSrc": "19940:66:23", + "nodeType": "YulLiteral", + "src": "19940:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "19910:18:23", + "nodeType": "YulIdentifier", + "src": "19910:18:23" + }, + "nativeSrc": "19910:97:23", + "nodeType": "YulFunctionCall", + "src": "19910:97:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "19902:4:23", + "nodeType": "YulTypedName", + "src": "19902:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "20016:51:23", + "nodeType": "YulAssignment", + "src": "20016:51:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "20047:9:23", + "nodeType": "YulIdentifier", + "src": "20047:9:23" + }, + { + "name": "toInsert", + "nativeSrc": "20058:8:23", + "nodeType": "YulIdentifier", + "src": "20058:8:23" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "20028:18:23", + "nodeType": "YulIdentifier", + "src": "20028:18:23" + }, + "nativeSrc": "20028:39:23", + "nodeType": "YulFunctionCall", + "src": "20028:39:23" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "20016:8:23", + "nodeType": "YulIdentifier", + "src": "20016:8:23" + } + ] + }, + { + "nativeSrc": "20076:30:23", + "nodeType": "YulAssignment", + "src": "20076:30:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "20089:5:23", + "nodeType": "YulIdentifier", + "src": "20089:5:23" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "20100:4:23", + "nodeType": "YulIdentifier", + "src": "20100:4:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "20096:3:23", + "nodeType": "YulIdentifier", + "src": "20096:3:23" + }, + "nativeSrc": "20096:9:23", + "nodeType": "YulFunctionCall", + "src": "20096:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20085:3:23", + "nodeType": "YulIdentifier", + "src": "20085:3:23" + }, + "nativeSrc": "20085:21:23", + "nodeType": "YulFunctionCall", + "src": "20085:21:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "20076:5:23", + "nodeType": "YulIdentifier", + "src": "20076:5:23" + } + ] + }, + { + "nativeSrc": "20115:40:23", + "nodeType": "YulAssignment", + "src": "20115:40:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "20128:5:23", + "nodeType": "YulIdentifier", + "src": "20128:5:23" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "20139:8:23", + "nodeType": "YulIdentifier", + "src": "20139:8:23" + }, + { + "name": "mask", + "nativeSrc": "20149:4:23", + "nodeType": "YulIdentifier", + "src": "20149:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20135:3:23", + "nodeType": "YulIdentifier", + "src": "20135:3:23" + }, + "nativeSrc": "20135:19:23", + "nodeType": "YulFunctionCall", + "src": "20135:19:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "20125:2:23", + "nodeType": "YulIdentifier", + "src": "20125:2:23" + }, + "nativeSrc": "20125:30:23", + "nodeType": "YulFunctionCall", + "src": "20125:30:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "20115:6:23", + "nodeType": "YulIdentifier", + "src": "20115:6:23" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "19768:393:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19805:5:23", + "nodeType": "YulTypedName", + "src": "19805:5:23", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "19812:10:23", + "nodeType": "YulTypedName", + "src": "19812:10:23", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "19824:8:23", + "nodeType": "YulTypedName", + "src": "19824:8:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "19837:6:23", + "nodeType": "YulTypedName", + "src": "19837:6:23", + "type": "" + } + ], + "src": "19768:393:23" + }, + { + "body": { + "nativeSrc": "20199:28:23", + "nodeType": "YulBlock", + "src": "20199:28:23", + "statements": [ + { + "nativeSrc": "20209:12:23", + "nodeType": "YulAssignment", + "src": "20209:12:23", + "value": { + "name": "value", + "nativeSrc": "20216:5:23", + "nodeType": "YulIdentifier", + "src": "20216:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "20209:3:23", + "nodeType": "YulIdentifier", + "src": "20209:3:23" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "20167:60:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "20185:5:23", + "nodeType": "YulTypedName", + "src": "20185:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "20195:3:23", + "nodeType": "YulTypedName", + "src": "20195:3:23", + "type": "" + } + ], + "src": "20167:60:23" + }, + { + "body": { + "nativeSrc": "20293:82:23", + "nodeType": "YulBlock", + "src": "20293:82:23", + "statements": [ + { + "nativeSrc": "20303:66:23", + "nodeType": "YulAssignment", + "src": "20303:66:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "20361:5:23", + "nodeType": "YulIdentifier", + "src": "20361:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "20343:17:23", + "nodeType": "YulIdentifier", + "src": "20343:17:23" + }, + "nativeSrc": "20343:24:23", + "nodeType": "YulFunctionCall", + "src": "20343:24:23" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "20334:8:23", + "nodeType": "YulIdentifier", + "src": "20334:8:23" + }, + "nativeSrc": "20334:34:23", + "nodeType": "YulFunctionCall", + "src": "20334:34:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "20316:17:23", + "nodeType": "YulIdentifier", + "src": "20316:17:23" + }, + "nativeSrc": "20316:53:23", + "nodeType": "YulFunctionCall", + "src": "20316:53:23" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "20303:9:23", + "nodeType": "YulIdentifier", + "src": "20303:9:23" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "20233:142:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "20273:5:23", + "nodeType": "YulTypedName", + "src": "20273:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "20283:9:23", + "nodeType": "YulTypedName", + "src": "20283:9:23", + "type": "" + } + ], + "src": "20233:142:23" + }, + { + "body": { + "nativeSrc": "20428:28:23", + "nodeType": "YulBlock", + "src": "20428:28:23", + "statements": [ + { + "nativeSrc": "20438:12:23", + "nodeType": "YulAssignment", + "src": "20438:12:23", + "value": { + "name": "value", + "nativeSrc": "20445:5:23", + "nodeType": "YulIdentifier", + "src": "20445:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "20438:3:23", + "nodeType": "YulIdentifier", + "src": "20438:3:23" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "20381:75:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "20414:5:23", + "nodeType": "YulTypedName", + "src": "20414:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "20424:3:23", + "nodeType": "YulTypedName", + "src": "20424:3:23", + "type": "" + } + ], + "src": "20381:75:23" + }, + { + "body": { + "nativeSrc": "20538:193:23", + "nodeType": "YulBlock", + "src": "20538:193:23", + "statements": [ + { + "nativeSrc": "20548:63:23", + "nodeType": "YulVariableDeclaration", + "src": "20548:63:23", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "20603:7:23", + "nodeType": "YulIdentifier", + "src": "20603:7:23" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "20572:30:23", + "nodeType": "YulIdentifier", + "src": "20572:30:23" + }, + "nativeSrc": "20572:39:23", + "nodeType": "YulFunctionCall", + "src": "20572:39:23" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "20552:16:23", + "nodeType": "YulTypedName", + "src": "20552:16:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20627:4:23", + "nodeType": "YulIdentifier", + "src": "20627:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20667:4:23", + "nodeType": "YulIdentifier", + "src": "20667:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "20661:5:23", + "nodeType": "YulIdentifier", + "src": "20661:5:23" + }, + "nativeSrc": "20661:11:23", + "nodeType": "YulFunctionCall", + "src": "20661:11:23" + }, + { + "name": "offset", + "nativeSrc": "20674:6:23", + "nodeType": "YulIdentifier", + "src": "20674:6:23" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "20706:16:23", + "nodeType": "YulIdentifier", + "src": "20706:16:23" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "20682:23:23", + "nodeType": "YulIdentifier", + "src": "20682:23:23" + }, + "nativeSrc": "20682:41:23", + "nodeType": "YulFunctionCall", + "src": "20682:41:23" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "20633:27:23", + "nodeType": "YulIdentifier", + "src": "20633:27:23" + }, + "nativeSrc": "20633:91:23", + "nodeType": "YulFunctionCall", + "src": "20633:91:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "20620:6:23", + "nodeType": "YulIdentifier", + "src": "20620:6:23" + }, + "nativeSrc": "20620:105:23", + "nodeType": "YulFunctionCall", + "src": "20620:105:23" + }, + "nativeSrc": "20620:105:23", + "nodeType": "YulExpressionStatement", + "src": "20620:105:23" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "20462:269:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "20515:4:23", + "nodeType": "YulTypedName", + "src": "20515:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "20521:6:23", + "nodeType": "YulTypedName", + "src": "20521:6:23", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "20529:7:23", + "nodeType": "YulTypedName", + "src": "20529:7:23", + "type": "" + } + ], + "src": "20462:269:23" + }, + { + "body": { + "nativeSrc": "20786:24:23", + "nodeType": "YulBlock", + "src": "20786:24:23", + "statements": [ + { + "nativeSrc": "20796:8:23", + "nodeType": "YulAssignment", + "src": "20796:8:23", + "value": { + "kind": "number", + "nativeSrc": "20803:1:23", + "nodeType": "YulLiteral", + "src": "20803:1:23", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "20796:3:23", + "nodeType": "YulIdentifier", + "src": "20796:3:23" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "20737:73:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "20782:3:23", + "nodeType": "YulTypedName", + "src": "20782:3:23", + "type": "" + } + ], + "src": "20737:73:23" + }, + { + "body": { + "nativeSrc": "20869:136:23", + "nodeType": "YulBlock", + "src": "20869:136:23", + "statements": [ + { + "nativeSrc": "20879:46:23", + "nodeType": "YulVariableDeclaration", + "src": "20879:46:23", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "20893:30:23", + "nodeType": "YulIdentifier", + "src": "20893:30:23" + }, + "nativeSrc": "20893:32:23", + "nodeType": "YulFunctionCall", + "src": "20893:32:23" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "20883:6:23", + "nodeType": "YulTypedName", + "src": "20883:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20978:4:23", + "nodeType": "YulIdentifier", + "src": "20978:4:23" + }, + { + "name": "offset", + "nativeSrc": "20984:6:23", + "nodeType": "YulIdentifier", + "src": "20984:6:23" + }, + { + "name": "zero_0", + "nativeSrc": "20992:6:23", + "nodeType": "YulIdentifier", + "src": "20992:6:23" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "20934:43:23", + "nodeType": "YulIdentifier", + "src": "20934:43:23" + }, + "nativeSrc": "20934:65:23", + "nodeType": "YulFunctionCall", + "src": "20934:65:23" + }, + "nativeSrc": "20934:65:23", + "nodeType": "YulExpressionStatement", + "src": "20934:65:23" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "20816:189:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "20855:4:23", + "nodeType": "YulTypedName", + "src": "20855:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "20861:6:23", + "nodeType": "YulTypedName", + "src": "20861:6:23", + "type": "" + } + ], + "src": "20816:189:23" + }, + { + "body": { + "nativeSrc": "21061:136:23", + "nodeType": "YulBlock", + "src": "21061:136:23", + "statements": [ + { + "body": { + "nativeSrc": "21128:63:23", + "nodeType": "YulBlock", + "src": "21128:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "21172:5:23", + "nodeType": "YulIdentifier", + "src": "21172:5:23" + }, + { + "kind": "number", + "nativeSrc": "21179:1:23", + "nodeType": "YulLiteral", + "src": "21179:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "21142:29:23", + "nodeType": "YulIdentifier", + "src": "21142:29:23" + }, + "nativeSrc": "21142:39:23", + "nodeType": "YulFunctionCall", + "src": "21142:39:23" + }, + "nativeSrc": "21142:39:23", + "nodeType": "YulExpressionStatement", + "src": "21142:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "21081:5:23", + "nodeType": "YulIdentifier", + "src": "21081:5:23" + }, + { + "name": "end", + "nativeSrc": "21088:3:23", + "nodeType": "YulIdentifier", + "src": "21088:3:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "21078:2:23", + "nodeType": "YulIdentifier", + "src": "21078:2:23" + }, + "nativeSrc": "21078:14:23", + "nodeType": "YulFunctionCall", + "src": "21078:14:23" + }, + "nativeSrc": "21071:120:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "21093:26:23", + "nodeType": "YulBlock", + "src": "21093:26:23", + "statements": [ + { + "nativeSrc": "21095:22:23", + "nodeType": "YulAssignment", + "src": "21095:22:23", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "21108:5:23", + "nodeType": "YulIdentifier", + "src": "21108:5:23" + }, + { + "kind": "number", + "nativeSrc": "21115:1:23", + "nodeType": "YulLiteral", + "src": "21115:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21104:3:23", + "nodeType": "YulIdentifier", + "src": "21104:3:23" + }, + "nativeSrc": "21104:13:23", + "nodeType": "YulFunctionCall", + "src": "21104:13:23" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "21095:5:23", + "nodeType": "YulIdentifier", + "src": "21095:5:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "21075:2:23", + "nodeType": "YulBlock", + "src": "21075:2:23", + "statements": [] + }, + "src": "21071:120:23" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "21011:186:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "21049:5:23", + "nodeType": "YulTypedName", + "src": "21049:5:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "21056:3:23", + "nodeType": "YulTypedName", + "src": "21056:3:23", + "type": "" + } + ], + "src": "21011:186:23" + }, + { + "body": { + "nativeSrc": "21282:464:23", + "nodeType": "YulBlock", + "src": "21282:464:23", + "statements": [ + { + "body": { + "nativeSrc": "21308:431:23", + "nodeType": "YulBlock", + "src": "21308:431:23", + "statements": [ + { + "nativeSrc": "21322:54:23", + "nodeType": "YulVariableDeclaration", + "src": "21322:54:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "21370:5:23", + "nodeType": "YulIdentifier", + "src": "21370:5:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "21338:31:23", + "nodeType": "YulIdentifier", + "src": "21338:31:23" + }, + "nativeSrc": "21338:38:23", + "nodeType": "YulFunctionCall", + "src": "21338:38:23" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "21326:8:23", + "nodeType": "YulTypedName", + "src": "21326:8:23", + "type": "" + } + ] + }, + { + "nativeSrc": "21389:63:23", + "nodeType": "YulVariableDeclaration", + "src": "21389:63:23", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "21412:8:23", + "nodeType": "YulIdentifier", + "src": "21412:8:23" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "21440:10:23", + "nodeType": "YulIdentifier", + "src": "21440:10:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "21422:17:23", + "nodeType": "YulIdentifier", + "src": "21422:17:23" + }, + "nativeSrc": "21422:29:23", + "nodeType": "YulFunctionCall", + "src": "21422:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21408:3:23", + "nodeType": "YulIdentifier", + "src": "21408:3:23" + }, + "nativeSrc": "21408:44:23", + "nodeType": "YulFunctionCall", + "src": "21408:44:23" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "21393:11:23", + "nodeType": "YulTypedName", + "src": "21393:11:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21609:27:23", + "nodeType": "YulBlock", + "src": "21609:27:23", + "statements": [ + { + "nativeSrc": "21611:23:23", + "nodeType": "YulAssignment", + "src": "21611:23:23", + "value": { + "name": "dataArea", + "nativeSrc": "21626:8:23", + "nodeType": "YulIdentifier", + "src": "21626:8:23" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "21611:11:23", + "nodeType": "YulIdentifier", + "src": "21611:11:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "21593:10:23", + "nodeType": "YulIdentifier", + "src": "21593:10:23" + }, + { + "kind": "number", + "nativeSrc": "21605:2:23", + "nodeType": "YulLiteral", + "src": "21605:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "21590:2:23", + "nodeType": "YulIdentifier", + "src": "21590:2:23" + }, + "nativeSrc": "21590:18:23", + "nodeType": "YulFunctionCall", + "src": "21590:18:23" + }, + "nativeSrc": "21587:49:23", + "nodeType": "YulIf", + "src": "21587:49:23" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "21678:11:23", + "nodeType": "YulIdentifier", + "src": "21678:11:23" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "21695:8:23", + "nodeType": "YulIdentifier", + "src": "21695:8:23" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "21723:3:23", + "nodeType": "YulIdentifier", + "src": "21723:3:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "21705:17:23", + "nodeType": "YulIdentifier", + "src": "21705:17:23" + }, + "nativeSrc": "21705:22:23", + "nodeType": "YulFunctionCall", + "src": "21705:22:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21691:3:23", + "nodeType": "YulIdentifier", + "src": "21691:3:23" + }, + "nativeSrc": "21691:37:23", + "nodeType": "YulFunctionCall", + "src": "21691:37:23" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "21649:28:23", + "nodeType": "YulIdentifier", + "src": "21649:28:23" + }, + "nativeSrc": "21649:80:23", + "nodeType": "YulFunctionCall", + "src": "21649:80:23" + }, + "nativeSrc": "21649:80:23", + "nodeType": "YulExpressionStatement", + "src": "21649:80:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "21299:3:23", + "nodeType": "YulIdentifier", + "src": "21299:3:23" + }, + { + "kind": "number", + "nativeSrc": "21304:2:23", + "nodeType": "YulLiteral", + "src": "21304:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21296:2:23", + "nodeType": "YulIdentifier", + "src": "21296:2:23" + }, + "nativeSrc": "21296:11:23", + "nodeType": "YulFunctionCall", + "src": "21296:11:23" + }, + "nativeSrc": "21293:446:23", + "nodeType": "YulIf", + "src": "21293:446:23" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "21203:543:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "21258:5:23", + "nodeType": "YulTypedName", + "src": "21258:5:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "21265:3:23", + "nodeType": "YulTypedName", + "src": "21265:3:23", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "21270:10:23", + "nodeType": "YulTypedName", + "src": "21270:10:23", + "type": "" + } + ], + "src": "21203:543:23" + }, + { + "body": { + "nativeSrc": "21815:54:23", + "nodeType": "YulBlock", + "src": "21815:54:23", + "statements": [ + { + "nativeSrc": "21825:37:23", + "nodeType": "YulAssignment", + "src": "21825:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "21850:4:23", + "nodeType": "YulIdentifier", + "src": "21850:4:23" + }, + { + "name": "value", + "nativeSrc": "21856:5:23", + "nodeType": "YulIdentifier", + "src": "21856:5:23" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "21846:3:23", + "nodeType": "YulIdentifier", + "src": "21846:3:23" + }, + "nativeSrc": "21846:16:23", + "nodeType": "YulFunctionCall", + "src": "21846:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "21825:8:23", + "nodeType": "YulIdentifier", + "src": "21825:8:23" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "21752:117:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "21790:4:23", + "nodeType": "YulTypedName", + "src": "21790:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "21796:5:23", + "nodeType": "YulTypedName", + "src": "21796:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "21806:8:23", + "nodeType": "YulTypedName", + "src": "21806:8:23", + "type": "" + } + ], + "src": "21752:117:23" + }, + { + "body": { + "nativeSrc": "21926:118:23", + "nodeType": "YulBlock", + "src": "21926:118:23", + "statements": [ + { + "nativeSrc": "21936:68:23", + "nodeType": "YulVariableDeclaration", + "src": "21936:68:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21985:1:23", + "nodeType": "YulLiteral", + "src": "21985:1:23", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "21988:5:23", + "nodeType": "YulIdentifier", + "src": "21988:5:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "21981:3:23", + "nodeType": "YulIdentifier", + "src": "21981:3:23" + }, + "nativeSrc": "21981:13:23", + "nodeType": "YulFunctionCall", + "src": "21981:13:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22000:1:23", + "nodeType": "YulLiteral", + "src": "22000:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "21996:3:23", + "nodeType": "YulIdentifier", + "src": "21996:3:23" + }, + "nativeSrc": "21996:6:23", + "nodeType": "YulFunctionCall", + "src": "21996:6:23" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "21952:28:23", + "nodeType": "YulIdentifier", + "src": "21952:28:23" + }, + "nativeSrc": "21952:51:23", + "nodeType": "YulFunctionCall", + "src": "21952:51:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "21948:3:23", + "nodeType": "YulIdentifier", + "src": "21948:3:23" + }, + "nativeSrc": "21948:56:23", + "nodeType": "YulFunctionCall", + "src": "21948:56:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "21940:4:23", + "nodeType": "YulTypedName", + "src": "21940:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "22013:25:23", + "nodeType": "YulAssignment", + "src": "22013:25:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22027:4:23", + "nodeType": "YulIdentifier", + "src": "22027:4:23" + }, + { + "name": "mask", + "nativeSrc": "22033:4:23", + "nodeType": "YulIdentifier", + "src": "22033:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22023:3:23", + "nodeType": "YulIdentifier", + "src": "22023:3:23" + }, + "nativeSrc": "22023:15:23", + "nodeType": "YulFunctionCall", + "src": "22023:15:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "22013:6:23", + "nodeType": "YulIdentifier", + "src": "22013:6:23" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "21875:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "21903:4:23", + "nodeType": "YulTypedName", + "src": "21903:4:23", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "21909:5:23", + "nodeType": "YulTypedName", + "src": "21909:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "21919:6:23", + "nodeType": "YulTypedName", + "src": "21919:6:23", + "type": "" + } + ], + "src": "21875:169:23" + }, + { + "body": { + "nativeSrc": "22130:214:23", + "nodeType": "YulBlock", + "src": "22130:214:23", + "statements": [ + { + "nativeSrc": "22263:37:23", + "nodeType": "YulAssignment", + "src": "22263:37:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22290:4:23", + "nodeType": "YulIdentifier", + "src": "22290:4:23" + }, + { + "name": "len", + "nativeSrc": "22296:3:23", + "nodeType": "YulIdentifier", + "src": "22296:3:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "22271:18:23", + "nodeType": "YulIdentifier", + "src": "22271:18:23" + }, + "nativeSrc": "22271:29:23", + "nodeType": "YulFunctionCall", + "src": "22271:29:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "22263:4:23", + "nodeType": "YulIdentifier", + "src": "22263:4:23" + } + ] + }, + { + "nativeSrc": "22309:29:23", + "nodeType": "YulAssignment", + "src": "22309:29:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22320:4:23", + "nodeType": "YulIdentifier", + "src": "22320:4:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22330:1:23", + "nodeType": "YulLiteral", + "src": "22330:1:23", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "22333:3:23", + "nodeType": "YulIdentifier", + "src": "22333:3:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "22326:3:23", + "nodeType": "YulIdentifier", + "src": "22326:3:23" + }, + "nativeSrc": "22326:11:23", + "nodeType": "YulFunctionCall", + "src": "22326:11:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "22317:2:23", + "nodeType": "YulIdentifier", + "src": "22317:2:23" + }, + "nativeSrc": "22317:21:23", + "nodeType": "YulFunctionCall", + "src": "22317:21:23" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "22309:4:23", + "nodeType": "YulIdentifier", + "src": "22309:4:23" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "22049:295:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "22111:4:23", + "nodeType": "YulTypedName", + "src": "22111:4:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "22117:3:23", + "nodeType": "YulTypedName", + "src": "22117:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "22125:4:23", + "nodeType": "YulTypedName", + "src": "22125:4:23", + "type": "" + } + ], + "src": "22049:295:23" + }, + { + "body": { + "nativeSrc": "22441:1303:23", + "nodeType": "YulBlock", + "src": "22441:1303:23", + "statements": [ + { + "nativeSrc": "22452:51:23", + "nodeType": "YulVariableDeclaration", + "src": "22452:51:23", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "22499:3:23", + "nodeType": "YulIdentifier", + "src": "22499:3:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "22466:32:23", + "nodeType": "YulIdentifier", + "src": "22466:32:23" + }, + "nativeSrc": "22466:37:23", + "nodeType": "YulFunctionCall", + "src": "22466:37:23" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "22456:6:23", + "nodeType": "YulTypedName", + "src": "22456:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22588:22:23", + "nodeType": "YulBlock", + "src": "22588:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "22590:16:23", + "nodeType": "YulIdentifier", + "src": "22590:16:23" + }, + "nativeSrc": "22590:18:23", + "nodeType": "YulFunctionCall", + "src": "22590:18:23" + }, + "nativeSrc": "22590:18:23", + "nodeType": "YulExpressionStatement", + "src": "22590:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "22560:6:23", + "nodeType": "YulIdentifier", + "src": "22560:6:23" + }, + { + "kind": "number", + "nativeSrc": "22568:18:23", + "nodeType": "YulLiteral", + "src": "22568:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22557:2:23", + "nodeType": "YulIdentifier", + "src": "22557:2:23" + }, + "nativeSrc": "22557:30:23", + "nodeType": "YulFunctionCall", + "src": "22557:30:23" + }, + "nativeSrc": "22554:56:23", + "nodeType": "YulIf", + "src": "22554:56:23" + }, + { + "nativeSrc": "22620:52:23", + "nodeType": "YulVariableDeclaration", + "src": "22620:52:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "22666:4:23", + "nodeType": "YulIdentifier", + "src": "22666:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "22660:5:23", + "nodeType": "YulIdentifier", + "src": "22660:5:23" + }, + "nativeSrc": "22660:11:23", + "nodeType": "YulFunctionCall", + "src": "22660:11:23" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "22634:25:23", + "nodeType": "YulIdentifier", + "src": "22634:25:23" + }, + "nativeSrc": "22634:38:23", + "nodeType": "YulFunctionCall", + "src": "22634:38:23" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "22624:6:23", + "nodeType": "YulTypedName", + "src": "22624:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "22765:4:23", + "nodeType": "YulIdentifier", + "src": "22765:4:23" + }, + { + "name": "oldLen", + "nativeSrc": "22771:6:23", + "nodeType": "YulIdentifier", + "src": "22771:6:23" + }, + { + "name": "newLen", + "nativeSrc": "22779:6:23", + "nodeType": "YulIdentifier", + "src": "22779:6:23" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "22719:45:23", + "nodeType": "YulIdentifier", + "src": "22719:45:23" + }, + "nativeSrc": "22719:67:23", + "nodeType": "YulFunctionCall", + "src": "22719:67:23" + }, + "nativeSrc": "22719:67:23", + "nodeType": "YulExpressionStatement", + "src": "22719:67:23" + }, + { + "nativeSrc": "22796:18:23", + "nodeType": "YulVariableDeclaration", + "src": "22796:18:23", + "value": { + "kind": "number", + "nativeSrc": "22813:1:23", + "nodeType": "YulLiteral", + "src": "22813:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "22800:9:23", + "nodeType": "YulTypedName", + "src": "22800:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "22824:17:23", + "nodeType": "YulAssignment", + "src": "22824:17:23", + "value": { + "kind": "number", + "nativeSrc": "22837:4:23", + "nodeType": "YulLiteral", + "src": "22837:4:23", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "22824:9:23", + "nodeType": "YulIdentifier", + "src": "22824:9:23" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "22888:611:23", + "nodeType": "YulBlock", + "src": "22888:611:23", + "statements": [ + { + "nativeSrc": "22902:37:23", + "nodeType": "YulVariableDeclaration", + "src": "22902:37:23", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "22921:6:23", + "nodeType": "YulIdentifier", + "src": "22921:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22933:4:23", + "nodeType": "YulLiteral", + "src": "22933:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "22929:3:23", + "nodeType": "YulIdentifier", + "src": "22929:3:23" + }, + "nativeSrc": "22929:9:23", + "nodeType": "YulFunctionCall", + "src": "22929:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22917:3:23", + "nodeType": "YulIdentifier", + "src": "22917:3:23" + }, + "nativeSrc": "22917:22:23", + "nodeType": "YulFunctionCall", + "src": "22917:22:23" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "22906:7:23", + "nodeType": "YulTypedName", + "src": "22906:7:23", + "type": "" + } + ] + }, + { + "nativeSrc": "22953:51:23", + "nodeType": "YulVariableDeclaration", + "src": "22953:51:23", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "22999:4:23", + "nodeType": "YulIdentifier", + "src": "22999:4:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "22967:31:23", + "nodeType": "YulIdentifier", + "src": "22967:31:23" + }, + "nativeSrc": "22967:37:23", + "nodeType": "YulFunctionCall", + "src": "22967:37:23" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "22957:6:23", + "nodeType": "YulTypedName", + "src": "22957:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "23017:10:23", + "nodeType": "YulVariableDeclaration", + "src": "23017:10:23", + "value": { + "kind": "number", + "nativeSrc": "23026:1:23", + "nodeType": "YulLiteral", + "src": "23026:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "23021:1:23", + "nodeType": "YulTypedName", + "src": "23021:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "23085:163:23", + "nodeType": "YulBlock", + "src": "23085:163:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "23110:6:23", + "nodeType": "YulIdentifier", + "src": "23110:6:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "23128:3:23", + "nodeType": "YulIdentifier", + "src": "23128:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "23133:9:23", + "nodeType": "YulIdentifier", + "src": "23133:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23124:3:23", + "nodeType": "YulIdentifier", + "src": "23124:3:23" + }, + "nativeSrc": "23124:19:23", + "nodeType": "YulFunctionCall", + "src": "23124:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23118:5:23", + "nodeType": "YulIdentifier", + "src": "23118:5:23" + }, + "nativeSrc": "23118:26:23", + "nodeType": "YulFunctionCall", + "src": "23118:26:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "23103:6:23", + "nodeType": "YulIdentifier", + "src": "23103:6:23" + }, + "nativeSrc": "23103:42:23", + "nodeType": "YulFunctionCall", + "src": "23103:42:23" + }, + "nativeSrc": "23103:42:23", + "nodeType": "YulExpressionStatement", + "src": "23103:42:23" + }, + { + "nativeSrc": "23162:24:23", + "nodeType": "YulAssignment", + "src": "23162:24:23", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "23176:6:23", + "nodeType": "YulIdentifier", + "src": "23176:6:23" + }, + { + "kind": "number", + "nativeSrc": "23184:1:23", + "nodeType": "YulLiteral", + "src": "23184:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23172:3:23", + "nodeType": "YulIdentifier", + "src": "23172:3:23" + }, + "nativeSrc": "23172:14:23", + "nodeType": "YulFunctionCall", + "src": "23172:14:23" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "23162:6:23", + "nodeType": "YulIdentifier", + "src": "23162:6:23" + } + ] + }, + { + "nativeSrc": "23203:31:23", + "nodeType": "YulAssignment", + "src": "23203:31:23", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "23220:9:23", + "nodeType": "YulIdentifier", + "src": "23220:9:23" + }, + { + "kind": "number", + "nativeSrc": "23231:2:23", + "nodeType": "YulLiteral", + "src": "23231:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23216:3:23", + "nodeType": "YulIdentifier", + "src": "23216:3:23" + }, + "nativeSrc": "23216:18:23", + "nodeType": "YulFunctionCall", + "src": "23216:18:23" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "23203:9:23", + "nodeType": "YulIdentifier", + "src": "23203:9:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "23051:1:23", + "nodeType": "YulIdentifier", + "src": "23051:1:23" + }, + { + "name": "loopEnd", + "nativeSrc": "23054:7:23", + "nodeType": "YulIdentifier", + "src": "23054:7:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "23048:2:23", + "nodeType": "YulIdentifier", + "src": "23048:2:23" + }, + "nativeSrc": "23048:14:23", + "nodeType": "YulFunctionCall", + "src": "23048:14:23" + }, + "nativeSrc": "23040:208:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "23063:21:23", + "nodeType": "YulBlock", + "src": "23063:21:23", + "statements": [ + { + "nativeSrc": "23065:17:23", + "nodeType": "YulAssignment", + "src": "23065:17:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "23074:1:23", + "nodeType": "YulIdentifier", + "src": "23074:1:23" + }, + { + "kind": "number", + "nativeSrc": "23077:4:23", + "nodeType": "YulLiteral", + "src": "23077:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23070:3:23", + "nodeType": "YulIdentifier", + "src": "23070:3:23" + }, + "nativeSrc": "23070:12:23", + "nodeType": "YulFunctionCall", + "src": "23070:12:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "23065:1:23", + "nodeType": "YulIdentifier", + "src": "23065:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "23044:3:23", + "nodeType": "YulBlock", + "src": "23044:3:23", + "statements": [] + }, + "src": "23040:208:23" + }, + { + "body": { + "nativeSrc": "23284:156:23", + "nodeType": "YulBlock", + "src": "23284:156:23", + "statements": [ + { + "nativeSrc": "23302:43:23", + "nodeType": "YulVariableDeclaration", + "src": "23302:43:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "23329:3:23", + "nodeType": "YulIdentifier", + "src": "23329:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "23334:9:23", + "nodeType": "YulIdentifier", + "src": "23334:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23325:3:23", + "nodeType": "YulIdentifier", + "src": "23325:3:23" + }, + "nativeSrc": "23325:19:23", + "nodeType": "YulFunctionCall", + "src": "23325:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23319:5:23", + "nodeType": "YulIdentifier", + "src": "23319:5:23" + }, + "nativeSrc": "23319:26:23", + "nodeType": "YulFunctionCall", + "src": "23319:26:23" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "23306:9:23", + "nodeType": "YulTypedName", + "src": "23306:9:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "23369:6:23", + "nodeType": "YulIdentifier", + "src": "23369:6:23" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "23396:9:23", + "nodeType": "YulIdentifier", + "src": "23396:9:23" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "23411:6:23", + "nodeType": "YulIdentifier", + "src": "23411:6:23" + }, + { + "kind": "number", + "nativeSrc": "23419:4:23", + "nodeType": "YulLiteral", + "src": "23419:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "23407:3:23", + "nodeType": "YulIdentifier", + "src": "23407:3:23" + }, + "nativeSrc": "23407:17:23", + "nodeType": "YulFunctionCall", + "src": "23407:17:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "23377:18:23", + "nodeType": "YulIdentifier", + "src": "23377:18:23" + }, + "nativeSrc": "23377:48:23", + "nodeType": "YulFunctionCall", + "src": "23377:48:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "23362:6:23", + "nodeType": "YulIdentifier", + "src": "23362:6:23" + }, + "nativeSrc": "23362:64:23", + "nodeType": "YulFunctionCall", + "src": "23362:64:23" + }, + "nativeSrc": "23362:64:23", + "nodeType": "YulExpressionStatement", + "src": "23362:64:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "23267:7:23", + "nodeType": "YulIdentifier", + "src": "23267:7:23" + }, + { + "name": "newLen", + "nativeSrc": "23276:6:23", + "nodeType": "YulIdentifier", + "src": "23276:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "23264:2:23", + "nodeType": "YulIdentifier", + "src": "23264:2:23" + }, + "nativeSrc": "23264:19:23", + "nodeType": "YulFunctionCall", + "src": "23264:19:23" + }, + "nativeSrc": "23261:179:23", + "nodeType": "YulIf", + "src": "23261:179:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "23460:4:23", + "nodeType": "YulIdentifier", + "src": "23460:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "23474:6:23", + "nodeType": "YulIdentifier", + "src": "23474:6:23" + }, + { + "kind": "number", + "nativeSrc": "23482:1:23", + "nodeType": "YulLiteral", + "src": "23482:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "23470:3:23", + "nodeType": "YulIdentifier", + "src": "23470:3:23" + }, + "nativeSrc": "23470:14:23", + "nodeType": "YulFunctionCall", + "src": "23470:14:23" + }, + { + "kind": "number", + "nativeSrc": "23486:1:23", + "nodeType": "YulLiteral", + "src": "23486:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23466:3:23", + "nodeType": "YulIdentifier", + "src": "23466:3:23" + }, + "nativeSrc": "23466:22:23", + "nodeType": "YulFunctionCall", + "src": "23466:22:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "23453:6:23", + "nodeType": "YulIdentifier", + "src": "23453:6:23" + }, + "nativeSrc": "23453:36:23", + "nodeType": "YulFunctionCall", + "src": "23453:36:23" + }, + "nativeSrc": "23453:36:23", + "nodeType": "YulExpressionStatement", + "src": "23453:36:23" + } + ] + }, + "nativeSrc": "22881:618:23", + "nodeType": "YulCase", + "src": "22881:618:23", + "value": { + "kind": "number", + "nativeSrc": "22886:1:23", + "nodeType": "YulLiteral", + "src": "22886:1:23", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "23516:222:23", + "nodeType": "YulBlock", + "src": "23516:222:23", + "statements": [ + { + "nativeSrc": "23530:14:23", + "nodeType": "YulVariableDeclaration", + "src": "23530:14:23", + "value": { + "kind": "number", + "nativeSrc": "23543:1:23", + "nodeType": "YulLiteral", + "src": "23543:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "23534:5:23", + "nodeType": "YulTypedName", + "src": "23534:5:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "23567:67:23", + "nodeType": "YulBlock", + "src": "23567:67:23", + "statements": [ + { + "nativeSrc": "23585:35:23", + "nodeType": "YulAssignment", + "src": "23585:35:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "23604:3:23", + "nodeType": "YulIdentifier", + "src": "23604:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "23609:9:23", + "nodeType": "YulIdentifier", + "src": "23609:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23600:3:23", + "nodeType": "YulIdentifier", + "src": "23600:3:23" + }, + "nativeSrc": "23600:19:23", + "nodeType": "YulFunctionCall", + "src": "23600:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23594:5:23", + "nodeType": "YulIdentifier", + "src": "23594:5:23" + }, + "nativeSrc": "23594:26:23", + "nodeType": "YulFunctionCall", + "src": "23594:26:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "23585:5:23", + "nodeType": "YulIdentifier", + "src": "23585:5:23" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "23560:6:23", + "nodeType": "YulIdentifier", + "src": "23560:6:23" + }, + "nativeSrc": "23557:77:23", + "nodeType": "YulIf", + "src": "23557:77:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "23654:4:23", + "nodeType": "YulIdentifier", + "src": "23654:4:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "23713:5:23", + "nodeType": "YulIdentifier", + "src": "23713:5:23" + }, + { + "name": "newLen", + "nativeSrc": "23720:6:23", + "nodeType": "YulIdentifier", + "src": "23720:6:23" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "23660:52:23", + "nodeType": "YulIdentifier", + "src": "23660:52:23" + }, + "nativeSrc": "23660:67:23", + "nodeType": "YulFunctionCall", + "src": "23660:67:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "23647:6:23", + "nodeType": "YulIdentifier", + "src": "23647:6:23" + }, + "nativeSrc": "23647:81:23", + "nodeType": "YulFunctionCall", + "src": "23647:81:23" + }, + "nativeSrc": "23647:81:23", + "nodeType": "YulExpressionStatement", + "src": "23647:81:23" + } + ] + }, + "nativeSrc": "23508:230:23", + "nodeType": "YulCase", + "src": "23508:230:23", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "22861:6:23", + "nodeType": "YulIdentifier", + "src": "22861:6:23" + }, + { + "kind": "number", + "nativeSrc": "22869:2:23", + "nodeType": "YulLiteral", + "src": "22869:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22858:2:23", + "nodeType": "YulIdentifier", + "src": "22858:2:23" + }, + "nativeSrc": "22858:14:23", + "nodeType": "YulFunctionCall", + "src": "22858:14:23" + }, + "nativeSrc": "22851:887:23", + "nodeType": "YulSwitch", + "src": "22851:887:23" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "22349:1395:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "22430:4:23", + "nodeType": "YulTypedName", + "src": "22430:4:23", + "type": "" + }, + { + "name": "src", + "nativeSrc": "22436:3:23", + "nodeType": "YulTypedName", + "src": "22436:3:23", + "type": "" + } + ], + "src": "22349:1395:23" + }, + { + "body": { + "nativeSrc": "23864:34:23", + "nodeType": "YulBlock", + "src": "23864:34:23", + "statements": [ + { + "nativeSrc": "23874:18:23", + "nodeType": "YulAssignment", + "src": "23874:18:23", + "value": { + "name": "pos", + "nativeSrc": "23889:3:23", + "nodeType": "YulIdentifier", + "src": "23889:3:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "23874:11:23", + "nodeType": "YulIdentifier", + "src": "23874:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "23750:148:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23836:3:23", + "nodeType": "YulTypedName", + "src": "23836:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "23841:6:23", + "nodeType": "YulTypedName", + "src": "23841:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "23852:11:23", + "nodeType": "YulTypedName", + "src": "23852:11:23", + "type": "" + } + ], + "src": "23750:148:23" + }, + { + "body": { + "nativeSrc": "24014:280:23", + "nodeType": "YulBlock", + "src": "24014:280:23", + "statements": [ + { + "nativeSrc": "24024:53:23", + "nodeType": "YulVariableDeclaration", + "src": "24024:53:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24071:5:23", + "nodeType": "YulIdentifier", + "src": "24071:5:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "24038:32:23", + "nodeType": "YulIdentifier", + "src": "24038:32:23" + }, + "nativeSrc": "24038:39:23", + "nodeType": "YulFunctionCall", + "src": "24038:39:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "24028:6:23", + "nodeType": "YulTypedName", + "src": "24028:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "24086:96:23", + "nodeType": "YulAssignment", + "src": "24086:96:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24170:3:23", + "nodeType": "YulIdentifier", + "src": "24170:3:23" + }, + { + "name": "length", + "nativeSrc": "24175:6:23", + "nodeType": "YulIdentifier", + "src": "24175:6:23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "24093:76:23", + "nodeType": "YulIdentifier", + "src": "24093:76:23" + }, + "nativeSrc": "24093:89:23", + "nodeType": "YulFunctionCall", + "src": "24093:89:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "24086:3:23", + "nodeType": "YulIdentifier", + "src": "24086:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24230:5:23", + "nodeType": "YulIdentifier", + "src": "24230:5:23" + }, + { + "kind": "number", + "nativeSrc": "24237:4:23", + "nodeType": "YulLiteral", + "src": "24237:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24226:3:23", + "nodeType": "YulIdentifier", + "src": "24226:3:23" + }, + "nativeSrc": "24226:16:23", + "nodeType": "YulFunctionCall", + "src": "24226:16:23" + }, + { + "name": "pos", + "nativeSrc": "24244:3:23", + "nodeType": "YulIdentifier", + "src": "24244:3:23" + }, + { + "name": "length", + "nativeSrc": "24249:6:23", + "nodeType": "YulIdentifier", + "src": "24249:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "24191:34:23", + "nodeType": "YulIdentifier", + "src": "24191:34:23" + }, + "nativeSrc": "24191:65:23", + "nodeType": "YulFunctionCall", + "src": "24191:65:23" + }, + "nativeSrc": "24191:65:23", + "nodeType": "YulExpressionStatement", + "src": "24191:65:23" + }, + { + "nativeSrc": "24265:23:23", + "nodeType": "YulAssignment", + "src": "24265:23:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24276:3:23", + "nodeType": "YulIdentifier", + "src": "24276:3:23" + }, + { + "name": "length", + "nativeSrc": "24281:6:23", + "nodeType": "YulIdentifier", + "src": "24281:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24272:3:23", + "nodeType": "YulIdentifier", + "src": "24272:3:23" + }, + "nativeSrc": "24272:16:23", + "nodeType": "YulFunctionCall", + "src": "24272:16:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "24265:3:23", + "nodeType": "YulIdentifier", + "src": "24265:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "23904:390:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23995:5:23", + "nodeType": "YulTypedName", + "src": "23995:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24002:3:23", + "nodeType": "YulTypedName", + "src": "24002:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24010:3:23", + "nodeType": "YulTypedName", + "src": "24010:3:23", + "type": "" + } + ], + "src": "23904:390:23" + }, + { + "body": { + "nativeSrc": "24484:251:23", + "nodeType": "YulBlock", + "src": "24484:251:23", + "statements": [ + { + "nativeSrc": "24495:102:23", + "nodeType": "YulAssignment", + "src": "24495:102:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24584:6:23", + "nodeType": "YulIdentifier", + "src": "24584:6:23" + }, + { + "name": "pos", + "nativeSrc": "24593:3:23", + "nodeType": "YulIdentifier", + "src": "24593:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "24502:81:23", + "nodeType": "YulIdentifier", + "src": "24502:81:23" + }, + "nativeSrc": "24502:95:23", + "nodeType": "YulFunctionCall", + "src": "24502:95:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "24495:3:23", + "nodeType": "YulIdentifier", + "src": "24495:3:23" + } + ] + }, + { + "nativeSrc": "24607:102:23", + "nodeType": "YulAssignment", + "src": "24607:102:23", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "24696:6:23", + "nodeType": "YulIdentifier", + "src": "24696:6:23" + }, + { + "name": "pos", + "nativeSrc": "24705:3:23", + "nodeType": "YulIdentifier", + "src": "24705:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "24614:81:23", + "nodeType": "YulIdentifier", + "src": "24614:81:23" + }, + "nativeSrc": "24614:95:23", + "nodeType": "YulFunctionCall", + "src": "24614:95:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "24607:3:23", + "nodeType": "YulIdentifier", + "src": "24607:3:23" + } + ] + }, + { + "nativeSrc": "24719:10:23", + "nodeType": "YulAssignment", + "src": "24719:10:23", + "value": { + "name": "pos", + "nativeSrc": "24726:3:23", + "nodeType": "YulIdentifier", + "src": "24726:3:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "24719:3:23", + "nodeType": "YulIdentifier", + "src": "24719:3:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "24300:435:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "24455:3:23", + "nodeType": "YulTypedName", + "src": "24455:3:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24461:6:23", + "nodeType": "YulTypedName", + "src": "24461:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24469:6:23", + "nodeType": "YulTypedName", + "src": "24469:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24480:3:23", + "nodeType": "YulTypedName", + "src": "24480:3:23", + "type": "" + } + ], + "src": "24300:435:23" + }, + { + "body": { + "nativeSrc": "24847:117:23", + "nodeType": "YulBlock", + "src": "24847:117:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24869:6:23", + "nodeType": "YulIdentifier", + "src": "24869:6:23" + }, + { + "kind": "number", + "nativeSrc": "24877:1:23", + "nodeType": "YulLiteral", + "src": "24877:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24865:3:23", + "nodeType": "YulIdentifier", + "src": "24865:3:23" + }, + "nativeSrc": "24865:14:23", + "nodeType": "YulFunctionCall", + "src": "24865:14:23" + }, + { + "hexValue": "4e6577206f776e65722063616e6e6f7420626520746865207a65726f20616464", + "kind": "string", + "nativeSrc": "24881:34:23", + "nodeType": "YulLiteral", + "src": "24881:34:23", + "type": "", + "value": "New owner cannot be the zero add" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24858:6:23", + "nodeType": "YulIdentifier", + "src": "24858:6:23" + }, + "nativeSrc": "24858:58:23", + "nodeType": "YulFunctionCall", + "src": "24858:58:23" + }, + "nativeSrc": "24858:58:23", + "nodeType": "YulExpressionStatement", + "src": "24858:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24937:6:23", + "nodeType": "YulIdentifier", + "src": "24937:6:23" + }, + { + "kind": "number", + "nativeSrc": "24945:2:23", + "nodeType": "YulLiteral", + "src": "24945:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24933:3:23", + "nodeType": "YulIdentifier", + "src": "24933:3:23" + }, + "nativeSrc": "24933:15:23", + "nodeType": "YulFunctionCall", + "src": "24933:15:23" + }, + { + "hexValue": "72657373", + "kind": "string", + "nativeSrc": "24950:6:23", + "nodeType": "YulLiteral", + "src": "24950:6:23", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24926:6:23", + "nodeType": "YulIdentifier", + "src": "24926:6:23" + }, + "nativeSrc": "24926:31:23", + "nodeType": "YulFunctionCall", + "src": "24926:31:23" + }, + "nativeSrc": "24926:31:23", + "nodeType": "YulExpressionStatement", + "src": "24926:31:23" + } + ] + }, + "name": "store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "nativeSrc": "24741:223:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "24839:6:23", + "nodeType": "YulTypedName", + "src": "24839:6:23", + "type": "" + } + ], + "src": "24741:223:23" + }, + { + "body": { + "nativeSrc": "25116:220:23", + "nodeType": "YulBlock", + "src": "25116:220:23", + "statements": [ + { + "nativeSrc": "25126:74:23", + "nodeType": "YulAssignment", + "src": "25126:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25192:3:23", + "nodeType": "YulIdentifier", + "src": "25192:3:23" + }, + { + "kind": "number", + "nativeSrc": "25197:2:23", + "nodeType": "YulLiteral", + "src": "25197:2:23", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "25133:58:23", + "nodeType": "YulIdentifier", + "src": "25133:58:23" + }, + "nativeSrc": "25133:67:23", + "nodeType": "YulFunctionCall", + "src": "25133:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25126:3:23", + "nodeType": "YulIdentifier", + "src": "25126:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25298:3:23", + "nodeType": "YulIdentifier", + "src": "25298:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "nativeSrc": "25209:88:23", + "nodeType": "YulIdentifier", + "src": "25209:88:23" + }, + "nativeSrc": "25209:93:23", + "nodeType": "YulFunctionCall", + "src": "25209:93:23" + }, + "nativeSrc": "25209:93:23", + "nodeType": "YulExpressionStatement", + "src": "25209:93:23" + }, + { + "nativeSrc": "25311:19:23", + "nodeType": "YulAssignment", + "src": "25311:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25322:3:23", + "nodeType": "YulIdentifier", + "src": "25322:3:23" + }, + { + "kind": "number", + "nativeSrc": "25327:2:23", + "nodeType": "YulLiteral", + "src": "25327:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25318:3:23", + "nodeType": "YulIdentifier", + "src": "25318:3:23" + }, + "nativeSrc": "25318:12:23", + "nodeType": "YulFunctionCall", + "src": "25318:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25311:3:23", + "nodeType": "YulIdentifier", + "src": "25311:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack", + "nativeSrc": "24970:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "25104:3:23", + "nodeType": "YulTypedName", + "src": "25104:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "25112:3:23", + "nodeType": "YulTypedName", + "src": "25112:3:23", + "type": "" + } + ], + "src": "24970:366:23" + }, + { + "body": { + "nativeSrc": "25513:248:23", + "nodeType": "YulBlock", + "src": "25513:248:23", + "statements": [ + { + "nativeSrc": "25523:26:23", + "nodeType": "YulAssignment", + "src": "25523:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25535:9:23", + "nodeType": "YulIdentifier", + "src": "25535:9:23" + }, + { + "kind": "number", + "nativeSrc": "25546:2:23", + "nodeType": "YulLiteral", + "src": "25546:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25531:3:23", + "nodeType": "YulIdentifier", + "src": "25531:3:23" + }, + "nativeSrc": "25531:18:23", + "nodeType": "YulFunctionCall", + "src": "25531:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25523:4:23", + "nodeType": "YulIdentifier", + "src": "25523:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25570:9:23", + "nodeType": "YulIdentifier", + "src": "25570:9:23" + }, + { + "kind": "number", + "nativeSrc": "25581:1:23", + "nodeType": "YulLiteral", + "src": "25581:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25566:3:23", + "nodeType": "YulIdentifier", + "src": "25566:3:23" + }, + "nativeSrc": "25566:17:23", + "nodeType": "YulFunctionCall", + "src": "25566:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25589:4:23", + "nodeType": "YulIdentifier", + "src": "25589:4:23" + }, + { + "name": "headStart", + "nativeSrc": "25595:9:23", + "nodeType": "YulIdentifier", + "src": "25595:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25585:3:23", + "nodeType": "YulIdentifier", + "src": "25585:3:23" + }, + "nativeSrc": "25585:20:23", + "nodeType": "YulFunctionCall", + "src": "25585:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25559:6:23", + "nodeType": "YulIdentifier", + "src": "25559:6:23" + }, + "nativeSrc": "25559:47:23", + "nodeType": "YulFunctionCall", + "src": "25559:47:23" + }, + "nativeSrc": "25559:47:23", + "nodeType": "YulExpressionStatement", + "src": "25559:47:23" + }, + { + "nativeSrc": "25615:139:23", + "nodeType": "YulAssignment", + "src": "25615:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25749:4:23", + "nodeType": "YulIdentifier", + "src": "25749:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack", + "nativeSrc": "25623:124:23", + "nodeType": "YulIdentifier", + "src": "25623:124:23" + }, + "nativeSrc": "25623:131:23", + "nodeType": "YulFunctionCall", + "src": "25623:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25615:4:23", + "nodeType": "YulIdentifier", + "src": "25615:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "25342:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25493:9:23", + "nodeType": "YulTypedName", + "src": "25493:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25508:4:23", + "nodeType": "YulTypedName", + "src": "25508:4:23", + "type": "" + } + ], + "src": "25342:419:23" + }, + { + "body": { + "nativeSrc": "25873:379:23", + "nodeType": "YulBlock", + "src": "25873:379:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "25895:6:23", + "nodeType": "YulIdentifier", + "src": "25895:6:23" + }, + { + "kind": "number", + "nativeSrc": "25903:1:23", + "nodeType": "YulLiteral", + "src": "25903:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25891:3:23", + "nodeType": "YulIdentifier", + "src": "25891:3:23" + }, + "nativeSrc": "25891:14:23", + "nodeType": "YulFunctionCall", + "src": "25891:14:23" + }, + { + "kind": "number", + "nativeSrc": "25907:66:23", + "nodeType": "YulLiteral", + "src": "25907:66:23", + "type": "", + "value": "0x7b226e616d65223a2022466c756666792046757279222c202264657363726970" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25884:6:23", + "nodeType": "YulIdentifier", + "src": "25884:6:23" + }, + "nativeSrc": "25884:90:23", + "nodeType": "YulFunctionCall", + "src": "25884:90:23" + }, + "nativeSrc": "25884:90:23", + "nodeType": "YulExpressionStatement", + "src": "25884:90:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "25995:6:23", + "nodeType": "YulIdentifier", + "src": "25995:6:23" + }, + { + "kind": "number", + "nativeSrc": "26003:2:23", + "nodeType": "YulLiteral", + "src": "26003:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25991:3:23", + "nodeType": "YulIdentifier", + "src": "25991:3:23" + }, + "nativeSrc": "25991:15:23", + "nodeType": "YulFunctionCall", + "src": "25991:15:23" + }, + { + "kind": "number", + "nativeSrc": "26008:66:23", + "nodeType": "YulLiteral", + "src": "26008:66:23", + "type": "", + "value": "0x74696f6e223a2022596f75722061636365737320696e746f20616e7920657665" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25984:6:23", + "nodeType": "YulIdentifier", + "src": "25984:6:23" + }, + "nativeSrc": "25984:91:23", + "nodeType": "YulFunctionCall", + "src": "25984:91:23" + }, + "nativeSrc": "25984:91:23", + "nodeType": "YulExpressionStatement", + "src": "25984:91:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "26096:6:23", + "nodeType": "YulIdentifier", + "src": "26096:6:23" + }, + { + "kind": "number", + "nativeSrc": "26104:2:23", + "nodeType": "YulLiteral", + "src": "26104:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26092:3:23", + "nodeType": "YulIdentifier", + "src": "26092:3:23" + }, + "nativeSrc": "26092:15:23", + "nodeType": "YulFunctionCall", + "src": "26092:15:23" + }, + { + "hexValue": "6e742063726561746564207573696e67207468697320746f6b656e2061646472", + "kind": "string", + "nativeSrc": "26109:34:23", + "nodeType": "YulLiteral", + "src": "26109:34:23", + "type": "", + "value": "nt created using this token addr" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26085:6:23", + "nodeType": "YulIdentifier", + "src": "26085:6:23" + }, + "nativeSrc": "26085:59:23", + "nodeType": "YulFunctionCall", + "src": "26085:59:23" + }, + "nativeSrc": "26085:59:23", + "nodeType": "YulExpressionStatement", + "src": "26085:59:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "26165:6:23", + "nodeType": "YulIdentifier", + "src": "26165:6:23" + }, + { + "kind": "number", + "nativeSrc": "26173:2:23", + "nodeType": "YulLiteral", + "src": "26173:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26161:3:23", + "nodeType": "YulIdentifier", + "src": "26161:3:23" + }, + "nativeSrc": "26161:15:23", + "nodeType": "YulFunctionCall", + "src": "26161:15:23" + }, + { + "kind": "number", + "nativeSrc": "26178:66:23", + "nodeType": "YulLiteral", + "src": "26178:66:23", + "type": "", + "value": "0x657373222c2022696d616765223a220000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26154:6:23", + "nodeType": "YulIdentifier", + "src": "26154:6:23" + }, + "nativeSrc": "26154:91:23", + "nodeType": "YulFunctionCall", + "src": "26154:91:23" + }, + "nativeSrc": "26154:91:23", + "nodeType": "YulExpressionStatement", + "src": "26154:91:23" + } + ] + }, + "name": "store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "nativeSrc": "25767:485:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "25865:6:23", + "nodeType": "YulTypedName", + "src": "25865:6:23", + "type": "" + } + ], + "src": "25767:485:23" + }, + { + "body": { + "nativeSrc": "26422:240:23", + "nodeType": "YulBlock", + "src": "26422:240:23", + "statements": [ + { + "nativeSrc": "26432:93:23", + "nodeType": "YulAssignment", + "src": "26432:93:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26516:3:23", + "nodeType": "YulIdentifier", + "src": "26516:3:23" + }, + { + "kind": "number", + "nativeSrc": "26521:3:23", + "nodeType": "YulLiteral", + "src": "26521:3:23", + "type": "", + "value": "111" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26439:76:23", + "nodeType": "YulIdentifier", + "src": "26439:76:23" + }, + "nativeSrc": "26439:86:23", + "nodeType": "YulFunctionCall", + "src": "26439:86:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "26432:3:23", + "nodeType": "YulIdentifier", + "src": "26432:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26623:3:23", + "nodeType": "YulIdentifier", + "src": "26623:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "nativeSrc": "26534:88:23", + "nodeType": "YulIdentifier", + "src": "26534:88:23" + }, + "nativeSrc": "26534:93:23", + "nodeType": "YulFunctionCall", + "src": "26534:93:23" + }, + "nativeSrc": "26534:93:23", + "nodeType": "YulExpressionStatement", + "src": "26534:93:23" + }, + { + "nativeSrc": "26636:20:23", + "nodeType": "YulAssignment", + "src": "26636:20:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26647:3:23", + "nodeType": "YulIdentifier", + "src": "26647:3:23" + }, + { + "kind": "number", + "nativeSrc": "26652:3:23", + "nodeType": "YulLiteral", + "src": "26652:3:23", + "type": "", + "value": "111" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26643:3:23", + "nodeType": "YulIdentifier", + "src": "26643:3:23" + }, + "nativeSrc": "26643:13:23", + "nodeType": "YulFunctionCall", + "src": "26643:13:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "26636:3:23", + "nodeType": "YulIdentifier", + "src": "26636:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26258:404:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "26410:3:23", + "nodeType": "YulTypedName", + "src": "26410:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "26418:3:23", + "nodeType": "YulTypedName", + "src": "26418:3:23", + "type": "" + } + ], + "src": "26258:404:23" + }, + { + "body": { + "nativeSrc": "26774:108:23", + "nodeType": "YulBlock", + "src": "26774:108:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "26796:6:23", + "nodeType": "YulIdentifier", + "src": "26796:6:23" + }, + { + "kind": "number", + "nativeSrc": "26804:1:23", + "nodeType": "YulLiteral", + "src": "26804:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26792:3:23", + "nodeType": "YulIdentifier", + "src": "26792:3:23" + }, + "nativeSrc": "26792:14:23", + "nodeType": "YulFunctionCall", + "src": "26792:14:23" + }, + { + "kind": "number", + "nativeSrc": "26808:66:23", + "nodeType": "YulLiteral", + "src": "26808:66:23", + "type": "", + "value": "0x227d000000000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26785:6:23", + "nodeType": "YulIdentifier", + "src": "26785:6:23" + }, + "nativeSrc": "26785:90:23", + "nodeType": "YulFunctionCall", + "src": "26785:90:23" + }, + "nativeSrc": "26785:90:23", + "nodeType": "YulExpressionStatement", + "src": "26785:90:23" + } + ] + }, + "name": "store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "nativeSrc": "26668:214:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "26766:6:23", + "nodeType": "YulTypedName", + "src": "26766:6:23", + "type": "" + } + ], + "src": "26668:214:23" + }, + { + "body": { + "nativeSrc": "27052:236:23", + "nodeType": "YulBlock", + "src": "27052:236:23", + "statements": [ + { + "nativeSrc": "27062:91:23", + "nodeType": "YulAssignment", + "src": "27062:91:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27146:3:23", + "nodeType": "YulIdentifier", + "src": "27146:3:23" + }, + { + "kind": "number", + "nativeSrc": "27151:1:23", + "nodeType": "YulLiteral", + "src": "27151:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27069:76:23", + "nodeType": "YulIdentifier", + "src": "27069:76:23" + }, + "nativeSrc": "27069:84:23", + "nodeType": "YulFunctionCall", + "src": "27069:84:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27062:3:23", + "nodeType": "YulIdentifier", + "src": "27062:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27251:3:23", + "nodeType": "YulIdentifier", + "src": "27251:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "nativeSrc": "27162:88:23", + "nodeType": "YulIdentifier", + "src": "27162:88:23" + }, + "nativeSrc": "27162:93:23", + "nodeType": "YulFunctionCall", + "src": "27162:93:23" + }, + "nativeSrc": "27162:93:23", + "nodeType": "YulExpressionStatement", + "src": "27162:93:23" + }, + { + "nativeSrc": "27264:18:23", + "nodeType": "YulAssignment", + "src": "27264:18:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27275:3:23", + "nodeType": "YulIdentifier", + "src": "27275:3:23" + }, + { + "kind": "number", + "nativeSrc": "27280:1:23", + "nodeType": "YulLiteral", + "src": "27280:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27271:3:23", + "nodeType": "YulIdentifier", + "src": "27271:3:23" + }, + "nativeSrc": "27271:11:23", + "nodeType": "YulFunctionCall", + "src": "27271:11:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27264:3:23", + "nodeType": "YulIdentifier", + "src": "27264:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26888:400:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "27040:3:23", + "nodeType": "YulTypedName", + "src": "27040:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27048:3:23", + "nodeType": "YulTypedName", + "src": "27048:3:23", + "type": "" + } + ], + "src": "26888:400:23" + }, + { + "body": { + "nativeSrc": "27632:469:23", + "nodeType": "YulBlock", + "src": "27632:469:23", + "statements": [ + { + "nativeSrc": "27643:155:23", + "nodeType": "YulAssignment", + "src": "27643:155:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27794:3:23", + "nodeType": "YulIdentifier", + "src": "27794:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27650:142:23", + "nodeType": "YulIdentifier", + "src": "27650:142:23" + }, + "nativeSrc": "27650:148:23", + "nodeType": "YulFunctionCall", + "src": "27650:148:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27643:3:23", + "nodeType": "YulIdentifier", + "src": "27643:3:23" + } + ] + }, + { + "nativeSrc": "27808:102:23", + "nodeType": "YulAssignment", + "src": "27808:102:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "27897:6:23", + "nodeType": "YulIdentifier", + "src": "27897:6:23" + }, + { + "name": "pos", + "nativeSrc": "27906:3:23", + "nodeType": "YulIdentifier", + "src": "27906:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27815:81:23", + "nodeType": "YulIdentifier", + "src": "27815:81:23" + }, + "nativeSrc": "27815:95:23", + "nodeType": "YulFunctionCall", + "src": "27815:95:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27808:3:23", + "nodeType": "YulIdentifier", + "src": "27808:3:23" + } + ] + }, + { + "nativeSrc": "27920:155:23", + "nodeType": "YulAssignment", + "src": "27920:155:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28071:3:23", + "nodeType": "YulIdentifier", + "src": "28071:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27927:142:23", + "nodeType": "YulIdentifier", + "src": "27927:142:23" + }, + "nativeSrc": "27927:148:23", + "nodeType": "YulFunctionCall", + "src": "27927:148:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27920:3:23", + "nodeType": "YulIdentifier", + "src": "27920:3:23" + } + ] + }, + { + "nativeSrc": "28085:10:23", + "nodeType": "YulAssignment", + "src": "28085:10:23", + "value": { + "name": "pos", + "nativeSrc": "28092:3:23", + "nodeType": "YulIdentifier", + "src": "28092:3:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28085:3:23", + "nodeType": "YulIdentifier", + "src": "28085:3:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "27294:807:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "27611:3:23", + "nodeType": "YulTypedName", + "src": "27611:3:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "27617:6:23", + "nodeType": "YulTypedName", + "src": "27617:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27628:3:23", + "nodeType": "YulTypedName", + "src": "27628:3:23", + "type": "" + } + ], + "src": "27294:807:23" + }, + { + "body": { + "nativeSrc": "28213:73:23", + "nodeType": "YulBlock", + "src": "28213:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "28235:6:23", + "nodeType": "YulIdentifier", + "src": "28235:6:23" + }, + { + "kind": "number", + "nativeSrc": "28243:1:23", + "nodeType": "YulLiteral", + "src": "28243:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28231:3:23", + "nodeType": "YulIdentifier", + "src": "28231:3:23" + }, + "nativeSrc": "28231:14:23", + "nodeType": "YulFunctionCall", + "src": "28231:14:23" + }, + { + "hexValue": "646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c", + "kind": "string", + "nativeSrc": "28247:31:23", + "nodeType": "YulLiteral", + "src": "28247:31:23", + "type": "", + "value": "data:application/json;base64," + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28224:6:23", + "nodeType": "YulIdentifier", + "src": "28224:6:23" + }, + "nativeSrc": "28224:55:23", + "nodeType": "YulFunctionCall", + "src": "28224:55:23" + }, + "nativeSrc": "28224:55:23", + "nodeType": "YulExpressionStatement", + "src": "28224:55:23" + } + ] + }, + "name": "store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "nativeSrc": "28107:179:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "28205:6:23", + "nodeType": "YulTypedName", + "src": "28205:6:23", + "type": "" + } + ], + "src": "28107:179:23" + }, + { + "body": { + "nativeSrc": "28456:238:23", + "nodeType": "YulBlock", + "src": "28456:238:23", + "statements": [ + { + "nativeSrc": "28466:92:23", + "nodeType": "YulAssignment", + "src": "28466:92:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28550:3:23", + "nodeType": "YulIdentifier", + "src": "28550:3:23" + }, + { + "kind": "number", + "nativeSrc": "28555:2:23", + "nodeType": "YulLiteral", + "src": "28555:2:23", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28473:76:23", + "nodeType": "YulIdentifier", + "src": "28473:76:23" + }, + "nativeSrc": "28473:85:23", + "nodeType": "YulFunctionCall", + "src": "28473:85:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28466:3:23", + "nodeType": "YulIdentifier", + "src": "28466:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28656:3:23", + "nodeType": "YulIdentifier", + "src": "28656:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "nativeSrc": "28567:88:23", + "nodeType": "YulIdentifier", + "src": "28567:88:23" + }, + "nativeSrc": "28567:93:23", + "nodeType": "YulFunctionCall", + "src": "28567:93:23" + }, + "nativeSrc": "28567:93:23", + "nodeType": "YulExpressionStatement", + "src": "28567:93:23" + }, + { + "nativeSrc": "28669:19:23", + "nodeType": "YulAssignment", + "src": "28669:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28680:3:23", + "nodeType": "YulIdentifier", + "src": "28680:3:23" + }, + { + "kind": "number", + "nativeSrc": "28685:2:23", + "nodeType": "YulLiteral", + "src": "28685:2:23", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28676:3:23", + "nodeType": "YulIdentifier", + "src": "28676:3:23" + }, + "nativeSrc": "28676:12:23", + "nodeType": "YulFunctionCall", + "src": "28676:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28669:3:23", + "nodeType": "YulIdentifier", + "src": "28669:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28292:402:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "28444:3:23", + "nodeType": "YulTypedName", + "src": "28444:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28452:3:23", + "nodeType": "YulTypedName", + "src": "28452:3:23", + "type": "" + } + ], + "src": "28292:402:23" + }, + { + "body": { + "nativeSrc": "28937:304:23", + "nodeType": "YulBlock", + "src": "28937:304:23", + "statements": [ + { + "nativeSrc": "28948:155:23", + "nodeType": "YulAssignment", + "src": "28948:155:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29099:3:23", + "nodeType": "YulIdentifier", + "src": "29099:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28955:142:23", + "nodeType": "YulIdentifier", + "src": "28955:142:23" + }, + "nativeSrc": "28955:148:23", + "nodeType": "YulFunctionCall", + "src": "28955:148:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28948:3:23", + "nodeType": "YulIdentifier", + "src": "28948:3:23" + } + ] + }, + { + "nativeSrc": "29113:102:23", + "nodeType": "YulAssignment", + "src": "29113:102:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "29202:6:23", + "nodeType": "YulIdentifier", + "src": "29202:6:23" + }, + { + "name": "pos", + "nativeSrc": "29211:3:23", + "nodeType": "YulIdentifier", + "src": "29211:3:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29120:81:23", + "nodeType": "YulIdentifier", + "src": "29120:81:23" + }, + "nativeSrc": "29120:95:23", + "nodeType": "YulFunctionCall", + "src": "29120:95:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29113:3:23", + "nodeType": "YulIdentifier", + "src": "29113:3:23" + } + ] + }, + { + "nativeSrc": "29225:10:23", + "nodeType": "YulAssignment", + "src": "29225:10:23", + "value": { + "name": "pos", + "nativeSrc": "29232:3:23", + "nodeType": "YulIdentifier", + "src": "29232:3:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "29225:3:23", + "nodeType": "YulIdentifier", + "src": "29225:3:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "28700:541:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "28916:3:23", + "nodeType": "YulTypedName", + "src": "28916:3:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "28922:6:23", + "nodeType": "YulTypedName", + "src": "28922:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28933:3:23", + "nodeType": "YulTypedName", + "src": "28933:3:23", + "type": "" + } + ], + "src": "28700:541:23" + }, + { + "body": { + "nativeSrc": "29305:40:23", + "nodeType": "YulBlock", + "src": "29305:40:23", + "statements": [ + { + "nativeSrc": "29316:22:23", + "nodeType": "YulAssignment", + "src": "29316:22:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "29332:5:23", + "nodeType": "YulIdentifier", + "src": "29332:5:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29326:5:23", + "nodeType": "YulIdentifier", + "src": "29326:5:23" + }, + "nativeSrc": "29326:12:23", + "nodeType": "YulFunctionCall", + "src": "29326:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "29316:6:23", + "nodeType": "YulIdentifier", + "src": "29316:6:23" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "29247:98:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "29288:5:23", + "nodeType": "YulTypedName", + "src": "29288:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "29298:6:23", + "nodeType": "YulTypedName", + "src": "29298:6:23", + "type": "" + } + ], + "src": "29247:98:23" + }, + { + "body": { + "nativeSrc": "29446:73:23", + "nodeType": "YulBlock", + "src": "29446:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29463:3:23", + "nodeType": "YulIdentifier", + "src": "29463:3:23" + }, + { + "name": "length", + "nativeSrc": "29468:6:23", + "nodeType": "YulIdentifier", + "src": "29468:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29456:6:23", + "nodeType": "YulIdentifier", + "src": "29456:6:23" + }, + "nativeSrc": "29456:19:23", + "nodeType": "YulFunctionCall", + "src": "29456:19:23" + }, + "nativeSrc": "29456:19:23", + "nodeType": "YulExpressionStatement", + "src": "29456:19:23" + }, + { + "nativeSrc": "29484:29:23", + "nodeType": "YulAssignment", + "src": "29484:29:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29503:3:23", + "nodeType": "YulIdentifier", + "src": "29503:3:23" + }, + { + "kind": "number", + "nativeSrc": "29508:4:23", + "nodeType": "YulLiteral", + "src": "29508:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29499:3:23", + "nodeType": "YulIdentifier", + "src": "29499:3:23" + }, + "nativeSrc": "29499:14:23", + "nodeType": "YulFunctionCall", + "src": "29499:14:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "29484:11:23", + "nodeType": "YulIdentifier", + "src": "29484:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "29351:168:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "29418:3:23", + "nodeType": "YulTypedName", + "src": "29418:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "29423:6:23", + "nodeType": "YulTypedName", + "src": "29423:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "29434:11:23", + "nodeType": "YulTypedName", + "src": "29434:11:23", + "type": "" + } + ], + "src": "29351:168:23" + }, + { + "body": { + "nativeSrc": "29615:283:23", + "nodeType": "YulBlock", + "src": "29615:283:23", + "statements": [ + { + "nativeSrc": "29625:52:23", + "nodeType": "YulVariableDeclaration", + "src": "29625:52:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "29671:5:23", + "nodeType": "YulIdentifier", + "src": "29671:5:23" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "29639:31:23", + "nodeType": "YulIdentifier", + "src": "29639:31:23" + }, + "nativeSrc": "29639:38:23", + "nodeType": "YulFunctionCall", + "src": "29639:38:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "29629:6:23", + "nodeType": "YulTypedName", + "src": "29629:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "29686:77:23", + "nodeType": "YulAssignment", + "src": "29686:77:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29751:3:23", + "nodeType": "YulIdentifier", + "src": "29751:3:23" + }, + { + "name": "length", + "nativeSrc": "29756:6:23", + "nodeType": "YulIdentifier", + "src": "29756:6:23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "29693:57:23", + "nodeType": "YulIdentifier", + "src": "29693:57:23" + }, + "nativeSrc": "29693:70:23", + "nodeType": "YulFunctionCall", + "src": "29693:70:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29686:3:23", + "nodeType": "YulIdentifier", + "src": "29686:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29811:5:23", + "nodeType": "YulIdentifier", + "src": "29811:5:23" + }, + { + "kind": "number", + "nativeSrc": "29818:4:23", + "nodeType": "YulLiteral", + "src": "29818:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29807:3:23", + "nodeType": "YulIdentifier", + "src": "29807:3:23" + }, + "nativeSrc": "29807:16:23", + "nodeType": "YulFunctionCall", + "src": "29807:16:23" + }, + { + "name": "pos", + "nativeSrc": "29825:3:23", + "nodeType": "YulIdentifier", + "src": "29825:3:23" + }, + { + "name": "length", + "nativeSrc": "29830:6:23", + "nodeType": "YulIdentifier", + "src": "29830:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "29772:34:23", + "nodeType": "YulIdentifier", + "src": "29772:34:23" + }, + "nativeSrc": "29772:65:23", + "nodeType": "YulFunctionCall", + "src": "29772:65:23" + }, + "nativeSrc": "29772:65:23", + "nodeType": "YulExpressionStatement", + "src": "29772:65:23" + }, + { + "nativeSrc": "29846:46:23", + "nodeType": "YulAssignment", + "src": "29846:46:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29857:3:23", + "nodeType": "YulIdentifier", + "src": "29857:3:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "29884:6:23", + "nodeType": "YulIdentifier", + "src": "29884:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "29862:21:23", + "nodeType": "YulIdentifier", + "src": "29862:21:23" + }, + "nativeSrc": "29862:29:23", + "nodeType": "YulFunctionCall", + "src": "29862:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29853:3:23", + "nodeType": "YulIdentifier", + "src": "29853:3:23" + }, + "nativeSrc": "29853:39:23", + "nodeType": "YulFunctionCall", + "src": "29853:39:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "29846:3:23", + "nodeType": "YulIdentifier", + "src": "29846:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "29525:373:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "29596:5:23", + "nodeType": "YulTypedName", + "src": "29596:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "29603:3:23", + "nodeType": "YulTypedName", + "src": "29603:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "29611:3:23", + "nodeType": "YulTypedName", + "src": "29611:3:23", + "type": "" + } + ], + "src": "29525:373:23" + }, + { + "body": { + "nativeSrc": "30104:440:23", + "nodeType": "YulBlock", + "src": "30104:440:23", + "statements": [ + { + "nativeSrc": "30114:27:23", + "nodeType": "YulAssignment", + "src": "30114:27:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30126:9:23", + "nodeType": "YulIdentifier", + "src": "30126:9:23" + }, + { + "kind": "number", + "nativeSrc": "30137:3:23", + "nodeType": "YulLiteral", + "src": "30137:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30122:3:23", + "nodeType": "YulIdentifier", + "src": "30122:3:23" + }, + "nativeSrc": "30122:19:23", + "nodeType": "YulFunctionCall", + "src": "30122:19:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30114:4:23", + "nodeType": "YulIdentifier", + "src": "30114:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "30195:6:23", + "nodeType": "YulIdentifier", + "src": "30195:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30208:9:23", + "nodeType": "YulIdentifier", + "src": "30208:9:23" + }, + { + "kind": "number", + "nativeSrc": "30219:1:23", + "nodeType": "YulLiteral", + "src": "30219:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30204:3:23", + "nodeType": "YulIdentifier", + "src": "30204:3:23" + }, + "nativeSrc": "30204:17:23", + "nodeType": "YulFunctionCall", + "src": "30204:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "30151:43:23", + "nodeType": "YulIdentifier", + "src": "30151:43:23" + }, + "nativeSrc": "30151:71:23", + "nodeType": "YulFunctionCall", + "src": "30151:71:23" + }, + "nativeSrc": "30151:71:23", + "nodeType": "YulExpressionStatement", + "src": "30151:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "30276:6:23", + "nodeType": "YulIdentifier", + "src": "30276:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30289:9:23", + "nodeType": "YulIdentifier", + "src": "30289:9:23" + }, + { + "kind": "number", + "nativeSrc": "30300:2:23", + "nodeType": "YulLiteral", + "src": "30300:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30285:3:23", + "nodeType": "YulIdentifier", + "src": "30285:3:23" + }, + "nativeSrc": "30285:18:23", + "nodeType": "YulFunctionCall", + "src": "30285:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "30232:43:23", + "nodeType": "YulIdentifier", + "src": "30232:43:23" + }, + "nativeSrc": "30232:72:23", + "nodeType": "YulFunctionCall", + "src": "30232:72:23" + }, + "nativeSrc": "30232:72:23", + "nodeType": "YulExpressionStatement", + "src": "30232:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "30358:6:23", + "nodeType": "YulIdentifier", + "src": "30358:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30371:9:23", + "nodeType": "YulIdentifier", + "src": "30371:9:23" + }, + { + "kind": "number", + "nativeSrc": "30382:2:23", + "nodeType": "YulLiteral", + "src": "30382:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30367:3:23", + "nodeType": "YulIdentifier", + "src": "30367:3:23" + }, + "nativeSrc": "30367:18:23", + "nodeType": "YulFunctionCall", + "src": "30367:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "30314:43:23", + "nodeType": "YulIdentifier", + "src": "30314:43:23" + }, + "nativeSrc": "30314:72:23", + "nodeType": "YulFunctionCall", + "src": "30314:72:23" + }, + "nativeSrc": "30314:72:23", + "nodeType": "YulExpressionStatement", + "src": "30314:72:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30407:9:23", + "nodeType": "YulIdentifier", + "src": "30407:9:23" + }, + { + "kind": "number", + "nativeSrc": "30418:2:23", + "nodeType": "YulLiteral", + "src": "30418:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30403:3:23", + "nodeType": "YulIdentifier", + "src": "30403:3:23" + }, + "nativeSrc": "30403:18:23", + "nodeType": "YulFunctionCall", + "src": "30403:18:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "30427:4:23", + "nodeType": "YulIdentifier", + "src": "30427:4:23" + }, + { + "name": "headStart", + "nativeSrc": "30433:9:23", + "nodeType": "YulIdentifier", + "src": "30433:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30423:3:23", + "nodeType": "YulIdentifier", + "src": "30423:3:23" + }, + "nativeSrc": "30423:20:23", + "nodeType": "YulFunctionCall", + "src": "30423:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30396:6:23", + "nodeType": "YulIdentifier", + "src": "30396:6:23" + }, + "nativeSrc": "30396:48:23", + "nodeType": "YulFunctionCall", + "src": "30396:48:23" + }, + "nativeSrc": "30396:48:23", + "nodeType": "YulExpressionStatement", + "src": "30396:48:23" + }, + { + "nativeSrc": "30453:84:23", + "nodeType": "YulAssignment", + "src": "30453:84:23", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "30523:6:23", + "nodeType": "YulIdentifier", + "src": "30523:6:23" + }, + { + "name": "tail", + "nativeSrc": "30532:4:23", + "nodeType": "YulIdentifier", + "src": "30532:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "30461:61:23", + "nodeType": "YulIdentifier", + "src": "30461:61:23" + }, + "nativeSrc": "30461:76:23", + "nodeType": "YulFunctionCall", + "src": "30461:76:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30453:4:23", + "nodeType": "YulIdentifier", + "src": "30453:4:23" + } + ] + } + ] + }, + "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", + "nativeSrc": "29904:640:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30052:9:23", + "nodeType": "YulTypedName", + "src": "30052:9:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "30064:6:23", + "nodeType": "YulTypedName", + "src": "30064:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "30072:6:23", + "nodeType": "YulTypedName", + "src": "30072:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "30080:6:23", + "nodeType": "YulTypedName", + "src": "30080:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "30088:6:23", + "nodeType": "YulTypedName", + "src": "30088:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "30099:4:23", + "nodeType": "YulTypedName", + "src": "30099:4:23", + "type": "" + } + ], + "src": "29904:640:23" + }, + { + "body": { + "nativeSrc": "30612:79:23", + "nodeType": "YulBlock", + "src": "30612:79:23", + "statements": [ + { + "nativeSrc": "30622:22:23", + "nodeType": "YulAssignment", + "src": "30622:22:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "30637:6:23", + "nodeType": "YulIdentifier", + "src": "30637:6:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "30631:5:23", + "nodeType": "YulIdentifier", + "src": "30631:5:23" + }, + "nativeSrc": "30631:13:23", + "nodeType": "YulFunctionCall", + "src": "30631:13:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "30622:5:23", + "nodeType": "YulIdentifier", + "src": "30622:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30679:5:23", + "nodeType": "YulIdentifier", + "src": "30679:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "30653:25:23", + "nodeType": "YulIdentifier", + "src": "30653:25:23" + }, + "nativeSrc": "30653:32:23", + "nodeType": "YulFunctionCall", + "src": "30653:32:23" + }, + "nativeSrc": "30653:32:23", + "nodeType": "YulExpressionStatement", + "src": "30653:32:23" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "30550:141:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "30590:6:23", + "nodeType": "YulTypedName", + "src": "30590:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "30598:3:23", + "nodeType": "YulTypedName", + "src": "30598:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "30606:5:23", + "nodeType": "YulTypedName", + "src": "30606:5:23", + "type": "" + } + ], + "src": "30550:141:23" + }, + { + "body": { + "nativeSrc": "30773:273:23", + "nodeType": "YulBlock", + "src": "30773:273:23", + "statements": [ + { + "body": { + "nativeSrc": "30819:83:23", + "nodeType": "YulBlock", + "src": "30819:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "30821:77:23", + "nodeType": "YulIdentifier", + "src": "30821:77:23" + }, + "nativeSrc": "30821:79:23", + "nodeType": "YulFunctionCall", + "src": "30821:79:23" + }, + "nativeSrc": "30821:79:23", + "nodeType": "YulExpressionStatement", + "src": "30821:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "30794:7:23", + "nodeType": "YulIdentifier", + "src": "30794:7:23" + }, + { + "name": "headStart", + "nativeSrc": "30803:9:23", + "nodeType": "YulIdentifier", + "src": "30803:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30790:3:23", + "nodeType": "YulIdentifier", + "src": "30790:3:23" + }, + "nativeSrc": "30790:23:23", + "nodeType": "YulFunctionCall", + "src": "30790:23:23" + }, + { + "kind": "number", + "nativeSrc": "30815:2:23", + "nodeType": "YulLiteral", + "src": "30815:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "30786:3:23", + "nodeType": "YulIdentifier", + "src": "30786:3:23" + }, + "nativeSrc": "30786:32:23", + "nodeType": "YulFunctionCall", + "src": "30786:32:23" + }, + "nativeSrc": "30783:119:23", + "nodeType": "YulIf", + "src": "30783:119:23" + }, + { + "nativeSrc": "30912:127:23", + "nodeType": "YulBlock", + "src": "30912:127:23", + "statements": [ + { + "nativeSrc": "30927:15:23", + "nodeType": "YulVariableDeclaration", + "src": "30927:15:23", + "value": { + "kind": "number", + "nativeSrc": "30941:1:23", + "nodeType": "YulLiteral", + "src": "30941:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "30931:6:23", + "nodeType": "YulTypedName", + "src": "30931:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "30956:73:23", + "nodeType": "YulAssignment", + "src": "30956:73:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31001:9:23", + "nodeType": "YulIdentifier", + "src": "31001:9:23" + }, + { + "name": "offset", + "nativeSrc": "31012:6:23", + "nodeType": "YulIdentifier", + "src": "31012:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30997:3:23", + "nodeType": "YulIdentifier", + "src": "30997:3:23" + }, + "nativeSrc": "30997:22:23", + "nodeType": "YulFunctionCall", + "src": "30997:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "31021:7:23", + "nodeType": "YulIdentifier", + "src": "31021:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "30966:30:23", + "nodeType": "YulIdentifier", + "src": "30966:30:23" + }, + "nativeSrc": "30966:63:23", + "nodeType": "YulFunctionCall", + "src": "30966:63:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "30956:6:23", + "nodeType": "YulIdentifier", + "src": "30956:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "30697:349:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30743:9:23", + "nodeType": "YulTypedName", + "src": "30743:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "30754:7:23", + "nodeType": "YulTypedName", + "src": "30754:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "30766:6:23", + "nodeType": "YulTypedName", + "src": "30766:6:23", + "type": "" + } + ], + "src": "30697:349:23" + }, + { + "body": { + "nativeSrc": "31178:206:23", + "nodeType": "YulBlock", + "src": "31178:206:23", + "statements": [ + { + "nativeSrc": "31188:26:23", + "nodeType": "YulAssignment", + "src": "31188:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31200:9:23", + "nodeType": "YulIdentifier", + "src": "31200:9:23" + }, + { + "kind": "number", + "nativeSrc": "31211:2:23", + "nodeType": "YulLiteral", + "src": "31211:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31196:3:23", + "nodeType": "YulIdentifier", + "src": "31196:3:23" + }, + "nativeSrc": "31196:18:23", + "nodeType": "YulFunctionCall", + "src": "31196:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31188:4:23", + "nodeType": "YulIdentifier", + "src": "31188:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "31268:6:23", + "nodeType": "YulIdentifier", + "src": "31268:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31281:9:23", + "nodeType": "YulIdentifier", + "src": "31281:9:23" + }, + { + "kind": "number", + "nativeSrc": "31292:1:23", + "nodeType": "YulLiteral", + "src": "31292:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31277:3:23", + "nodeType": "YulIdentifier", + "src": "31277:3:23" + }, + "nativeSrc": "31277:17:23", + "nodeType": "YulFunctionCall", + "src": "31277:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "31224:43:23", + "nodeType": "YulIdentifier", + "src": "31224:43:23" + }, + "nativeSrc": "31224:71:23", + "nodeType": "YulFunctionCall", + "src": "31224:71:23" + }, + "nativeSrc": "31224:71:23", + "nodeType": "YulExpressionStatement", + "src": "31224:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "31349:6:23", + "nodeType": "YulIdentifier", + "src": "31349:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31362:9:23", + "nodeType": "YulIdentifier", + "src": "31362:9:23" + }, + { + "kind": "number", + "nativeSrc": "31373:2:23", + "nodeType": "YulLiteral", + "src": "31373:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31358:3:23", + "nodeType": "YulIdentifier", + "src": "31358:3:23" + }, + "nativeSrc": "31358:18:23", + "nodeType": "YulFunctionCall", + "src": "31358:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "31305:43:23", + "nodeType": "YulIdentifier", + "src": "31305:43:23" + }, + "nativeSrc": "31305:72:23", + "nodeType": "YulFunctionCall", + "src": "31305:72:23" + }, + "nativeSrc": "31305:72:23", + "nodeType": "YulExpressionStatement", + "src": "31305:72:23" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "31052:332:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31142:9:23", + "nodeType": "YulTypedName", + "src": "31142:9:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31154:6:23", + "nodeType": "YulTypedName", + "src": "31154:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31162:6:23", + "nodeType": "YulTypedName", + "src": "31162:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31173:4:23", + "nodeType": "YulTypedName", + "src": "31173:4:23", + "type": "" + } + ], + "src": "31052:332:23" + }, + { + "body": { + "nativeSrc": "31418:152:23", + "nodeType": "YulBlock", + "src": "31418:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31435:1:23", + "nodeType": "YulLiteral", + "src": "31435:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "31438:77:23", + "nodeType": "YulLiteral", + "src": "31438:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31428:6:23", + "nodeType": "YulIdentifier", + "src": "31428:6:23" + }, + "nativeSrc": "31428:88:23", + "nodeType": "YulFunctionCall", + "src": "31428:88:23" + }, + "nativeSrc": "31428:88:23", + "nodeType": "YulExpressionStatement", + "src": "31428:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31532:1:23", + "nodeType": "YulLiteral", + "src": "31532:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "31535:4:23", + "nodeType": "YulLiteral", + "src": "31535:4:23", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31525:6:23", + "nodeType": "YulIdentifier", + "src": "31525:6:23" + }, + "nativeSrc": "31525:15:23", + "nodeType": "YulFunctionCall", + "src": "31525:15:23" + }, + "nativeSrc": "31525:15:23", + "nodeType": "YulExpressionStatement", + "src": "31525:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31556:1:23", + "nodeType": "YulLiteral", + "src": "31556:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "31559:4:23", + "nodeType": "YulLiteral", + "src": "31559:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "31549:6:23", + "nodeType": "YulIdentifier", + "src": "31549:6:23" + }, + "nativeSrc": "31549:15:23", + "nodeType": "YulFunctionCall", + "src": "31549:15:23" + }, + "nativeSrc": "31549:15:23", + "nodeType": "YulExpressionStatement", + "src": "31549:15:23" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "31390:180:23", + "nodeType": "YulFunctionDefinition", + "src": "31390:180:23" + }, + { + "body": { + "nativeSrc": "31624:362:23", + "nodeType": "YulBlock", + "src": "31624:362:23", + "statements": [ + { + "nativeSrc": "31634:25:23", + "nodeType": "YulAssignment", + "src": "31634:25:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31657:1:23", + "nodeType": "YulIdentifier", + "src": "31657:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31639:17:23", + "nodeType": "YulIdentifier", + "src": "31639:17:23" + }, + "nativeSrc": "31639:20:23", + "nodeType": "YulFunctionCall", + "src": "31639:20:23" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "31634:1:23", + "nodeType": "YulIdentifier", + "src": "31634:1:23" + } + ] + }, + { + "nativeSrc": "31668:25:23", + "nodeType": "YulAssignment", + "src": "31668:25:23", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "31691:1:23", + "nodeType": "YulIdentifier", + "src": "31691:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31673:17:23", + "nodeType": "YulIdentifier", + "src": "31673:17:23" + }, + "nativeSrc": "31673:20:23", + "nodeType": "YulFunctionCall", + "src": "31673:20:23" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "31668:1:23", + "nodeType": "YulIdentifier", + "src": "31668:1:23" + } + ] + }, + { + "nativeSrc": "31702:28:23", + "nodeType": "YulVariableDeclaration", + "src": "31702:28:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31725:1:23", + "nodeType": "YulIdentifier", + "src": "31725:1:23" + }, + { + "name": "y", + "nativeSrc": "31728:1:23", + "nodeType": "YulIdentifier", + "src": "31728:1:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "31721:3:23", + "nodeType": "YulIdentifier", + "src": "31721:3:23" + }, + "nativeSrc": "31721:9:23", + "nodeType": "YulFunctionCall", + "src": "31721:9:23" + }, + "variables": [ + { + "name": "product_raw", + "nativeSrc": "31706:11:23", + "nodeType": "YulTypedName", + "src": "31706:11:23", + "type": "" + } + ] + }, + { + "nativeSrc": "31739:41:23", + "nodeType": "YulAssignment", + "src": "31739:41:23", + "value": { + "arguments": [ + { + "name": "product_raw", + "nativeSrc": "31768:11:23", + "nodeType": "YulIdentifier", + "src": "31768:11:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31750:17:23", + "nodeType": "YulIdentifier", + "src": "31750:17:23" + }, + "nativeSrc": "31750:30:23", + "nodeType": "YulFunctionCall", + "src": "31750:30:23" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "31739:7:23", + "nodeType": "YulIdentifier", + "src": "31739:7:23" + } + ] + }, + { + "body": { + "nativeSrc": "31957:22:23", + "nodeType": "YulBlock", + "src": "31957:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "31959:16:23", + "nodeType": "YulIdentifier", + "src": "31959:16:23" + }, + "nativeSrc": "31959:18:23", + "nodeType": "YulFunctionCall", + "src": "31959:18:23" + }, + "nativeSrc": "31959:18:23", + "nodeType": "YulExpressionStatement", + "src": "31959:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "31890:1:23", + "nodeType": "YulIdentifier", + "src": "31890:1:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "31883:6:23", + "nodeType": "YulIdentifier", + "src": "31883:6:23" + }, + "nativeSrc": "31883:9:23", + "nodeType": "YulFunctionCall", + "src": "31883:9:23" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "31913:1:23", + "nodeType": "YulIdentifier", + "src": "31913:1:23" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "31920:7:23", + "nodeType": "YulIdentifier", + "src": "31920:7:23" + }, + { + "name": "x", + "nativeSrc": "31929:1:23", + "nodeType": "YulIdentifier", + "src": "31929:1:23" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "31916:3:23", + "nodeType": "YulIdentifier", + "src": "31916:3:23" + }, + "nativeSrc": "31916:15:23", + "nodeType": "YulFunctionCall", + "src": "31916:15:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "31910:2:23", + "nodeType": "YulIdentifier", + "src": "31910:2:23" + }, + "nativeSrc": "31910:22:23", + "nodeType": "YulFunctionCall", + "src": "31910:22:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "31863:2:23", + "nodeType": "YulIdentifier", + "src": "31863:2:23" + }, + "nativeSrc": "31863:83:23", + "nodeType": "YulFunctionCall", + "src": "31863:83:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "31843:6:23", + "nodeType": "YulIdentifier", + "src": "31843:6:23" + }, + "nativeSrc": "31843:113:23", + "nodeType": "YulFunctionCall", + "src": "31843:113:23" + }, + "nativeSrc": "31840:139:23", + "nodeType": "YulIf", + "src": "31840:139:23" + } + ] + }, + "name": "checked_mul_t_uint256", + "nativeSrc": "31576:410:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "31607:1:23", + "nodeType": "YulTypedName", + "src": "31607:1:23", + "type": "" + }, + { + "name": "y", + "nativeSrc": "31610:1:23", + "nodeType": "YulTypedName", + "src": "31610:1:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "31616:7:23", + "nodeType": "YulTypedName", + "src": "31616:7:23", + "type": "" + } + ], + "src": "31576:410:23" + }, + { + "body": { + "nativeSrc": "32036:147:23", + "nodeType": "YulBlock", + "src": "32036:147:23", + "statements": [ + { + "nativeSrc": "32046:25:23", + "nodeType": "YulAssignment", + "src": "32046:25:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "32069:1:23", + "nodeType": "YulIdentifier", + "src": "32069:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32051:17:23", + "nodeType": "YulIdentifier", + "src": "32051:17:23" + }, + "nativeSrc": "32051:20:23", + "nodeType": "YulFunctionCall", + "src": "32051:20:23" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "32046:1:23", + "nodeType": "YulIdentifier", + "src": "32046:1:23" + } + ] + }, + { + "nativeSrc": "32080:25:23", + "nodeType": "YulAssignment", + "src": "32080:25:23", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "32103:1:23", + "nodeType": "YulIdentifier", + "src": "32103:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32085:17:23", + "nodeType": "YulIdentifier", + "src": "32085:17:23" + }, + "nativeSrc": "32085:20:23", + "nodeType": "YulFunctionCall", + "src": "32085:20:23" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "32080:1:23", + "nodeType": "YulIdentifier", + "src": "32080:1:23" + } + ] + }, + { + "nativeSrc": "32114:16:23", + "nodeType": "YulAssignment", + "src": "32114:16:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "32125:1:23", + "nodeType": "YulIdentifier", + "src": "32125:1:23" + }, + { + "name": "y", + "nativeSrc": "32128:1:23", + "nodeType": "YulIdentifier", + "src": "32128:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32121:3:23", + "nodeType": "YulIdentifier", + "src": "32121:3:23" + }, + "nativeSrc": "32121:9:23", + "nodeType": "YulFunctionCall", + "src": "32121:9:23" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "32114:3:23", + "nodeType": "YulIdentifier", + "src": "32114:3:23" + } + ] + }, + { + "body": { + "nativeSrc": "32154:22:23", + "nodeType": "YulBlock", + "src": "32154:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "32156:16:23", + "nodeType": "YulIdentifier", + "src": "32156:16:23" + }, + "nativeSrc": "32156:18:23", + "nodeType": "YulFunctionCall", + "src": "32156:18:23" + }, + "nativeSrc": "32156:18:23", + "nodeType": "YulExpressionStatement", + "src": "32156:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "32146:1:23", + "nodeType": "YulIdentifier", + "src": "32146:1:23" + }, + { + "name": "sum", + "nativeSrc": "32149:3:23", + "nodeType": "YulIdentifier", + "src": "32149:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "32143:2:23", + "nodeType": "YulIdentifier", + "src": "32143:2:23" + }, + "nativeSrc": "32143:10:23", + "nodeType": "YulFunctionCall", + "src": "32143:10:23" + }, + "nativeSrc": "32140:36:23", + "nodeType": "YulIf", + "src": "32140:36:23" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "31992:191:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "32023:1:23", + "nodeType": "YulTypedName", + "src": "32023:1:23", + "type": "" + }, + { + "name": "y", + "nativeSrc": "32026:1:23", + "nodeType": "YulTypedName", + "src": "32026:1:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "32032:3:23", + "nodeType": "YulTypedName", + "src": "32032:3:23", + "type": "" + } + ], + "src": "31992:191:23" + }, + { + "body": { + "nativeSrc": "32231:143:23", + "nodeType": "YulBlock", + "src": "32231:143:23", + "statements": [ + { + "nativeSrc": "32241:25:23", + "nodeType": "YulAssignment", + "src": "32241:25:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "32264:1:23", + "nodeType": "YulIdentifier", + "src": "32264:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32246:17:23", + "nodeType": "YulIdentifier", + "src": "32246:17:23" + }, + "nativeSrc": "32246:20:23", + "nodeType": "YulFunctionCall", + "src": "32246:20:23" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "32241:1:23", + "nodeType": "YulIdentifier", + "src": "32241:1:23" + } + ] + }, + { + "nativeSrc": "32275:25:23", + "nodeType": "YulAssignment", + "src": "32275:25:23", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "32298:1:23", + "nodeType": "YulIdentifier", + "src": "32298:1:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32280:17:23", + "nodeType": "YulIdentifier", + "src": "32280:17:23" + }, + "nativeSrc": "32280:20:23", + "nodeType": "YulFunctionCall", + "src": "32280:20:23" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "32275:1:23", + "nodeType": "YulIdentifier", + "src": "32275:1:23" + } + ] + }, + { + "body": { + "nativeSrc": "32322:22:23", + "nodeType": "YulBlock", + "src": "32322:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nativeSrc": "32324:16:23", + "nodeType": "YulIdentifier", + "src": "32324:16:23" + }, + "nativeSrc": "32324:18:23", + "nodeType": "YulFunctionCall", + "src": "32324:18:23" + }, + "nativeSrc": "32324:18:23", + "nodeType": "YulExpressionStatement", + "src": "32324:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nativeSrc": "32319:1:23", + "nodeType": "YulIdentifier", + "src": "32319:1:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "32312:6:23", + "nodeType": "YulIdentifier", + "src": "32312:6:23" + }, + "nativeSrc": "32312:9:23", + "nodeType": "YulFunctionCall", + "src": "32312:9:23" + }, + "nativeSrc": "32309:35:23", + "nodeType": "YulIf", + "src": "32309:35:23" + }, + { + "nativeSrc": "32354:14:23", + "nodeType": "YulAssignment", + "src": "32354:14:23", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "32363:1:23", + "nodeType": "YulIdentifier", + "src": "32363:1:23" + }, + { + "name": "y", + "nativeSrc": "32366:1:23", + "nodeType": "YulIdentifier", + "src": "32366:1:23" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "32359:3:23", + "nodeType": "YulIdentifier", + "src": "32359:3:23" + }, + "nativeSrc": "32359:9:23", + "nodeType": "YulFunctionCall", + "src": "32359:9:23" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "32354:1:23", + "nodeType": "YulIdentifier", + "src": "32354:1:23" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nativeSrc": "32189:185:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "32220:1:23", + "nodeType": "YulTypedName", + "src": "32220:1:23", + "type": "" + }, + { + "name": "y", + "nativeSrc": "32223:1:23", + "nodeType": "YulTypedName", + "src": "32223:1:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nativeSrc": "32229:1:23", + "nodeType": "YulTypedName", + "src": "32229:1:23", + "type": "" + } + ], + "src": "32189:185:23" + } + ] + }, + "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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function 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_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_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_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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_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_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\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 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_with_cleanup(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 panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b(memPtr) {\n\n mstore(add(memPtr, 0), \"0.0001 ether required to mint\")\n\n }\n\n function abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__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_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_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 increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1(memPtr) {\n\n mstore(add(memPtr, 0), \"No funds available\")\n\n }\n\n function abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1__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_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88(memPtr) {\n\n mstore(add(memPtr, 0), \"Withdrawal failed\")\n\n }\n\n function abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__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_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__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_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data too large\")\n\n }\n\n function abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__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_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422(memPtr) {\n\n mstore(add(memPtr, 0), \"New owner cannot be the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422__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_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d(memPtr) {\n\n mstore(add(memPtr, 0), 0x7b226e616d65223a2022466c756666792046757279222c202264657363726970)\n\n mstore(add(memPtr, 32), 0x74696f6e223a2022596f75722061636365737320696e746f20616e7920657665)\n\n mstore(add(memPtr, 64), \"nt created using this token addr\")\n\n mstore(add(memPtr, 96), 0x657373222c2022696d616765223a220000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 111)\n store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d(pos)\n end := add(pos, 111)\n }\n\n function store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475(memPtr) {\n\n mstore(add(memPtr, 0), 0x227d000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475(pos)\n end := add(pos, 2)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa(memPtr) {\n\n mstore(add(memPtr, 0), \"data:application/json;base64,\")\n\n }\n\n function abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 29)\n store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa(pos)\n end := add(pos, 29)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\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 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_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_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 function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n}\n", + "id": 23, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040526004361061012e5760003560e01c806370a08231116100ab578063a31e06da1161006f578063a31e06da146103b6578063a52db60d146103e1578063b88d4fde1461040a578063c87b56dd14610433578063e985e9c514610470578063f2fde38b146104ad57610135565b806370a08231146102e3578063715018a6146103205780638da5cb5b1461033757806395d89b4114610362578063a22cb4651461038d57610135565b806323b872dd116100f257806323b872dd1461021257806324600fc31461023b57806342842e0e146102525780636352211e1461027b5780636817c76c146102b857610135565b806301ffc9a71461013a57806306fdde0314610177578063081812fc146101a2578063095ea7b3146101df5780631249c58b1461020857610135565b3661013557005b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061220d565b6104d6565b60405161016e9190612255565b60405180910390f35b34801561018357600080fd5b5061018c610537565b6040516101999190612300565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c49190612358565b6105c9565b6040516101d691906123c6565b60405180910390f35b3480156101eb57600080fd5b506102066004803603810190610201919061240d565b6105e5565b005b6102106105fb565b005b34801561021e57600080fd5b506102396004803603810190610234919061244d565b610752565b005b34801561024757600080fd5b50610250610854565b005b34801561025e57600080fd5b506102796004803603810190610274919061244d565b61095b565b005b34801561028757600080fd5b506102a2600480360381019061029d9190612358565b61097b565b6040516102af91906123c6565b60405180910390f35b3480156102c457600080fd5b506102cd61098d565b6040516102da91906124af565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906124ca565b610993565b60405161031791906124af565b60405180910390f35b34801561032c57600080fd5b50610335610a4d565b005b34801561034357600080fd5b5061034c610a61565b60405161035991906123c6565b60405180910390f35b34801561036e57600080fd5b50610377610a8b565b6040516103849190612300565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af9190612523565b610b1d565b005b3480156103c257600080fd5b506103cb610b33565b6040516103d89190612300565b60405180910390f35b3480156103ed57600080fd5b5061040860048036038101906104039190612698565b610bc1565b005b34801561041657600080fd5b50610431600480360381019061042c9190612782565b610c66565b005b34801561043f57600080fd5b5061045a60048036038101906104559190612358565b610c83565b6040516104679190612300565b60405180910390f35b34801561047c57600080fd5b5061049760048036038101906104929190612805565b610d96565b6040516104a49190612255565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf91906124ca565b610e2a565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610530575061052f82610ead565b5b9050919050565b60606000805461054690612874565b80601f016020809104026020016040519081016040528092919081815260200182805461057290612874565b80156105bf5780601f10610594576101008083540402835291602001916105bf565b820191906000526020600020905b8154815290600101906020018083116105a257829003601f168201915b5050505050905090565b60006105d482610f8f565b506105de82611017565b9050919050565b6105f782826105f2611054565b61105c565b5050565b600954341461063f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610636906128f1565b60405180910390fd5b60006106d4600a805461065190612874565b80601f016020809104026020016040519081016040528092919081815260200182805461067d90612874565b80156106ca5780601f1061069f576101008083540402835291602001916106ca565b820191906000526020600020905b8154815290600101906020018083116106ad57829003601f168201915b505050505061106e565b905060006106e1826110e2565b9050600860008154809291906106f690612940565b91905055506000600854905061070c3382611132565b6107168183611150565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a8160405161074591906124af565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c45760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016107bb91906123c6565b60405180910390fd5b60006107d883836107d3611054565b6111ac565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461084e578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161084593929190612988565b60405180910390fd5b50505050565b61085c6113c6565b6000479050600081116108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90612a0b565b60405180910390fd5b60006108ae610a61565b73ffffffffffffffffffffffffffffffffffffffff16826040516108d190612a5c565b60006040518083038185875af1925050503d806000811461090e576040519150601f19603f3d011682016040523d82523d6000602084013e610913565b606091505b5050905080610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612abd565b60405180910390fd5b5050565b61097683838360405180602001604052806000815250610c66565b505050565b600061098682610f8f565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a065760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016109fd91906123c6565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a556113c6565b610a5f600061144d565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a9a90612874565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac690612874565b8015610b135780601f10610ae857610100808354040283529160200191610b13565b820191906000526020600020905b815481529060010190602001808311610af657829003601f168201915b5050505050905090565b610b2f610b28611054565b8383611513565b5050565b600a8054610b4090612874565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6c90612874565b8015610bb95780601f10610b8e57610100808354040283529160200191610bb9565b820191906000526020600020905b815481529060010190602001808311610b9c57829003601f168201915b505050505081565b610bc96113c6565b6000815111610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490612b29565b60405180910390fd5b61138881511115610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a90612b95565b60405180910390fd5b80600a9081610c629190612d61565b5050565b610c71848484610752565b610c7d84848484611682565b50505050565b6060610c8e82610f8f565b506000600660008481526020019081526020016000208054610caf90612874565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdb90612874565b8015610d285780601f10610cfd57610100808354040283529160200191610d28565b820191906000526020600020905b815481529060010190602001808311610d0b57829003601f168201915b505050505090506000610d39611839565b90506000815103610d4e578192505050610d91565b600082511115610d83578082604051602001610d6b929190612e6f565b60405160208183030381529060405292505050610d91565b610d8c84611850565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e326113c6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890612f05565b60405180910390fd5b610eaa8161144d565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f7857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610f885750610f87826118b9565b5b9050919050565b600080610f9b83611923565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361100e57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161100591906124af565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6110698383836001611960565b505050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000815250905060006110b584611b25565b905081816040516020016110ca929190612e6f565b60405160208183030381529060405292505050919050565b606061110c826040516020016110f8919061302f565b604051602081830303815290604052611b25565b60405160200161111c91906130a8565b6040516020818303038152906040529050919050565b61114c828260405180602001604052806000815250611b52565b5050565b806006600084815260200190815260200160002090816111709190612d61565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111a091906124af565b60405180910390a15050565b6000806111b884611923565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111fa576111f9818486611b6e565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461128b5761123c600085600080611960565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461130e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6113ce611054565b73ffffffffffffffffffffffffffffffffffffffff166113ec610a61565b73ffffffffffffffffffffffffffffffffffffffff161461144b5761140f611054565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161144291906123c6565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158457816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161157b91906123c6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116759190612255565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611833578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026116c6611054565b8685856040518563ffffffff1660e01b81526004016116e8949392919061311f565b6020604051808303816000875af192505050801561172457506040513d601f19601f820116820180604052508101906117219190613180565b60015b6117a8573d8060008114611754576040519150601f19603f3d011682016040523d82523d6000602084013e611759565b606091505b5060008151036117a057836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161179791906123c6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461183157836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161182891906123c6565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b606061185b82610f8f565b506000611866611839565b9050600081511161188657604051806020016040528060008152506118b1565b8061189084611c32565b6040516020016118a1929190612e6f565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806119995750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611acd5760006119a984610f8f565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a1457508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611a275750611a258184610d96565b155b15611a6957826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611a6091906123c6565b60405180910390fd5b8115611acb57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6060611b4b826040518060600160405280604081526020016132ad604091396001611d00565b9050919050565b611b5c8383611e94565b611b696000848484611682565b505050565b611b79838383611f8d565b611c2d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bee57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611be591906124af565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611c249291906131ad565b60405180910390fd5b505050565b606060006001611c418461204e565b01905060008167ffffffffffffffff811115611c6057611c5f61256d565b5b6040519080825280601f01601f191660200182016040528015611c925781602001600182028036833780820191505090505b509050600082602001820190505b600115611cf5578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611ce957611ce86131d6565b5b04945060008503611ca0575b819350505050919050565b60606000845103611d2257604051806020016040528060008152509050611e8d565b600082611d54576003600286516004611d3b9190613205565b611d459190613247565b611d4f919061327b565b611d7b565b600360028651611d649190613247565b611d6e919061327b565b6004611d7a9190613205565b5b905060008167ffffffffffffffff811115611d9957611d9861256d565b5b6040519080825280601f01601f191660200182016040528015611dcb5781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b82841015611e41576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611de6565b8082528915611e815760038c510660018114611e645760028114611e7757611e7f565b603d6001870353603d6002870353611e7f565b603d60018703535b505b50505050505080925050505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f065760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611efd91906123c6565b60405180910390fd5b6000611f14838360006111ac565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f885760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611f7f91906123c6565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561204557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061200657506120058484610d96565b5b8061204457508273ffffffffffffffffffffffffffffffffffffffff1661202c83611017565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120ac577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816120a2576120a16131d6565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106120e9576d04ee2d6d415b85acef810000000083816120df576120de6131d6565b5b0492506020810190505b662386f26fc10000831061211857662386f26fc10000838161210e5761210d6131d6565b5b0492506010810190505b6305f5e1008310612141576305f5e1008381612137576121366131d6565b5b0492506008810190505b612710831061216657612710838161215c5761215b6131d6565b5b0492506004810190505b60648310612189576064838161217f5761217e6131d6565b5b0492506002810190505b600a8310612198576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6121ea816121b5565b81146121f557600080fd5b50565b600081359050612207816121e1565b92915050565b600060208284031215612223576122226121ab565b5b6000612231848285016121f8565b91505092915050565b60008115159050919050565b61224f8161223a565b82525050565b600060208201905061226a6000830184612246565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122aa57808201518184015260208101905061228f565b60008484015250505050565b6000601f19601f8301169050919050565b60006122d282612270565b6122dc818561227b565b93506122ec81856020860161228c565b6122f5816122b6565b840191505092915050565b6000602082019050818103600083015261231a81846122c7565b905092915050565b6000819050919050565b61233581612322565b811461234057600080fd5b50565b6000813590506123528161232c565b92915050565b60006020828403121561236e5761236d6121ab565b5b600061237c84828501612343565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123b082612385565b9050919050565b6123c0816123a5565b82525050565b60006020820190506123db60008301846123b7565b92915050565b6123ea816123a5565b81146123f557600080fd5b50565b600081359050612407816123e1565b92915050565b60008060408385031215612424576124236121ab565b5b6000612432858286016123f8565b925050602061244385828601612343565b9150509250929050565b600080600060608486031215612466576124656121ab565b5b6000612474868287016123f8565b9350506020612485868287016123f8565b925050604061249686828701612343565b9150509250925092565b6124a981612322565b82525050565b60006020820190506124c460008301846124a0565b92915050565b6000602082840312156124e0576124df6121ab565b5b60006124ee848285016123f8565b91505092915050565b6125008161223a565b811461250b57600080fd5b50565b60008135905061251d816124f7565b92915050565b6000806040838503121561253a576125396121ab565b5b6000612548858286016123f8565b92505060206125598582860161250e565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125a5826122b6565b810181811067ffffffffffffffff821117156125c4576125c361256d565b5b80604052505050565b60006125d76121a1565b90506125e3828261259c565b919050565b600067ffffffffffffffff8211156126035761260261256d565b5b61260c826122b6565b9050602081019050919050565b82818337600083830152505050565b600061263b612636846125e8565b6125cd565b90508281526020810184848401111561265757612656612568565b5b612662848285612619565b509392505050565b600082601f83011261267f5761267e612563565b5b813561268f848260208601612628565b91505092915050565b6000602082840312156126ae576126ad6121ab565b5b600082013567ffffffffffffffff8111156126cc576126cb6121b0565b5b6126d88482850161266a565b91505092915050565b600067ffffffffffffffff8211156126fc576126fb61256d565b5b612705826122b6565b9050602081019050919050565b6000612725612720846126e1565b6125cd565b90508281526020810184848401111561274157612740612568565b5b61274c848285612619565b509392505050565b600082601f83011261276957612768612563565b5b8135612779848260208601612712565b91505092915050565b6000806000806080858703121561279c5761279b6121ab565b5b60006127aa878288016123f8565b94505060206127bb878288016123f8565b93505060406127cc87828801612343565b925050606085013567ffffffffffffffff8111156127ed576127ec6121b0565b5b6127f987828801612754565b91505092959194509250565b6000806040838503121561281c5761281b6121ab565b5b600061282a858286016123f8565b925050602061283b858286016123f8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061288c57607f821691505b60208210810361289f5761289e612845565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b60006128db601d8361227b565b91506128e6826128a5565b602082019050919050565b6000602082019050818103600083015261290a816128ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061294b82612322565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297d5761297c612911565b5b600182019050919050565b600060608201905061299d60008301866123b7565b6129aa60208301856124a0565b6129b760408301846123b7565b949350505050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b60006129f560128361227b565b9150612a00826129bf565b602082019050919050565b60006020820190508181036000830152612a24816129e8565b9050919050565b600081905092915050565b50565b6000612a46600083612a2b565b9150612a5182612a36565b600082019050919050565b6000612a6782612a39565b9150819050919050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612aa760118361227b565b9150612ab282612a71565b602082019050919050565b60006020820190508181036000830152612ad681612a9a565b9050919050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b6000612b1360188361227b565b9150612b1e82612add565b602082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000612b7f60128361227b565b9150612b8a82612b49565b602082019050919050565b60006020820190508181036000830152612bae81612b72565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612bda565b612c218683612bda565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c5e612c59612c5484612322565b612c39565b612322565b9050919050565b6000819050919050565b612c7883612c43565b612c8c612c8482612c65565b848454612be7565b825550505050565b600090565b612ca1612c94565b612cac818484612c6f565b505050565b5b81811015612cd057612cc5600082612c99565b600181019050612cb2565b5050565b601f821115612d1557612ce681612bb5565b612cef84612bca565b81016020851015612cfe578190505b612d12612d0a85612bca565b830182612cb1565b50505b505050565b600082821c905092915050565b6000612d3860001984600802612d1a565b1980831691505092915050565b6000612d518383612d27565b9150826002028217905092915050565b612d6a82612270565b67ffffffffffffffff811115612d8357612d8261256d565b5b612d8d8254612874565b612d98828285612cd4565b600060209050601f831160018114612dcb5760008415612db9578287015190505b612dc38582612d45565b865550612e2b565b601f198416612dd986612bb5565b60005b82811015612e0157848901518255600182019150602085019450602081019050612ddc565b86831015612e1e5784890151612e1a601f891682612d27565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000612e4982612270565b612e538185612e33565b9350612e6381856020860161228c565b80840191505092915050565b6000612e7b8285612e3e565b9150612e878284612e3e565b91508190509392505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612eef60248361227b565b9150612efa82612e93565b604082019050919050565b60006020820190508181036000830152612f1e81612ee2565b9050919050565b7f7b226e616d65223a2022466c756666792046757279222c20226465736372697060008201527f74696f6e223a2022596f75722061636365737320696e746f20616e792065766560208201527f6e742063726561746564207573696e67207468697320746f6b656e206164647260408201527f657373222c2022696d616765223a220000000000000000000000000000000000606082015250565b6000612fcd606f83612e33565b9150612fd882612f25565b606f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000613019600283612e33565b915061302482612fe3565b600282019050919050565b600061303a82612fc0565b91506130468284612e3e565b91506130518261300c565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000613092601d83612e33565b915061309d8261305c565b601d82019050919050565b60006130b382613085565b91506130bf8284612e3e565b915081905092915050565b600081519050919050565b600082825260208201905092915050565b60006130f1826130ca565b6130fb81856130d5565b935061310b81856020860161228c565b613114816122b6565b840191505092915050565b600060808201905061313460008301876123b7565b61314160208301866123b7565b61314e60408301856124a0565b818103606083015261316081846130e6565b905095945050505050565b60008151905061317a816121e1565b92915050565b600060208284031215613196576131956121ab565b5b60006131a48482850161316b565b91505092915050565b60006040820190506131c260008301856123b7565b6131cf60208301846124a0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061321082612322565b915061321b83612322565b925082820261322981612322565b915082820484148315176132405761323f612911565b5b5092915050565b600061325282612322565b915061325d83612322565b925082820190508082111561327557613274612911565b5b92915050565b600061328682612322565b915061329183612322565b9250826132a1576132a06131d6565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220a96caf5fff622fcbf040485665c2f66fb3edd07bb5c32351ca7bf3b33c7a350b64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xA31E06DA GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xA31E06DA EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xA52DB60D EQ PUSH2 0x3E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x40A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x470 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4AD JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x38D JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x27B JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x2B8 JUMPI PUSH2 0x135 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x1249C58B EQ PUSH2 0x208 JUMPI PUSH2 0x135 JUMP JUMPDEST CALLDATASIZE PUSH2 0x135 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x220D JUMP JUMPDEST PUSH2 0x4D6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18C PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x199 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C4 SWAP2 SWAP1 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0x5C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x201 SWAP2 SWAP1 PUSH2 0x240D JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x210 PUSH2 0x5FB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x239 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x234 SWAP2 SWAP1 PUSH2 0x244D JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x247 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x250 PUSH2 0x854 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x279 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x274 SWAP2 SWAP1 PUSH2 0x244D JUMP JUMPDEST PUSH2 0x95B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AF SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH2 0x98D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x24CA JUMP JUMPDEST PUSH2 0x993 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 PUSH2 0xA4D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x343 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34C PUSH2 0xA61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x359 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x377 PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x384 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3AF SWAP2 SWAP1 PUSH2 0x2523 JUMP JUMPDEST PUSH2 0xB1D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CB PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D8 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x2698 JUMP JUMPDEST PUSH2 0xBC1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x2782 JUMP JUMPDEST PUSH2 0xC66 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x455 SWAP2 SWAP1 PUSH2 0x2358 JUMP JUMPDEST PUSH2 0xC83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x467 SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x497 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x492 SWAP2 SWAP1 PUSH2 0x2805 JUMP JUMPDEST PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A4 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4CF SWAP2 SWAP1 PUSH2 0x24CA JUMP JUMPDEST PUSH2 0xE2A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x530 JUMPI POP PUSH2 0x52F DUP3 PUSH2 0xEAD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x546 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x572 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5BF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x594 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x5BF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5A2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D4 DUP3 PUSH2 0xF8F JUMP JUMPDEST POP PUSH2 0x5DE DUP3 PUSH2 0x1017 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5F7 DUP3 DUP3 PUSH2 0x5F2 PUSH2 0x1054 JUMP JUMPDEST PUSH2 0x105C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD CALLVALUE EQ PUSH2 0x63F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x636 SWAP1 PUSH2 0x28F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6D4 PUSH1 0xA DUP1 SLOAD PUSH2 0x651 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67D SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6CA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x69F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6CA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6AD JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x106E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x6E1 DUP3 PUSH2 0x10E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x6F6 SWAP1 PUSH2 0x2940 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH2 0x70C CALLER DUP3 PUSH2 0x1132 JUMP JUMPDEST PUSH2 0x716 DUP2 DUP4 PUSH2 0x1150 JUMP JUMPDEST PUSH32 0x176B02BB2D12439FF7A20B59F402CCA16C76F50508B13EF3166A600EB719354A DUP2 PUSH1 0x40 MLOAD PUSH2 0x745 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7BB SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7D8 DUP4 DUP4 PUSH2 0x7D3 PUSH2 0x1054 JUMP JUMPDEST PUSH2 0x11AC JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x84E JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x845 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x85C PUSH2 0x13C6 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x8A4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89B SWAP1 PUSH2 0x2A0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x8AE PUSH2 0xA61 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x8D1 SWAP1 PUSH2 0x2A5C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x90E 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 0x913 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x957 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x94E SWAP1 PUSH2 0x2ABD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x976 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC66 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x986 DUP3 PUSH2 0xF8F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA06 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FD SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xA55 PUSH2 0x13C6 JUMP JUMPDEST PUSH2 0xA5F PUSH1 0x0 PUSH2 0x144D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xA9A SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAC6 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB13 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAE8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB13 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xAF6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xB2F PUSH2 0xB28 PUSH2 0x1054 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1513 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xB40 SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB6C SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xBB9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB8E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xBB9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB9C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xBC9 PUSH2 0x13C6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xC0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC04 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1388 DUP2 MLOAD GT ISZERO PUSH2 0xC53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC4A SWAP1 PUSH2 0x2B95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH2 0xC62 SWAP2 SWAP1 PUSH2 0x2D61 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC71 DUP5 DUP5 DUP5 PUSH2 0x752 JUMP JUMPDEST PUSH2 0xC7D DUP5 DUP5 DUP5 DUP5 PUSH2 0x1682 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xC8E DUP3 PUSH2 0xF8F JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xCAF SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCDB SWAP1 PUSH2 0x2874 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD28 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCFD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD28 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD0B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0xD39 PUSH2 0x1839 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xD4E JUMPI DUP2 SWAP3 POP POP POP PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0xD83 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD6B SWAP3 SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP PUSH2 0xD91 JUMP JUMPDEST PUSH2 0xD8C DUP5 PUSH2 0x1850 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH2 0xE32 PUSH2 0x13C6 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEA1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE98 SWAP1 PUSH2 0x2F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xEAA DUP2 PUSH2 0x144D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF78 JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0xF88 JUMPI POP PUSH2 0xF87 DUP3 PUSH2 0x18B9 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF9B DUP4 PUSH2 0x1923 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x100E JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1005 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1069 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1960 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174613A696D6167652F7376672B786D6C3B6261736536342C000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 PUSH2 0x10B5 DUP5 PUSH2 0x1B25 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10CA SWAP3 SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x110C DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10F8 SWAP2 SWAP1 PUSH2 0x302F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1B25 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x111C SWAP2 SWAP1 PUSH2 0x30A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114C DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1B52 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1170 SWAP2 SWAP1 PUSH2 0x2D61 JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0x11A0 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11B8 DUP5 PUSH2 0x1923 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11FA JUMPI PUSH2 0x11F9 DUP2 DUP5 DUP7 PUSH2 0x1B6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x128B JUMPI PUSH2 0x123C PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1960 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x130E JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x13CE PUSH2 0x1054 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13EC PUSH2 0xA61 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x144B JUMPI PUSH2 0x140F PUSH2 0x1054 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1442 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1584 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x157B SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1675 SWAP2 SWAP1 PUSH2 0x2255 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1833 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x16C6 PUSH2 0x1054 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16E8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x311F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1724 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1721 SWAP2 SWAP1 PUSH2 0x3180 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x17A8 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1754 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 0x1759 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x17A0 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1797 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1831 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1828 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x185B DUP3 PUSH2 0xF8F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1866 PUSH2 0x1839 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1886 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x18B1 JUMP JUMPDEST DUP1 PUSH2 0x1890 DUP5 PUSH2 0x1C32 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x18A1 SWAP3 SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1999 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 PUSH2 0x19A9 DUP5 PUSH2 0xF8F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1A14 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A27 JUMPI POP PUSH2 0x1A25 DUP2 DUP5 PUSH2 0xD96 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1A69 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A60 SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1ACB JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1B4B DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32AD PUSH1 0x40 SWAP2 CODECOPY PUSH1 0x1 PUSH2 0x1D00 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B5C DUP4 DUP4 PUSH2 0x1E94 JUMP JUMPDEST PUSH2 0x1B69 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1682 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1B79 DUP4 DUP4 DUP4 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x1C2D JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1BEE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BE5 SWAP2 SWAP1 PUSH2 0x24AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C24 SWAP3 SWAP2 SWAP1 PUSH2 0x31AD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1C41 DUP5 PUSH2 0x204E JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C60 JUMPI PUSH2 0x1C5F PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1C92 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1CF5 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1CE9 JUMPI PUSH2 0x1CE8 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1CA0 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD SUB PUSH2 0x1D22 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x1E8D JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D54 JUMPI PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH1 0x4 PUSH2 0x1D3B SWAP2 SWAP1 PUSH2 0x3205 JUMP JUMPDEST PUSH2 0x1D45 SWAP2 SWAP1 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x1D4F SWAP2 SWAP1 PUSH2 0x327B JUMP JUMPDEST PUSH2 0x1D7B JUMP JUMPDEST PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH2 0x1D64 SWAP2 SWAP1 PUSH2 0x3247 JUMP JUMPDEST PUSH2 0x1D6E SWAP2 SWAP1 PUSH2 0x327B JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1D7A SWAP2 SWAP1 PUSH2 0x3205 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D99 JUMPI PUSH2 0x1D98 PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1DCB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP6 ADD PUSH1 0x20 DUP3 ADD DUP8 DUP9 MLOAD DUP10 ADD PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x0 DUP3 MSTORE JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x1E41 JUMPI PUSH1 0x3 DUP5 ADD SWAP4 POP DUP4 MLOAD PUSH1 0x3F DUP2 PUSH1 0x12 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0xC SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0x6 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP POP PUSH2 0x1DE6 JUMP JUMPDEST DUP1 DUP3 MSTORE DUP10 ISZERO PUSH2 0x1E81 JUMPI PUSH1 0x3 DUP13 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x1E64 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1E77 JUMPI PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 PUSH1 0x3D PUSH1 0x2 DUP8 SUB MSTORE8 PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 JUMPDEST POP JUMPDEST POP POP POP POP POP POP DUP1 SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1F06 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EFD SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1F14 DUP4 DUP4 PUSH1 0x0 PUSH2 0x11AC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1F88 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F7F SWAP2 SWAP1 PUSH2 0x23C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x2045 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2006 JUMPI POP PUSH2 0x2005 DUP5 DUP5 PUSH2 0xD96 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x2044 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x202C DUP4 PUSH2 0x1017 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x20AC JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x20A2 JUMPI PUSH2 0x20A1 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x20E9 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x20DF JUMPI PUSH2 0x20DE PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x2118 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x210E JUMPI PUSH2 0x210D PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x2141 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2137 JUMPI PUSH2 0x2136 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x2166 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x215C JUMPI PUSH2 0x215B PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x2189 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x217F JUMPI PUSH2 0x217E PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2198 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 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 0x21EA DUP2 PUSH2 0x21B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x21F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2207 DUP2 PUSH2 0x21E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2223 JUMPI PUSH2 0x2222 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2231 DUP5 DUP3 DUP6 ADD PUSH2 0x21F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224F DUP2 PUSH2 0x223A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x226A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2246 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22AA JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x228F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22D2 DUP3 PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x22DC DUP2 DUP6 PUSH2 0x227B JUMP JUMPDEST SWAP4 POP PUSH2 0x22EC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x228C JUMP JUMPDEST PUSH2 0x22F5 DUP2 PUSH2 0x22B6 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x231A DUP2 DUP5 PUSH2 0x22C7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2335 DUP2 PUSH2 0x2322 JUMP JUMPDEST DUP2 EQ PUSH2 0x2340 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2352 DUP2 PUSH2 0x232C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x236E JUMPI PUSH2 0x236D PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x237C DUP5 DUP3 DUP6 ADD PUSH2 0x2343 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 0x23B0 DUP3 PUSH2 0x2385 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C0 DUP2 PUSH2 0x23A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23DB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23EA DUP2 PUSH2 0x23A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2407 DUP2 PUSH2 0x23E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2424 JUMPI PUSH2 0x2423 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2432 DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2443 DUP6 DUP3 DUP7 ADD PUSH2 0x2343 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 0x2466 JUMPI PUSH2 0x2465 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2474 DUP7 DUP3 DUP8 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2485 DUP7 DUP3 DUP8 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2496 DUP7 DUP3 DUP8 ADD PUSH2 0x2343 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x24A9 DUP2 PUSH2 0x2322 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x24C4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x24A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24E0 JUMPI PUSH2 0x24DF PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24EE DUP5 DUP3 DUP6 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2500 DUP2 PUSH2 0x223A JUMP JUMPDEST DUP2 EQ PUSH2 0x250B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x251D DUP2 PUSH2 0x24F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x253A JUMPI PUSH2 0x2539 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2548 DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2559 DUP6 DUP3 DUP7 ADD PUSH2 0x250E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x25A5 DUP3 PUSH2 0x22B6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x25C4 JUMPI PUSH2 0x25C3 PUSH2 0x256D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25D7 PUSH2 0x21A1 JUMP JUMPDEST SWAP1 POP PUSH2 0x25E3 DUP3 DUP3 PUSH2 0x259C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2603 JUMPI PUSH2 0x2602 PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH2 0x260C DUP3 PUSH2 0x22B6 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 0x263B PUSH2 0x2636 DUP5 PUSH2 0x25E8 JUMP JUMPDEST PUSH2 0x25CD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2657 JUMPI PUSH2 0x2656 PUSH2 0x2568 JUMP JUMPDEST JUMPDEST PUSH2 0x2662 DUP5 DUP3 DUP6 PUSH2 0x2619 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x267F JUMPI PUSH2 0x267E PUSH2 0x2563 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x268F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2628 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AE JUMPI PUSH2 0x26AD PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26CC JUMPI PUSH2 0x26CB PUSH2 0x21B0 JUMP JUMPDEST JUMPDEST PUSH2 0x26D8 DUP5 DUP3 DUP6 ADD PUSH2 0x266A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x26FC JUMPI PUSH2 0x26FB PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH2 0x2705 DUP3 PUSH2 0x22B6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2725 PUSH2 0x2720 DUP5 PUSH2 0x26E1 JUMP JUMPDEST PUSH2 0x25CD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2741 JUMPI PUSH2 0x2740 PUSH2 0x2568 JUMP JUMPDEST JUMPDEST PUSH2 0x274C DUP5 DUP3 DUP6 PUSH2 0x2619 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2563 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2779 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2712 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 0x279C JUMPI PUSH2 0x279B PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27AA DUP8 DUP3 DUP9 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27BB DUP8 DUP3 DUP9 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x27CC DUP8 DUP3 DUP9 ADD PUSH2 0x2343 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27ED JUMPI PUSH2 0x27EC PUSH2 0x21B0 JUMP JUMPDEST JUMPDEST PUSH2 0x27F9 DUP8 DUP3 DUP9 ADD PUSH2 0x2754 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 0x281C JUMPI PUSH2 0x281B PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x282A DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x283B DUP6 DUP3 DUP7 ADD PUSH2 0x23F8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x288C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x289F JUMPI PUSH2 0x289E PUSH2 0x2845 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x302E3030303120657468657220726571756972656420746F206D696E74000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28DB PUSH1 0x1D DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x28E6 DUP3 PUSH2 0x28A5 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 0x290A DUP2 PUSH2 0x28CE 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 0x294B DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x297D JUMPI PUSH2 0x297C PUSH2 0x2911 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x299D PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x29AA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x24A0 JUMP JUMPDEST PUSH2 0x29B7 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x23B7 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6F2066756E647320617661696C61626C650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29F5 PUSH1 0x12 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2A00 DUP3 PUSH2 0x29BF 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 0x2A24 DUP2 PUSH2 0x29E8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A46 PUSH1 0x0 DUP4 PUSH2 0x2A2B JUMP JUMPDEST SWAP2 POP PUSH2 0x2A51 DUP3 PUSH2 0x2A36 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A67 DUP3 PUSH2 0x2A39 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AA7 PUSH1 0x11 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2AB2 DUP3 PUSH2 0x2A71 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 0x2AD6 DUP2 PUSH2 0x2A9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x53564720646174612063616E6E6F7420626520656D7074790000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B13 PUSH1 0x18 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2B1E DUP3 PUSH2 0x2ADD 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 0x2B42 DUP2 PUSH2 0x2B06 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x535647206461746120746F6F206C617267650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B7F PUSH1 0x12 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2B8A DUP3 PUSH2 0x2B49 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 0x2BAE DUP2 PUSH2 0x2B72 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2C17 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2BDA JUMP JUMPDEST PUSH2 0x2C21 DUP7 DUP4 PUSH2 0x2BDA JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C5E PUSH2 0x2C59 PUSH2 0x2C54 DUP5 PUSH2 0x2322 JUMP JUMPDEST PUSH2 0x2C39 JUMP JUMPDEST PUSH2 0x2322 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C78 DUP4 PUSH2 0x2C43 JUMP JUMPDEST PUSH2 0x2C8C PUSH2 0x2C84 DUP3 PUSH2 0x2C65 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2BE7 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2CA1 PUSH2 0x2C94 JUMP JUMPDEST PUSH2 0x2CAC DUP2 DUP5 DUP5 PUSH2 0x2C6F JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2CD0 JUMPI PUSH2 0x2CC5 PUSH1 0x0 DUP3 PUSH2 0x2C99 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2CB2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2D15 JUMPI PUSH2 0x2CE6 DUP2 PUSH2 0x2BB5 JUMP JUMPDEST PUSH2 0x2CEF DUP5 PUSH2 0x2BCA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2CFE JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2D12 PUSH2 0x2D0A DUP6 PUSH2 0x2BCA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2CB1 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D38 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2D1A JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D51 DUP4 DUP4 PUSH2 0x2D27 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D6A DUP3 PUSH2 0x2270 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D83 JUMPI PUSH2 0x2D82 PUSH2 0x256D JUMP JUMPDEST JUMPDEST PUSH2 0x2D8D DUP3 SLOAD PUSH2 0x2874 JUMP JUMPDEST PUSH2 0x2D98 DUP3 DUP3 DUP6 PUSH2 0x2CD4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2DB9 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2DC3 DUP6 DUP3 PUSH2 0x2D45 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2E2B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2DD9 DUP7 PUSH2 0x2BB5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2E01 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2DDC JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2E1E JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2E1A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2D27 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E49 DUP3 PUSH2 0x2270 JUMP JUMPDEST PUSH2 0x2E53 DUP2 DUP6 PUSH2 0x2E33 JUMP JUMPDEST SWAP4 POP PUSH2 0x2E63 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x228C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E7B DUP3 DUP6 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E87 DUP3 DUP5 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E6577206F776E65722063616E6E6F7420626520746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EEF PUSH1 0x24 DUP4 PUSH2 0x227B JUMP JUMPDEST SWAP2 POP PUSH2 0x2EFA DUP3 PUSH2 0x2E93 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 0x2F1E DUP2 PUSH2 0x2EE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7B226E616D65223A2022466C756666792046757279222C202264657363726970 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x74696F6E223A2022596F75722061636365737320696E746F20616E7920657665 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E742063726561746564207573696E67207468697320746F6B656E2061646472 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x657373222C2022696D616765223A220000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCD PUSH1 0x6F DUP4 PUSH2 0x2E33 JUMP JUMPDEST SWAP2 POP PUSH2 0x2FD8 DUP3 PUSH2 0x2F25 JUMP JUMPDEST PUSH1 0x6F DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x227D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3019 PUSH1 0x2 DUP4 PUSH2 0x2E33 JUMP JUMPDEST SWAP2 POP PUSH2 0x3024 DUP3 PUSH2 0x2FE3 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x303A DUP3 PUSH2 0x2FC0 JUMP JUMPDEST SWAP2 POP PUSH2 0x3046 DUP3 DUP5 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP PUSH2 0x3051 DUP3 PUSH2 0x300C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3092 PUSH1 0x1D DUP4 PUSH2 0x2E33 JUMP JUMPDEST SWAP2 POP PUSH2 0x309D DUP3 PUSH2 0x305C JUMP JUMPDEST PUSH1 0x1D DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30B3 DUP3 PUSH2 0x3085 JUMP JUMPDEST SWAP2 POP PUSH2 0x30BF DUP3 DUP5 PUSH2 0x2E3E JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP 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 PUSH2 0x30F1 DUP3 PUSH2 0x30CA JUMP JUMPDEST PUSH2 0x30FB DUP2 DUP6 PUSH2 0x30D5 JUMP JUMPDEST SWAP4 POP PUSH2 0x310B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x228C JUMP JUMPDEST PUSH2 0x3114 DUP2 PUSH2 0x22B6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3134 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x3141 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x314E PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x24A0 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3160 DUP2 DUP5 PUSH2 0x30E6 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x317A DUP2 PUSH2 0x21E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3196 JUMPI PUSH2 0x3195 PUSH2 0x21AB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x31A4 DUP5 DUP3 DUP6 ADD PUSH2 0x316B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x31C2 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x31CF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24A0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3210 DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH2 0x321B DUP4 PUSH2 0x2322 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x3229 DUP2 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x3240 JUMPI PUSH2 0x323F PUSH2 0x2911 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3252 DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH2 0x325D DUP4 PUSH2 0x2322 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x3275 JUMPI PUSH2 0x3274 PUSH2 0x2911 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3286 DUP3 PUSH2 0x2322 JUMP JUMPDEST SWAP2 POP PUSH2 0x3291 DUP4 PUSH2 0x2322 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x32A1 JUMPI PUSH2 0x32A0 PUSH2 0x31D6 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID COINBASE TIMESTAMP NUMBER PREVRANDAO GASLIMIT CHAINID SELFBALANCE BASEFEE BLOBHASH BLOBBASEFEE 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2FA2646970667358 0x22 SLT KECCAK256 0xA9 PUSH13 0xAF5FFF622FCBF040485665C2F6 PUSH16 0xB3EDD07BB5C32351CA7BF3B33C7A350B PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "287:3279:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:207:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:89:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3497:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3323:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2184:380:18;;;:::i;:::-;;4143:578:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2636:255:18;;;;;;;;;;;;;:::i;:::-;;4787:132:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2185:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;428:39:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:208:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2518:93:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;508:21:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2939:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4985:208:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1210:593:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:153:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3290:197:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;937:207:8;1039:4;760:10;753:18;;1062:35;;;:11;:35;;;;:75;;;;1101:36;1125:11;1101:23;:36::i;:::-;1062:75;1055:82;;937:207;;;:::o;2365:89:5:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;;3623:21;3636:7;3623:12;:21::i;:::-;3616:28;;3497:154;;;:::o;3323:113::-;3394:35;3403:2;3407:7;3416:12;:10;:12::i;:::-;3394:8;:35::i;:::-;3323:113;;:::o;2184:380:18:-;979:9;;966;:22;958:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2241:22:::1;2266;2280:7;2266:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:22::i;:::-;2241:47;;2316:22;2341:24;2356:8;2341:14;:24::i;:::-;2316:49;;2376:15;;:17;;;;;;;;;:::i;:::-;;;;;;2403;2423:15;;2403:35;;2449:32;2459:10;2471:9;2449;:32::i;:::-;2491:33;2504:9;2515:8;2491:12;:33::i;:::-;2540:17;2547:9;2540:17;;;;;;:::i;:::-;;;;;;;;2231:333;;;2184:380::o:0;4143:578:5:-;4251:1;4237:16;;:2;:16;;;4233:87;;4306:1;4276:33;;;;;;;;;;;:::i;:::-;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;4583:12;:10;:12::i;:::-;4562:7;:34::i;:::-;4538:58;;4627:4;4610:21;;:13;:21;;;4606:109;;4675:4;4681:7;4690:13;4654:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4606:109;4223:498;4143:578;;;:::o;2636:255:18:-;1531:13:0;:11;:13::i;:::-;2690:15:18::1;2708:21;2690:39;;2757:1;2747:7;:11;2739:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;2793:9;2808:7;:5;:7::i;:::-;:12;;2828:7;2808:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2792:48;;;2858:4;2850:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;2680:211;;2636:255::o:0;4787:132:5:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;:::-;2267:29;;2185:118;;;:::o;428:39:18:-;;;;:::o;1920:208:5:-;1983:7;2023:1;2006:19;;:5;:19;;;2002:87;;2075:1;2048:30;;;;;;;;;;;:::i;:::-;;;;;;;;2002:87;2105:9;:16;2115:5;2105:16;;;;;;;;;;;;;;;;2098:23;;1920:208;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2518:93:5:-;2565:13;2597:7;2590:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:93;:::o;3718:144::-;3803:52;3822:12;:10;:12::i;:::-;3836:8;3846;3803:18;:52::i;:::-;3718:144;;:::o;508:21:18:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2939:294::-;1531:13:0;:11;:13::i;:::-;3042:1:18::1;3024:7;3018:21;:25;3010:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;3115:4;3096:7;3090:21;:29;;3082:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3196:7;3186;:17;;;;;;:::i;:::-;;2939:294:::0;:::o;4985:208:5:-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;:::-;4985:208;;;;:::o;1210:593:8:-;1283:13;1308:22;1322:7;1308:13;:22::i;:::-;;1341:23;1367:10;:19;1378:7;1367:19;;;;;;;;;;;1341:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:18;1417:10;:8;:10::i;:::-;1396:31;;1522:1;1506:4;1500:18;:23;1496:70;;1546:9;1539:16;;;;;;1496:70;1691:1;1671:9;1665:23;:27;1661:95;;;1729:4;1735:9;1715:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1708:37;;;;;;1661:95;1773:23;1788:7;1773:14;:23::i;:::-;1766:30;;;;1210:593;;;;:::o;3928:153:5:-;4016:4;4039:18;:25;4058:5;4039:25;;;;;;;;;;;;;;;:35;4065:8;4039:35;;;;;;;;;;;;;;;;;;;;;;;;;4032:42;;3928:153;;;;:::o;3290:197:18:-;1531:13:0;:11;:13::i;:::-;3399:1:18::1;3379:22;;:8;:22;;::::0;3371:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3452:28;3471:8;3452:18;:28::i;:::-;3290:197:::0;:::o;1561:300:5:-;1663:4;1713:25;1698:40;;;:11;:40;;;;:104;;;;1769:33;1754:48;;;:11;:48;;;;1698:104;:156;;;;1818:36;1842:11;1818:23;:36::i;:::-;1698:156;1679:175;;1561:300;;;:::o;16138:241::-;16201:7;16220:13;16236:17;16245:7;16236:8;:17::i;:::-;16220:33;;16284:1;16267:19;;:5;:19;;;16263:88;;16332:7;16309:31;;;;;;;;;;;:::i;:::-;;;;;;;;16263:88;16367:5;16360:12;;;16138:241;;;:::o;5938:127::-;6008:7;6034:15;:24;6050:7;6034:24;;;;;;;;;;;;;;;;;;;;;6027:31;;5938:127;;;:::o;656:96:10:-;709:7;735:10;728:17;;656:96;:::o;14418:120:5:-;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;:::-;14418:120;;;:::o;1088:284:18:-;1152:13;1177:21;:52;;;;;;;;;;;;;;;;;;;1239:30;1272:25;1292:3;1272:13;:25::i;:::-;1239:58;;1338:7;1347:16;1321:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1307:58;;;;1088:284;;;:::o;1443:663::-;1513:13;1672:395;1943:8;1746:273;;;;;;;;:::i;:::-;;;;;;;;;;;;;1672:13;:395::i;:::-;1581:504;;;;;;;;:::i;:::-;;;;;;;;;;;;;1538:561;;1443:663;;;:::o;10633:100:5:-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;:::-;10633:100;;:::o;1922:167:8:-;2035:9;2013:10;:19;2024:7;2013:19;;;;;;;;;;;:31;;;;;;:::i;:::-;;2059:23;2074:7;2059:23;;;;;;:::i;:::-;;;;;;;;1922:167;;:::o;8838:795:5:-;8924:7;8943:12;8958:17;8967:7;8958:8;:17::i;:::-;8943:32;;9051:1;9035:18;;:4;:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;9031:86;9177:1;9161:18;;:4;:18;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;9387:1;9368:9;:15;9378:4;9368:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;9157:256;9441:1;9427:16;;:2;:16;;;9423:107;;9504:1;9487:9;:13;9497:2;9487:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9423:107;9559:2;9540:7;:16;9548:7;9540:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9596:7;9592:2;9577:27;;9586:4;9577:27;;;;;;;;;;;;9622:4;9615:11;;;8838:795;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;15591:312:5:-;15718:1;15698:22;;:8;:22;;;15694:91;;15765:8;15743:31;;;;;;;;;;;:::i;:::-;;;;;;;;15694:91;15832:8;15794:18;:25;15813:5;15794:25;;;;;;;;;;;;;;;:35;15820:8;15794:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15877:8;15855:41;;15870:5;15855:41;;;15887:8;15855:41;;;;;;:::i;:::-;;;;;;;;15591:312;;;:::o;16918:782::-;17051:1;17034:2;:14;;;:18;17030:664;;;17088:2;17072:36;;;17109:12;:10;:12::i;:::-;17123:4;17129:7;17138:4;17072:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:1;17381:6;:13;:18;17377:293;;17452:2;17430:25;;;;;;;;;;;:::i;:::-;;;;;;;;17377:293;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;17200:41;;;17190:51;;;:6;:51;;;;17186:130;;17294:2;17272:25;;;;;;;;;;;:::i;:::-;;;;;;;;17186:130;17144:186;17030:664;16918:782;;;;:::o;3174:92::-;3225:13;3250:9;;;;;;;;;;;;;;3174:92;:::o;2677:255::-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;:8;:10::i;:::-;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;;;2677:255;;;:::o;762:146:12:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;5707:115:5:-;5773:7;5799;:16;5807:7;5799:16;;;;;;;;;;;;;;;;;;;;;5792:23;;5707:115;;;:::o;14720:662::-;14880:9;:31;;;;14909:1;14893:18;;:4;:18;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;;15109:1;15093:18;;:4;:18;;;;:35;;;;;15124:4;15115:13;;:5;:13;;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15211:4;15189:27;;;;;;;;;;;:::i;:::-;;;;;;;;15089:142;15249:9;15245:81;;;15303:7;15299:2;15283:28;;15292:5;15283:28;;;;;;;;;;;;15245:81;14913:423;14876:460;15373:2;15346:15;:24;15362:7;15346:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14720:662;;;;:::o;682:126:16:-;740:13;773:27;781:4;787:6;;;;;;;;;;;;;;;;;795:4;773:7;:27::i;:::-;766:34;;682:126;;;:::o;10954:182:5:-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;:::-;10954:182;;;:::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;7269:1;7252:19;;:5;:19;;;7248:186;;7321:7;7298:31;;;;;;;;;;;:::i;:::-;;;;;;;;7248:186;7402:7;7411;7375:44;;;;;;;;;;;;:::i;:::-;;;;;;;;7189:255;7082:368;;;:::o;637:698:11:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;1220:4109:16:-;1317:13;1569:1;1554:4;:11;:16;1550:31;;1572:9;;;;;;;;;;;;;;;;1550:31;2534:20;2557:11;:69;;2625:1;2620;2606:4;:11;2602:1;:15;;;;:::i;:::-;:19;;;;:::i;:::-;2601:25;;;;:::i;:::-;2557:69;;;2596:1;2591;2577:4;:11;:15;;;;:::i;:::-;2576:21;;;;:::i;:::-;2571:1;:27;;;;:::i;:::-;2557:69;2534:92;;2639:20;2673:12;2662:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2639:47;;2838:1;2831:5;2827:13;2942:4;2934:6;2930:17;2976:4;3024;3018:11;3012:4;3008:22;3276:4;3268:6;3264:17;3319:8;3313:15;3359:4;3349:8;3342:22;3434:1286;3469:6;3460:7;3457:19;3434:1286;;;3575:1;3566:7;3562:15;3551:26;;3614:7;3608:14;4210:4;4202:5;4198:2;4194:14;4190:25;4180:8;4176:40;4170:47;4159:9;4151:67;4264:1;4253:9;4249:17;4236:30;;4356:4;4348:5;4344:2;4340:14;4336:25;4326:8;4322:40;4316:47;4305:9;4297:67;4410:1;4399:9;4395:17;4382:30;;4501:4;4493:5;4490:1;4486:13;4482:24;4472:8;4468:39;4462:46;4451:9;4443:66;4555:1;4544:9;4540:17;4527:30;;4638:4;4631:5;4627:16;4617:8;4613:31;4607:38;4596:9;4588:58;4692:1;4681:9;4677:17;4664:30;;3496:1224;3434:1286;;;4801:10;4791:8;4784:28;4831:11;4828:457;;;5016:1;5009:4;5003:11;4999:19;5041:1;5036:135;;;;5194:1;5189:81;;;;4992:278;;5036:135;5093:4;5089:1;5078:9;5074:17;5066:32;5147:4;5143:1;5132:9;5128:17;5120:32;5036:135;;5189:81;5246:4;5242:1;5231:9;5227:17;5219:32;4992:278;;4828:457;2724:2572;;;;;;5315:6;5308:13;;;;1220:4109;;;;;;:::o;9955:327:5:-;10036:1;10022:16;;:2;:16;;;10018:87;;10091:1;10061:33;;;;;;;;;;;:::i;:::-;;;;;;;;10018:87;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;;10209:1;10184:27;;:13;:27;;;10180:96;;10262:1;10234:31;;;;;;;;;;;:::i;:::-;;;;;;;;10180:96;10008:274;9955:327;;:::o;6376:272::-;6479:4;6533:1;6514:21;;:7;:21;;;;:127;;;;;6561:7;6552:16;;:5;:16;;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:52;:88;;;;6633:7;6608:32;;:21;6621:7;6608:12;:21::i;:::-;:32;;;6552:88;6514:127;6495:146;;6376:272;;;;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;7:75:23:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:77::-;2897:7;2926:5;2915:16;;2860:77;;;:::o;2943:122::-;3016:24;3034:5;3016:24;:::i;:::-;3009:5;3006:35;2996:63;;3055:1;3052;3045:12;2996:63;2943:122;:::o;3071:139::-;3117:5;3155:6;3142:20;3133:29;;3171:33;3198:5;3171:33;:::i;:::-;3071:139;;;;:::o;3216:329::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;;:::i;:::-;3292:119;3450:1;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3421:117;3216:329;;;;:::o;3551:126::-;3588:7;3628:42;3621:5;3617:54;3606:65;;3551:126;;;:::o;3683:96::-;3720:7;3749:24;3767:5;3749:24;:::i;:::-;3738:35;;3683:96;;;:::o;3785:118::-;3872:24;3890:5;3872:24;:::i;:::-;3867:3;3860:37;3785:118;;:::o;3909:222::-;4002:4;4040:2;4029:9;4025:18;4017:26;;4053:71;4121:1;4110:9;4106:17;4097:6;4053:71;:::i;:::-;3909:222;;;;:::o;4137:122::-;4210:24;4228:5;4210:24;:::i;:::-;4203:5;4200:35;4190:63;;4249:1;4246;4239:12;4190:63;4137:122;:::o;4265:139::-;4311:5;4349:6;4336:20;4327:29;;4365:33;4392:5;4365:33;:::i;:::-;4265:139;;;;:::o;4410:474::-;4478:6;4486;4535:2;4523:9;4514:7;4510:23;4506:32;4503:119;;;4541:79;;:::i;:::-;4503:119;4661:1;4686:53;4731:7;4722:6;4711:9;4707:22;4686:53;:::i;:::-;4676:63;;4632:117;4788:2;4814:53;4859:7;4850:6;4839:9;4835:22;4814:53;:::i;:::-;4804:63;;4759:118;4410:474;;;;;:::o;4890:619::-;4967:6;4975;4983;5032:2;5020:9;5011:7;5007:23;5003:32;5000:119;;;5038:79;;:::i;:::-;5000:119;5158:1;5183:53;5228:7;5219:6;5208:9;5204:22;5183:53;:::i;:::-;5173:63;;5129:117;5285:2;5311:53;5356:7;5347:6;5336:9;5332:22;5311:53;:::i;:::-;5301:63;;5256:118;5413:2;5439:53;5484:7;5475:6;5464:9;5460:22;5439:53;:::i;:::-;5429:63;;5384:118;4890:619;;;;;:::o;5515:118::-;5602:24;5620:5;5602:24;:::i;:::-;5597:3;5590:37;5515:118;;:::o;5639:222::-;5732:4;5770:2;5759:9;5755:18;5747:26;;5783:71;5851:1;5840:9;5836:17;5827:6;5783:71;:::i;:::-;5639:222;;;;:::o;5867:329::-;5926:6;5975:2;5963:9;5954:7;5950:23;5946:32;5943:119;;;5981:79;;:::i;:::-;5943:119;6101:1;6126:53;6171:7;6162:6;6151:9;6147:22;6126:53;:::i;:::-;6116:63;;6072:117;5867:329;;;;:::o;6202:116::-;6272:21;6287:5;6272:21;:::i;:::-;6265:5;6262:32;6252:60;;6308:1;6305;6298:12;6252:60;6202:116;:::o;6324:133::-;6367:5;6405:6;6392:20;6383:29;;6421:30;6445:5;6421:30;:::i;:::-;6324:133;;;;:::o;6463:468::-;6528:6;6536;6585:2;6573:9;6564:7;6560:23;6556:32;6553:119;;;6591:79;;:::i;:::-;6553:119;6711:1;6736:53;6781:7;6772:6;6761:9;6757:22;6736:53;:::i;:::-;6726:63;;6682:117;6838:2;6864:50;6906:7;6897:6;6886:9;6882:22;6864:50;:::i;:::-;6854:60;;6809:115;6463:468;;;;;:::o;6937:117::-;7046:1;7043;7036:12;7060:117;7169:1;7166;7159:12;7183:180;7231:77;7228:1;7221:88;7328:4;7325:1;7318:15;7352:4;7349:1;7342:15;7369:281;7452:27;7474:4;7452:27;:::i;:::-;7444:6;7440:40;7582:6;7570:10;7567:22;7546:18;7534:10;7531:34;7528:62;7525:88;;;7593:18;;:::i;:::-;7525:88;7633:10;7629:2;7622:22;7412:238;7369:281;;:::o;7656:129::-;7690:6;7717:20;;:::i;:::-;7707:30;;7746:33;7774:4;7766:6;7746:33;:::i;:::-;7656:129;;;:::o;7791:308::-;7853:4;7943:18;7935:6;7932:30;7929:56;;;7965:18;;:::i;:::-;7929:56;8003:29;8025:6;8003:29;:::i;:::-;7995:37;;8087:4;8081;8077:15;8069:23;;7791:308;;;:::o;8105:146::-;8202:6;8197:3;8192;8179:30;8243:1;8234:6;8229:3;8225:16;8218:27;8105:146;;;:::o;8257:425::-;8335:5;8360:66;8376:49;8418:6;8376:49;:::i;:::-;8360:66;:::i;:::-;8351:75;;8449:6;8442:5;8435:21;8487:4;8480:5;8476:16;8525:3;8516:6;8511:3;8507:16;8504:25;8501:112;;;8532:79;;:::i;:::-;8501:112;8622:54;8669:6;8664:3;8659;8622:54;:::i;:::-;8341:341;8257:425;;;;;:::o;8702:340::-;8758:5;8807:3;8800:4;8792:6;8788:17;8784:27;8774:122;;8815:79;;:::i;:::-;8774:122;8932:6;8919:20;8957:79;9032:3;9024:6;9017:4;9009:6;9005:17;8957:79;:::i;:::-;8948:88;;8764:278;8702:340;;;;:::o;9048:509::-;9117:6;9166:2;9154:9;9145:7;9141:23;9137:32;9134:119;;;9172:79;;:::i;:::-;9134:119;9320:1;9309:9;9305:17;9292:31;9350:18;9342:6;9339:30;9336:117;;;9372:79;;:::i;:::-;9336:117;9477:63;9532:7;9523:6;9512:9;9508:22;9477:63;:::i;:::-;9467:73;;9263:287;9048:509;;;;:::o;9563:307::-;9624:4;9714:18;9706:6;9703:30;9700:56;;;9736:18;;:::i;:::-;9700:56;9774:29;9796:6;9774:29;:::i;:::-;9766:37;;9858:4;9852;9848:15;9840:23;;9563:307;;;:::o;9876:423::-;9953:5;9978:65;9994:48;10035:6;9994:48;:::i;:::-;9978:65;:::i;:::-;9969:74;;10066:6;10059:5;10052:21;10104:4;10097:5;10093:16;10142:3;10133:6;10128:3;10124:16;10121:25;10118:112;;;10149:79;;:::i;:::-;10118:112;10239:54;10286:6;10281:3;10276;10239:54;:::i;:::-;9959:340;9876:423;;;;;:::o;10318:338::-;10373:5;10422:3;10415:4;10407:6;10403:17;10399:27;10389:122;;10430:79;;:::i;:::-;10389:122;10547:6;10534:20;10572:78;10646:3;10638:6;10631:4;10623:6;10619:17;10572:78;:::i;:::-;10563:87;;10379:277;10318:338;;;;:::o;10662:943::-;10757:6;10765;10773;10781;10830:3;10818:9;10809:7;10805:23;10801:33;10798:120;;;10837:79;;:::i;:::-;10798:120;10957:1;10982:53;11027:7;11018:6;11007:9;11003:22;10982:53;:::i;:::-;10972:63;;10928:117;11084:2;11110:53;11155:7;11146:6;11135:9;11131:22;11110:53;:::i;:::-;11100:63;;11055:118;11212:2;11238:53;11283:7;11274:6;11263:9;11259:22;11238:53;:::i;:::-;11228:63;;11183:118;11368:2;11357:9;11353:18;11340:32;11399:18;11391:6;11388:30;11385:117;;;11421:79;;:::i;:::-;11385:117;11526:62;11580:7;11571:6;11560:9;11556:22;11526:62;:::i;:::-;11516:72;;11311:287;10662:943;;;;;;;:::o;11611:474::-;11679:6;11687;11736:2;11724:9;11715:7;11711:23;11707:32;11704:119;;;11742:79;;:::i;:::-;11704:119;11862:1;11887:53;11932:7;11923:6;11912:9;11908:22;11887:53;:::i;:::-;11877:63;;11833:117;11989:2;12015:53;12060:7;12051:6;12040:9;12036:22;12015:53;:::i;:::-;12005:63;;11960:118;11611:474;;;;;:::o;12091:180::-;12139:77;12136:1;12129:88;12236:4;12233:1;12226:15;12260:4;12257:1;12250:15;12277:320;12321:6;12358:1;12352:4;12348:12;12338:22;;12405:1;12399:4;12395:12;12426:18;12416:81;;12482:4;12474:6;12470:17;12460:27;;12416:81;12544:2;12536:6;12533:14;12513:18;12510:38;12507:84;;12563:18;;:::i;:::-;12507:84;12328:269;12277:320;;;:::o;12603:179::-;12743:31;12739:1;12731:6;12727:14;12720:55;12603:179;:::o;12788:366::-;12930:3;12951:67;13015:2;13010:3;12951:67;:::i;:::-;12944:74;;13027:93;13116:3;13027:93;:::i;:::-;13145:2;13140:3;13136:12;13129:19;;12788:366;;;:::o;13160:419::-;13326:4;13364:2;13353:9;13349:18;13341:26;;13413:9;13407:4;13403:20;13399:1;13388:9;13384:17;13377:47;13441:131;13567:4;13441:131;:::i;:::-;13433:139;;13160:419;;;:::o;13585:180::-;13633:77;13630:1;13623:88;13730:4;13727:1;13720:15;13754:4;13751:1;13744:15;13771:233;13810:3;13833:24;13851:5;13833:24;:::i;:::-;13824:33;;13879:66;13872:5;13869:77;13866:103;;13949:18;;:::i;:::-;13866:103;13996:1;13989:5;13985:13;13978:20;;13771:233;;;:::o;14010:442::-;14159:4;14197:2;14186:9;14182:18;14174:26;;14210:71;14278:1;14267:9;14263:17;14254:6;14210:71;:::i;:::-;14291:72;14359:2;14348:9;14344:18;14335:6;14291:72;:::i;:::-;14373;14441:2;14430:9;14426:18;14417:6;14373:72;:::i;:::-;14010:442;;;;;;:::o;14458:168::-;14598:20;14594:1;14586:6;14582:14;14575:44;14458:168;:::o;14632:366::-;14774:3;14795:67;14859:2;14854:3;14795:67;:::i;:::-;14788:74;;14871:93;14960:3;14871:93;:::i;:::-;14989:2;14984:3;14980:12;14973:19;;14632:366;;;:::o;15004:419::-;15170:4;15208:2;15197:9;15193:18;15185:26;;15257:9;15251:4;15247:20;15243:1;15232:9;15228:17;15221:47;15285:131;15411:4;15285:131;:::i;:::-;15277:139;;15004:419;;;:::o;15429:147::-;15530:11;15567:3;15552:18;;15429:147;;;;:::o;15582:114::-;;:::o;15702:398::-;15861:3;15882:83;15963:1;15958:3;15882:83;:::i;:::-;15875:90;;15974:93;16063:3;15974:93;:::i;:::-;16092:1;16087:3;16083:11;16076:18;;15702:398;;;:::o;16106:379::-;16290:3;16312:147;16455:3;16312:147;:::i;:::-;16305:154;;16476:3;16469:10;;16106:379;;;:::o;16491:167::-;16631:19;16627:1;16619:6;16615:14;16608:43;16491:167;:::o;16664:366::-;16806:3;16827:67;16891:2;16886:3;16827:67;:::i;:::-;16820:74;;16903:93;16992:3;16903:93;:::i;:::-;17021:2;17016:3;17012:12;17005:19;;16664:366;;;:::o;17036:419::-;17202:4;17240:2;17229:9;17225:18;17217:26;;17289:9;17283:4;17279:20;17275:1;17264:9;17260:17;17253:47;17317:131;17443:4;17317:131;:::i;:::-;17309:139;;17036:419;;;:::o;17461:174::-;17601:26;17597:1;17589:6;17585:14;17578:50;17461:174;:::o;17641:366::-;17783:3;17804:67;17868:2;17863:3;17804:67;:::i;:::-;17797:74;;17880:93;17969:3;17880:93;:::i;:::-;17998:2;17993:3;17989:12;17982:19;;17641:366;;;:::o;18013:419::-;18179:4;18217:2;18206:9;18202:18;18194:26;;18266:9;18260:4;18256:20;18252:1;18241:9;18237:17;18230:47;18294:131;18420:4;18294:131;:::i;:::-;18286:139;;18013:419;;;:::o;18438:168::-;18578:20;18574:1;18566:6;18562:14;18555:44;18438:168;:::o;18612:366::-;18754:3;18775:67;18839:2;18834:3;18775:67;:::i;:::-;18768:74;;18851:93;18940:3;18851:93;:::i;:::-;18969:2;18964:3;18960:12;18953:19;;18612:366;;;:::o;18984:419::-;19150:4;19188:2;19177:9;19173:18;19165:26;;19237:9;19231:4;19227:20;19223:1;19212:9;19208:17;19201:47;19265:131;19391:4;19265:131;:::i;:::-;19257:139;;18984:419;;;:::o;19409:141::-;19458:4;19481:3;19473:11;;19504:3;19501:1;19494:14;19538:4;19535:1;19525:18;19517:26;;19409:141;;;:::o;19556:93::-;19593:6;19640:2;19635;19628:5;19624:14;19620:23;19610:33;;19556:93;;;:::o;19655:107::-;19699:8;19749:5;19743:4;19739:16;19718:37;;19655:107;;;;:::o;19768:393::-;19837:6;19887:1;19875:10;19871:18;19910:97;19940:66;19929:9;19910:97;:::i;:::-;20028:39;20058:8;20047:9;20028:39;:::i;:::-;20016:51;;20100:4;20096:9;20089:5;20085:21;20076:30;;20149:4;20139:8;20135:19;20128:5;20125:30;20115:40;;19844:317;;19768:393;;;;;:::o;20167:60::-;20195:3;20216:5;20209:12;;20167:60;;;:::o;20233:142::-;20283:9;20316:53;20334:34;20343:24;20361:5;20343:24;:::i;:::-;20334:34;:::i;:::-;20316:53;:::i;:::-;20303:66;;20233:142;;;:::o;20381:75::-;20424:3;20445:5;20438:12;;20381:75;;;:::o;20462:269::-;20572:39;20603:7;20572:39;:::i;:::-;20633:91;20682:41;20706:16;20682:41;:::i;:::-;20674:6;20667:4;20661:11;20633:91;:::i;:::-;20627:4;20620:105;20538:193;20462:269;;;:::o;20737:73::-;20782:3;20737:73;:::o;20816:189::-;20893:32;;:::i;:::-;20934:65;20992:6;20984;20978:4;20934:65;:::i;:::-;20869:136;20816:189;;:::o;21011:186::-;21071:120;21088:3;21081:5;21078:14;21071:120;;;21142:39;21179:1;21172:5;21142:39;:::i;:::-;21115:1;21108:5;21104:13;21095:22;;21071:120;;;21011:186;;:::o;21203:543::-;21304:2;21299:3;21296:11;21293:446;;;21338:38;21370:5;21338:38;:::i;:::-;21422:29;21440:10;21422:29;:::i;:::-;21412:8;21408:44;21605:2;21593:10;21590:18;21587:49;;;21626:8;21611:23;;21587:49;21649:80;21705:22;21723:3;21705:22;:::i;:::-;21695:8;21691:37;21678:11;21649:80;:::i;:::-;21308:431;;21293:446;21203:543;;;:::o;21752:117::-;21806:8;21856:5;21850:4;21846:16;21825:37;;21752:117;;;;:::o;21875:169::-;21919:6;21952:51;22000:1;21996:6;21988:5;21985:1;21981:13;21952:51;:::i;:::-;21948:56;22033:4;22027;22023:15;22013:25;;21926:118;21875:169;;;;:::o;22049:295::-;22125:4;22271:29;22296:3;22290:4;22271:29;:::i;:::-;22263:37;;22333:3;22330:1;22326:11;22320:4;22317:21;22309:29;;22049:295;;;;:::o;22349:1395::-;22466:37;22499:3;22466:37;:::i;:::-;22568:18;22560:6;22557:30;22554:56;;;22590:18;;:::i;:::-;22554:56;22634:38;22666:4;22660:11;22634:38;:::i;:::-;22719:67;22779:6;22771;22765:4;22719:67;:::i;:::-;22813:1;22837:4;22824:17;;22869:2;22861:6;22858:14;22886:1;22881:618;;;;23543:1;23560:6;23557:77;;;23609:9;23604:3;23600:19;23594:26;23585:35;;23557:77;23660:67;23720:6;23713:5;23660:67;:::i;:::-;23654:4;23647:81;23516:222;22851:887;;22881:618;22933:4;22929:9;22921:6;22917:22;22967:37;22999:4;22967:37;:::i;:::-;23026:1;23040:208;23054:7;23051:1;23048:14;23040:208;;;23133:9;23128:3;23124:19;23118:26;23110:6;23103:42;23184:1;23176:6;23172:14;23162:24;;23231:2;23220:9;23216:18;23203:31;;23077:4;23074:1;23070:12;23065:17;;23040:208;;;23276:6;23267:7;23264:19;23261:179;;;23334:9;23329:3;23325:19;23319:26;23377:48;23419:4;23411:6;23407:17;23396:9;23377:48;:::i;:::-;23369:6;23362:64;23284:156;23261:179;23486:1;23482;23474:6;23470:14;23466:22;23460:4;23453:36;22888:611;;;22851:887;;22441:1303;;;22349:1395;;:::o;23750:148::-;23852:11;23889:3;23874:18;;23750:148;;;;:::o;23904:390::-;24010:3;24038:39;24071:5;24038:39;:::i;:::-;24093:89;24175:6;24170:3;24093:89;:::i;:::-;24086:96;;24191:65;24249:6;24244:3;24237:4;24230:5;24226:16;24191:65;:::i;:::-;24281:6;24276:3;24272:16;24265:23;;24014:280;23904:390;;;;:::o;24300:435::-;24480:3;24502:95;24593:3;24584:6;24502:95;:::i;:::-;24495:102;;24614:95;24705:3;24696:6;24614:95;:::i;:::-;24607:102;;24726:3;24719:10;;24300:435;;;;;:::o;24741:223::-;24881:34;24877:1;24869:6;24865:14;24858:58;24950:6;24945:2;24937:6;24933:15;24926:31;24741:223;:::o;24970:366::-;25112:3;25133:67;25197:2;25192:3;25133:67;:::i;:::-;25126:74;;25209:93;25298:3;25209:93;:::i;:::-;25327:2;25322:3;25318:12;25311:19;;24970:366;;;:::o;25342:419::-;25508:4;25546:2;25535:9;25531:18;25523:26;;25595:9;25589:4;25585:20;25581:1;25570:9;25566:17;25559:47;25623:131;25749:4;25623:131;:::i;:::-;25615:139;;25342:419;;;:::o;25767:485::-;25907:66;25903:1;25895:6;25891:14;25884:90;26008:66;26003:2;25995:6;25991:15;25984:91;26109:34;26104:2;26096:6;26092:15;26085:59;26178:66;26173:2;26165:6;26161:15;26154:91;25767:485;:::o;26258:404::-;26418:3;26439:86;26521:3;26516;26439:86;:::i;:::-;26432:93;;26534;26623:3;26534:93;:::i;:::-;26652:3;26647;26643:13;26636:20;;26258:404;;;:::o;26668:214::-;26808:66;26804:1;26796:6;26792:14;26785:90;26668:214;:::o;26888:400::-;27048:3;27069:84;27151:1;27146:3;27069:84;:::i;:::-;27062:91;;27162:93;27251:3;27162:93;:::i;:::-;27280:1;27275:3;27271:11;27264:18;;26888:400;;;:::o;27294:807::-;27628:3;27650:148;27794:3;27650:148;:::i;:::-;27643:155;;27815:95;27906:3;27897:6;27815:95;:::i;:::-;27808:102;;27927:148;28071:3;27927:148;:::i;:::-;27920:155;;28092:3;28085:10;;27294:807;;;;:::o;28107:179::-;28247:31;28243:1;28235:6;28231:14;28224:55;28107:179;:::o;28292:402::-;28452:3;28473:85;28555:2;28550:3;28473:85;:::i;:::-;28466:92;;28567:93;28656:3;28567:93;:::i;:::-;28685:2;28680:3;28676:12;28669:19;;28292:402;;;:::o;28700:541::-;28933:3;28955:148;29099:3;28955:148;:::i;:::-;28948:155;;29120:95;29211:3;29202:6;29120:95;:::i;:::-;29113:102;;29232:3;29225:10;;28700:541;;;;:::o;29247:98::-;29298:6;29332:5;29326:12;29316:22;;29247:98;;;:::o;29351:168::-;29434:11;29468:6;29463:3;29456:19;29508:4;29503:3;29499:14;29484:29;;29351:168;;;;:::o;29525:373::-;29611:3;29639:38;29671:5;29639:38;:::i;:::-;29693:70;29756:6;29751:3;29693:70;:::i;:::-;29686:77;;29772:65;29830:6;29825:3;29818:4;29811:5;29807:16;29772:65;:::i;:::-;29862:29;29884:6;29862:29;:::i;:::-;29857:3;29853:39;29846:46;;29615:283;29525:373;;;;:::o;29904:640::-;30099:4;30137:3;30126:9;30122:19;30114:27;;30151:71;30219:1;30208:9;30204:17;30195:6;30151:71;:::i;:::-;30232:72;30300:2;30289:9;30285:18;30276:6;30232:72;:::i;:::-;30314;30382:2;30371:9;30367:18;30358:6;30314:72;:::i;:::-;30433:9;30427:4;30423:20;30418:2;30407:9;30403:18;30396:48;30461:76;30532:4;30523:6;30461:76;:::i;:::-;30453:84;;29904:640;;;;;;;:::o;30550:141::-;30606:5;30637:6;30631:13;30622:22;;30653:32;30679:5;30653:32;:::i;:::-;30550:141;;;;:::o;30697:349::-;30766:6;30815:2;30803:9;30794:7;30790:23;30786:32;30783:119;;;30821:79;;:::i;:::-;30783:119;30941:1;30966:63;31021:7;31012:6;31001:9;30997:22;30966:63;:::i;:::-;30956:73;;30912:127;30697:349;;;;:::o;31052:332::-;31173:4;31211:2;31200:9;31196:18;31188:26;;31224:71;31292:1;31281:9;31277:17;31268:6;31224:71;:::i;:::-;31305:72;31373:2;31362:9;31358:18;31349:6;31305:72;:::i;:::-;31052:332;;;;;:::o;31390:180::-;31438:77;31435:1;31428:88;31535:4;31532:1;31525:15;31559:4;31556:1;31549:15;31576:410;31616:7;31639:20;31657:1;31639:20;:::i;:::-;31634:25;;31673:20;31691:1;31673:20;:::i;:::-;31668:25;;31728:1;31725;31721:9;31750:30;31768:11;31750:30;:::i;:::-;31739:41;;31929:1;31920:7;31916:15;31913:1;31910:22;31890:1;31883:9;31863:83;31840:139;;31959:18;;:::i;:::-;31840:139;31624:362;31576:410;;;;:::o;31992:191::-;32032:3;32051:20;32069:1;32051:20;:::i;:::-;32046:25;;32085:20;32103:1;32085:20;:::i;:::-;32080:25;;32128:1;32125;32121:9;32114:16;;32149:3;32146:1;32143:10;32140:36;;;32156:18;;:::i;:::-;32140:36;31992:191;;;;:::o;32189:185::-;32229:1;32246:20;32264:1;32246:20;:::i;:::-;32241:25;;32280:20;32298:1;32280:20;:::i;:::-;32275:25;;32319:1;32309:35;;32324:18;;:::i;:::-;32309:35;32366:1;32363;32359:9;32354:14;;32189:185;;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "mint()": "1249c58b", + "mintPrice()": "6817c76c", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "ownerOf(uint256)": "6352211e", + "renounceOwnership()": "715018a6", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "svgData()": "a31e06da", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "updateSVG(string)": "a52db60d", + "withdrawFunds()": "24600fc3" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"initialSvg\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"svgData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newSvg\",\"type\":\"string\"}],\"name\":\"updateSVG\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FluffyFuryNFT.sol\":\"FluffyFury\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Base64.sol\":{\"keccak256\":\"0x6d694185b14e1233702ff0bbf9fd2d1915b53cc525e17fd74fcf924c0965a8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e929968c67ff158ca737ccccb0847c02e4d07006f9d9d395bc8c2b7264486fc\",\"dweb:/ipfs/QmQUrKGYj5QKkZN7DDXHcivBFU7tzF2Uyv3G65ZaZBZEFS\"]},\"contracts/FluffyFuryNFT.sol\":{\"keccak256\":\"0xd75f9c8d5c1f11e8a1fb81a63104cd3e5e3c1f5194967b5bde7a7c55b8a1681f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d21eb9d736dbc88fd52d7928c49fd4294dcd17e66c2dbb59ef671e1ac20acc9c\",\"dweb:/ipfs/QmaPPWDey7bc7vUwGfpJnZPry3LHLdh1ds7HaXse1Zpo11\"]}},\"version\":1}" + } + }, + "contracts/NFTGatedEventManager.sol": { + "NFTGatedEventManager": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "eventId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "eventName", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eventDate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "nftRequired", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "maxCapacity", + "type": "uint256" + } + ], + "name": "EventCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "eventId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "newStatus", + "type": "bool" + } + ], + "name": "EventStatusUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "eventId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "UserRegistered", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_eventName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_eventDate", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_nftRequired", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_maxCapacity", + "type": "uint256" + } + ], + "name": "createEvent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "eventIdCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "events", + "outputs": [ + { + "internalType": "string", + "name": "eventName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "eventDate", + "type": "uint256" + }, + { + "internalType": "address", + "name": "nftRequired", + "type": "address" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "maxCapacity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "registeredCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + } + ], + "name": "getEventDetails", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "isUserRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + } + ], + "name": "registerForEvent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "_isActive", + "type": "bool" + } + ], + "name": "updateEventStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_3787": { + "entryPoint": null, + "id": 3787, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611aed806100616000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806357f697991161005b57806357f69799146101165780638da5cb5b14610146578063e01a0ebe14610164578063ec38d5a01461018257610088565b8063018c97241461008d5780630b791430146100a9578063406db843146100de57806354484fb0146100fa575b600080fd5b6100a760048036038101906100a29190610d8b565b6101b7565b005b6100c360048036038101906100be9190610e0e565b6104f0565b6040516100d596959493929190610ef3565b60405180910390f35b6100f860048036038101906100f39190610e0e565b6105e1565b005b610114600480360381019061010f9190610f87565b6108f9565b005b610130600480360381019061012b9190610fc7565b6109fa565b60405161013d9190611007565b60405180910390f35b61014e610a65565b60405161015b9190611022565b60405180910390f35b61016c610a8b565b604051610179919061103d565b60405180910390f35b61019c60048036038101906101979190610e0e565b610a91565b6040516101ae96959493929190611058565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023e90611132565b60405180910390fd5b428311610289576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610280906111c4565b60405180910390fd5b600081116102cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c390611256565b60405180910390fd5b6000823b905060008163ffffffff161161031b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610312906112e8565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f80ac58cd000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016103749190611343565b602060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b59190611373565b6103f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103eb90611412565b60405180910390fd5b6000600160008054815260200190815260200160002090508581600001908161041d919061163e565b50848160010181905550838160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082816003018190555060018160020160146101000a81548160ff0219169083151502179055507f88f91a8cee50507bf8f67ddf436d225a426a493c10f4a94db0ad16d480de7dd7600054878787876040516104c9959493929190611710565b60405180910390a16000808154809291906104e390611799565b9190505550505050505050565b600160205280600052604060002060009150905080600001805461051390611461565b80601f016020809104026020016040519081016040528092919081815260200182805461053f90611461565b801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b5050505050908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154905086565b60006001600083815260200190815260200160002090508060020160149054906101000a900460ff16610649576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106409061182d565b60405180910390fd5b8060010154421061068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690611899565b60405180910390fd5b80600301548160040154106106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d090611905565b60405180910390fd5b8060050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90611997565b60405180910390fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016107c79190611022565b602060405180830381865afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080891906119cc565b11610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90611a45565b60405180910390fd5b60018160050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060040160008154809291906108b790611799565b91905055507fb442efe467d2ef30e62927a3cae0afcbc799a8a0944d8a143332e4e5e51cee5d82336040516108ed929190611a65565b60405180910390a15050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090611132565b60405180910390fd5b6000600160008481526020019081526020016000209050818160020160146101000a81548160ff0219169083151502179055507fa84e22267ca5f39c3dc082a44444f3f681b9f38a5287a019487a246f28a04b0983836040516109ed929190611a8e565b60405180910390a1505050565b60006001600084815260200190815260200160002060050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60606000806000806000806001600089815260200190815260200160002090508060000181600101548260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003015484600401548560020160149054906101000a900460ff16858054610b0790611461565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3390611461565b8015610b805780601f10610b5557610100808354040283529160200191610b80565b820191906000526020600020905b815481529060010190602001808311610b6357829003601f168201915b505050505095509650965096509650965096505091939550919395565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c0482610bbb565b810181811067ffffffffffffffff82111715610c2357610c22610bcc565b5b80604052505050565b6000610c36610b9d565b9050610c428282610bfb565b919050565b600067ffffffffffffffff821115610c6257610c61610bcc565b5b610c6b82610bbb565b9050602081019050919050565b82818337600083830152505050565b6000610c9a610c9584610c47565b610c2c565b905082815260208101848484011115610cb657610cb5610bb6565b5b610cc1848285610c78565b509392505050565b600082601f830112610cde57610cdd610bb1565b5b8135610cee848260208601610c87565b91505092915050565b6000819050919050565b610d0a81610cf7565b8114610d1557600080fd5b50565b600081359050610d2781610d01565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d5882610d2d565b9050919050565b610d6881610d4d565b8114610d7357600080fd5b50565b600081359050610d8581610d5f565b92915050565b60008060008060808587031215610da557610da4610ba7565b5b600085013567ffffffffffffffff811115610dc357610dc2610bac565b5b610dcf87828801610cc9565b9450506020610de087828801610d18565b9350506040610df187828801610d76565b9250506060610e0287828801610d18565b91505092959194509250565b600060208284031215610e2457610e23610ba7565b5b6000610e3284828501610d18565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e75578082015181840152602081019050610e5a565b60008484015250505050565b6000610e8c82610e3b565b610e968185610e46565b9350610ea6818560208601610e57565b610eaf81610bbb565b840191505092915050565b610ec381610cf7565b82525050565b610ed281610d4d565b82525050565b60008115159050919050565b610eed81610ed8565b82525050565b600060c0820190508181036000830152610f0d8189610e81565b9050610f1c6020830188610eba565b610f296040830187610ec9565b610f366060830186610ee4565b610f436080830185610eba565b610f5060a0830184610eba565b979650505050505050565b610f6481610ed8565b8114610f6f57600080fd5b50565b600081359050610f8181610f5b565b92915050565b60008060408385031215610f9e57610f9d610ba7565b5b6000610fac85828601610d18565b9250506020610fbd85828601610f72565b9150509250929050565b60008060408385031215610fde57610fdd610ba7565b5b6000610fec85828601610d18565b9250506020610ffd85828601610d76565b9150509250929050565b600060208201905061101c6000830184610ee4565b92915050565b60006020820190506110376000830184610ec9565b92915050565b60006020820190506110526000830184610eba565b92915050565b600060c08201905081810360008301526110728189610e81565b90506110816020830188610eba565b61108e6040830187610ec9565b61109b6060830186610eba565b6110a86080830185610eba565b6110b560a0830184610ee4565b979650505050505050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e2e0000000000000000000000000000000000602082015250565b600061111c602f83610e46565b9150611127826110c0565b604082019050919050565b6000602082019050818103600083015261114b8161110f565b9050919050565b7f4576656e742064617465206d75737420626520696e207468652066757475726560008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ae602183610e46565b91506111b982611152565b604082019050919050565b600060208201905081810360008301526111dd816111a1565b9050919050565b7f4d6178206361706163697479206d75737420626520677265617465722074686160008201527f6e207a65726f2e00000000000000000000000000000000000000000000000000602082015250565b6000611240602783610e46565b915061124b826111e4565b604082019050919050565b6000602082019050818103600083015261126f81611233565b9050919050565b7f5265717569726564204e46542061646472657373206973206e6f74206120636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006112d2602683610e46565b91506112dd82611276565b604082019050919050565b60006020820190508181036000830152611301816112c5565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61133d81611308565b82525050565b60006020820190506113586000830184611334565b92915050565b60008151905061136d81610f5b565b92915050565b60006020828403121561138957611388610ba7565b5b60006113978482850161135e565b91505092915050565b7f5265717569726564204e46542041646472657373206973206e6f7420616e204560008201527f524337323120636f6e7472616374000000000000000000000000000000000000602082015250565b60006113fc602e83610e46565b9150611407826113a0565b604082019050919050565b6000602082019050818103600083015261142b816113ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061147957607f821691505b60208210810361148c5761148b611432565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026114f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114b7565b6114fe86836114b7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061153b61153661153184610cf7565b611516565b610cf7565b9050919050565b6000819050919050565b61155583611520565b61156961156182611542565b8484546114c4565b825550505050565b600090565b61157e611571565b61158981848461154c565b505050565b5b818110156115ad576115a2600082611576565b60018101905061158f565b5050565b601f8211156115f2576115c381611492565b6115cc846114a7565b810160208510156115db578190505b6115ef6115e7856114a7565b83018261158e565b50505b505050565b600082821c905092915050565b6000611615600019846008026115f7565b1980831691505092915050565b600061162e8383611604565b9150826002028217905092915050565b61164782610e3b565b67ffffffffffffffff8111156116605761165f610bcc565b5b61166a8254611461565b6116758282856115b1565b600060209050601f8311600181146116a85760008415611696578287015190505b6116a08582611622565b865550611708565b601f1984166116b686611492565b60005b828110156116de578489015182556001820191506020850194506020810190506116b9565b868310156116fb57848901516116f7601f891682611604565b8355505b6001600288020188555050505b505050505050565b600060a0820190506117256000830188610eba565b81810360208301526117378187610e81565b90506117466040830186610eba565b6117536060830185610ec9565b6117606080830184610eba565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117a482610cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117d6576117d561176a565b5b600182019050919050565b7f4576656e74206973206e6f74206163746976652e000000000000000000000000600082015250565b6000611817601483610e46565b9150611822826117e1565b602082019050919050565b600060208201905081810360008301526118468161180a565b9050919050565b7f4576656e7420726567697374726174696f6e2068617320636c6f7365642e0000600082015250565b6000611883601e83610e46565b915061188e8261184d565b602082019050919050565b600060208201905081810360008301526118b281611876565b9050919050565b7f4576656e742069732066756c6c7920626f6f6b65642e00000000000000000000600082015250565b60006118ef601683610e46565b91506118fa826118b9565b602082019050919050565b6000602082019050818103600083015261191e816118e2565b9050919050565b7f596f752061726520616c7265616479207265676973746572656420666f72207460008201527f686973206576656e742e00000000000000000000000000000000000000000000602082015250565b6000611981602a83610e46565b915061198c82611925565b604082019050919050565b600060208201905081810360008301526119b081611974565b9050919050565b6000815190506119c681610d01565b92915050565b6000602082840312156119e2576119e1610ba7565b5b60006119f0848285016119b7565b91505092915050565b7f596f7520646f206e6f74206f776e20746865207265717569726564204e46542e600082015250565b6000611a2f602083610e46565b9150611a3a826119f9565b602082019050919050565b60006020820190508181036000830152611a5e81611a22565b9050919050565b6000604082019050611a7a6000830185610eba565b611a876020830184610ec9565b9392505050565b6000604082019050611aa36000830185610eba565b611ab06020830184610ee4565b939250505056fea2646970667358221220b81122f3d7fa77d393f93b387b6461c781010b6213edb81c2d5b17c3c36778a064736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x1AED DUP1 PUSH2 0x61 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 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57F69799 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x57F69799 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0xE01A0EBE EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0xEC38D5A0 EQ PUSH2 0x182 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x18C9724 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0xB791430 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x406DB843 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x54484FB0 EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0x1B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x5E1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x114 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10F SWAP2 SWAP1 PUSH2 0xF87 JUMP JUMPDEST PUSH2 0x8F9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xFC7 JUMP JUMPDEST PUSH2 0x9FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14E PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15B SWAP2 SWAP1 PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16C PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x103D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1058 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x247 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23E SWAP1 PUSH2 0x1132 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP4 GT PUSH2 0x289 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x280 SWAP1 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2CC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C3 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT PUSH2 0x31B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x312 SWAP1 PUSH2 0x12E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x374 SWAP2 SWAP1 PUSH2 0x1343 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x391 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 0x3B5 SWAP2 SWAP1 PUSH2 0x1373 JUMP JUMPDEST PUSH2 0x3F4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3EB SWAP1 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP6 DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0x163E JUMP JUMPDEST POP DUP5 DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP4 DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP2 PUSH1 0x2 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x88F91A8CEE50507BF8F67DDF436D225A426A493C10F4A94DB0AD16D480DE7DD7 PUSH1 0x0 SLOAD DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4C9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1710 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x4E3 SWAP1 PUSH2 0x1799 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x513 SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x53F SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x58C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x561 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x58C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x56F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x649 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x640 SWAP1 PUSH2 0x182D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD TIMESTAMP LT PUSH2 0x68F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x686 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 ADD SLOAD DUP2 PUSH1 0x4 ADD SLOAD LT PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6D0 SWAP1 PUSH2 0x1905 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 ADD 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 ISZERO PUSH2 0x768 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75F SWAP1 PUSH2 0x1997 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7E4 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 0x808 SWAP2 SWAP1 PUSH2 0x19CC JUMP JUMPDEST GT PUSH2 0x848 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83F SWAP1 PUSH2 0x1A45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x5 ADD 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x4 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x8B7 SWAP1 PUSH2 0x1799 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH32 0xB442EFE467D2EF30E62927A3CAE0AFCBC799A8A0944D8A143332E4E5E51CEE5D DUP3 CALLER PUSH1 0x40 MLOAD PUSH2 0x8ED SWAP3 SWAP2 SWAP1 PUSH2 0x1A65 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x989 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP1 PUSH2 0x1132 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xA84E22267CA5F39C3DC082A44444F3F681B9F38A5287A019487A246F28A04B09 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9ED SWAP3 SWAP2 SWAP1 PUSH2 0x1A8E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD 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 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x0 ADD DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x3 ADD SLOAD DUP5 PUSH1 0x4 ADD SLOAD DUP6 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP6 DUP1 SLOAD PUSH2 0xB07 SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB33 SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB80 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB55 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB80 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB63 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP6 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP POP SWAP2 SWAP4 SWAP6 POP SWAP2 SWAP4 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT 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 0xC04 DUP3 PUSH2 0xBBB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xC23 JUMPI PUSH2 0xC22 PUSH2 0xBCC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC36 PUSH2 0xB9D JUMP JUMPDEST SWAP1 POP PUSH2 0xC42 DUP3 DUP3 PUSH2 0xBFB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC62 JUMPI PUSH2 0xC61 PUSH2 0xBCC JUMP JUMPDEST JUMPDEST PUSH2 0xC6B DUP3 PUSH2 0xBBB 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 0xC9A PUSH2 0xC95 DUP5 PUSH2 0xC47 JUMP JUMPDEST PUSH2 0xC2C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xCB6 JUMPI PUSH2 0xCB5 PUSH2 0xBB6 JUMP JUMPDEST JUMPDEST PUSH2 0xCC1 DUP5 DUP3 DUP6 PUSH2 0xC78 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCDE JUMPI PUSH2 0xCDD PUSH2 0xBB1 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCEE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xC87 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD0A DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP2 EQ PUSH2 0xD15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD27 DUP2 PUSH2 0xD01 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD58 DUP3 PUSH2 0xD2D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD68 DUP2 PUSH2 0xD4D JUMP JUMPDEST DUP2 EQ PUSH2 0xD73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD85 DUP2 PUSH2 0xD5F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xDA5 JUMPI PUSH2 0xDA4 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC3 JUMPI PUSH2 0xDC2 PUSH2 0xBAC JUMP JUMPDEST JUMPDEST PUSH2 0xDCF DUP8 DUP3 DUP9 ADD PUSH2 0xCC9 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0xDE0 DUP8 DUP3 DUP9 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0xDF1 DUP8 DUP3 DUP9 ADD PUSH2 0xD76 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0xE02 DUP8 DUP3 DUP9 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE24 JUMPI PUSH2 0xE23 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE32 DUP5 DUP3 DUP6 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP2 POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE75 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xE5A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE8C DUP3 PUSH2 0xE3B JUMP JUMPDEST PUSH2 0xE96 DUP2 DUP6 PUSH2 0xE46 JUMP JUMPDEST SWAP4 POP PUSH2 0xEA6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE57 JUMP JUMPDEST PUSH2 0xEAF DUP2 PUSH2 0xBBB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEC3 DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xED2 DUP2 PUSH2 0xD4D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEED DUP2 PUSH2 0xED8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF0D DUP2 DUP10 PUSH2 0xE81 JUMP JUMPDEST SWAP1 POP PUSH2 0xF1C PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0xF29 PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0xEC9 JUMP JUMPDEST PUSH2 0xF36 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xEE4 JUMP JUMPDEST PUSH2 0xF43 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0xF50 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF64 DUP2 PUSH2 0xED8 JUMP JUMPDEST DUP2 EQ PUSH2 0xF6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF81 DUP2 PUSH2 0xF5B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF9E JUMPI PUSH2 0xF9D PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFAC DUP6 DUP3 DUP7 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFBD DUP6 DUP3 DUP7 ADD PUSH2 0xF72 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFDE JUMPI PUSH2 0xFDD PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFEC DUP6 DUP3 DUP7 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFFD DUP6 DUP3 DUP7 ADD PUSH2 0xD76 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x101C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1037 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1052 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1072 DUP2 DUP10 PUSH2 0xE81 JUMP JUMPDEST SWAP1 POP PUSH2 0x1081 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x108E PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0xEC9 JUMP JUMPDEST PUSH2 0x109B PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x10A8 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x10B5 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0xEE4 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4F6E6C792074686520636F6E7472616374206F776E65722063616E2063616C6C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20746869732066756E6374696F6E2E0000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x111C PUSH1 0x2F DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1127 DUP3 PUSH2 0x10C0 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 0x114B DUP2 PUSH2 0x110F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E742064617465206D75737420626520696E2074686520667574757265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x2E00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AE PUSH1 0x21 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B9 DUP3 PUSH2 0x1152 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 0x11DD DUP2 PUSH2 0x11A1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6178206361706163697479206D757374206265206772656174657220746861 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E207A65726F2E00000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1240 PUSH1 0x27 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x124B DUP3 PUSH2 0x11E4 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 0x126F DUP2 PUSH2 0x1233 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5265717569726564204E46542061646472657373206973206E6F74206120636F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12D2 PUSH1 0x26 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x12DD DUP3 PUSH2 0x1276 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 0x1301 DUP2 PUSH2 0x12C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x133D DUP2 PUSH2 0x1308 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1358 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1334 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x136D DUP2 PUSH2 0xF5B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1389 JUMPI PUSH2 0x1388 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1397 DUP5 DUP3 DUP6 ADD PUSH2 0x135E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5265717569726564204E46542041646472657373206973206E6F7420616E2045 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x524337323120636F6E7472616374000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13FC PUSH1 0x2E DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1407 DUP3 PUSH2 0x13A0 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 0x142B DUP2 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1479 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x148C JUMPI PUSH2 0x148B PUSH2 0x1432 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x14F4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x14B7 JUMP JUMPDEST PUSH2 0x14FE DUP7 DUP4 PUSH2 0x14B7 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x153B PUSH2 0x1536 PUSH2 0x1531 DUP5 PUSH2 0xCF7 JUMP JUMPDEST PUSH2 0x1516 JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1555 DUP4 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0x1569 PUSH2 0x1561 DUP3 PUSH2 0x1542 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x14C4 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x157E PUSH2 0x1571 JUMP JUMPDEST PUSH2 0x1589 DUP2 DUP5 DUP5 PUSH2 0x154C JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x15AD JUMPI PUSH2 0x15A2 PUSH1 0x0 DUP3 PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x158F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x15F2 JUMPI PUSH2 0x15C3 DUP2 PUSH2 0x1492 JUMP JUMPDEST PUSH2 0x15CC DUP5 PUSH2 0x14A7 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x15DB JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x15EF PUSH2 0x15E7 DUP6 PUSH2 0x14A7 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x158E JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1615 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x15F7 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x162E DUP4 DUP4 PUSH2 0x1604 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1647 DUP3 PUSH2 0xE3B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1660 JUMPI PUSH2 0x165F PUSH2 0xBCC JUMP JUMPDEST JUMPDEST PUSH2 0x166A DUP3 SLOAD PUSH2 0x1461 JUMP JUMPDEST PUSH2 0x1675 DUP3 DUP3 DUP6 PUSH2 0x15B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1696 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x16A0 DUP6 DUP3 PUSH2 0x1622 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x16B6 DUP7 PUSH2 0x1492 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x16DE JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x16B9 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x16FB JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x16F7 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1604 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1725 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0xEBA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1737 DUP2 DUP8 PUSH2 0xE81 JUMP JUMPDEST SWAP1 POP PUSH2 0x1746 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x1753 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xEC9 JUMP JUMPDEST PUSH2 0x1760 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP7 SWAP6 POP POP 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 0x17A4 DUP3 PUSH2 0xCF7 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x17D6 JUMPI PUSH2 0x17D5 PUSH2 0x176A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E74206973206E6F74206163746976652E000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1817 PUSH1 0x14 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1822 DUP3 PUSH2 0x17E1 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 0x1846 DUP2 PUSH2 0x180A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E7420726567697374726174696F6E2068617320636C6F7365642E0000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1883 PUSH1 0x1E DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x188E DUP3 PUSH2 0x184D 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 0x18B2 DUP2 PUSH2 0x1876 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E742069732066756C6C7920626F6F6B65642E00000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18EF PUSH1 0x16 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x18FA DUP3 PUSH2 0x18B9 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 0x191E DUP2 PUSH2 0x18E2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F752061726520616C7265616479207265676973746572656420666F722074 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x686973206576656E742E00000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1981 PUSH1 0x2A DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x198C DUP3 PUSH2 0x1925 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 0x19B0 DUP2 PUSH2 0x1974 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x19C6 DUP2 PUSH2 0xD01 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19F0 DUP5 DUP3 DUP6 ADD PUSH2 0x19B7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F7520646F206E6F74206F776E20746865207265717569726564204E46542E PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2F PUSH1 0x20 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A3A DUP3 PUSH2 0x19F9 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 0x1A5E DUP2 PUSH2 0x1A22 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A7A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x1A87 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xEC9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1AA3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x1AB0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xEE4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 GT 0x22 RETURN 0xD7 STATICCALL PUSH24 0xD393F93B387B6461C781010B6213EDB81C2D5B17C3C36778 LOG0 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "165:4810:19:-:0;;;1354:93;;;;;;;;;;1387:10;1379:5;;:18;;;;;;;;;;;;;;;;;;165:4810;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@createEvent_3888": { + "entryPoint": 439, + "id": 3888, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@eventIdCounter_3735": { + "entryPoint": 2699, + "id": 3735, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@events_3740": { + "entryPoint": 1264, + "id": 3740, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@getEventDetails_4008": { + "entryPoint": 2705, + "id": 4008, + "parameterSlots": 1, + "returnSlots": 6 + }, + "@isUserRegistered_4053": { + "entryPoint": 2554, + "id": 4053, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@owner_3742": { + "entryPoint": 2661, + "id": 3742, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@registerForEvent_3969": { + "entryPoint": 1505, + "id": 3969, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@updateEventStatus_4036": { + "entryPoint": 2297, + "id": 4036, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 3207, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3446, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 3954, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool_fromMemory": { + "entryPoint": 4958, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 3273, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 3352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 6583, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 4979, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptrt_uint256t_addresst_uint256": { + "entryPoint": 3467, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 3598, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 6604, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_address": { + "entryPoint": 4039, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_bool": { + "entryPoint": 3975, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 3785, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3812, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes4_to_t_bytes4_fromStack": { + "entryPoint": 4916, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 3713, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6262, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4513, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6690, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4805, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5103, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6370, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6516, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4659, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6154, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4367, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 3770, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 4130, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 4103, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": { + "entryPoint": 4931, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_bool_t_uint256_t_uint256__to_t_string_memory_ptr_t_uint256_t_address_t_bool_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 3827, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_uint256_t_uint256_t_bool__to_t_string_memory_ptr_t_uint256_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed": { + "entryPoint": 4184, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6297, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4548, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6725, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4840, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5138, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6405, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6551, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4694, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6189, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4402, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 4157, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 6757, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed": { + "entryPoint": 6798, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 5904, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 3116, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 2973, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 3143, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 5266, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 3643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 3654, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 5553, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 3405, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3800, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 4872, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 3373, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 3319, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 5518, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 5408, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 5694, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 3192, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 3671, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 5287, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 5217, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 5666, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 3067, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 5398, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 6041, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 5636, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 5994, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 5170, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 3020, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 5442, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 2993, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 2998, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 2988, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2983, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3003, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 5303, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 5623, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 5494, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a": { + "entryPoint": 6221, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4": { + "entryPoint": 4434, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2": { + "entryPoint": 6649, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0": { + "entryPoint": 4726, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf": { + "entryPoint": 5024, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b": { + "entryPoint": 6329, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62": { + "entryPoint": 6437, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c": { + "entryPoint": 4580, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305": { + "entryPoint": 6113, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761": { + "entryPoint": 4288, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 5316, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 5452, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3423, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 3931, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 3329, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 5489, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:27984:23", + "nodeType": "YulBlock", + "src": "0:27984:23", + "statements": [ + { + "body": { + "nativeSrc": "47:35:23", + "nodeType": "YulBlock", + "src": "47:35:23", + "statements": [ + { + "nativeSrc": "57:19:23", + "nodeType": "YulAssignment", + "src": "57:19:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:23", + "nodeType": "YulLiteral", + "src": "73:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:23", + "nodeType": "YulIdentifier", + "src": "67:5:23" + }, + "nativeSrc": "67:9:23", + "nodeType": "YulFunctionCall", + "src": "67:9:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:23", + "nodeType": "YulIdentifier", + "src": "57:6:23" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:23", + "nodeType": "YulTypedName", + "src": "40:6:23", + "type": "" + } + ], + "src": "7:75:23" + }, + { + "body": { + "nativeSrc": "177:28:23", + "nodeType": "YulBlock", + "src": "177:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:23", + "nodeType": "YulLiteral", + "src": "194:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:23", + "nodeType": "YulLiteral", + "src": "197:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:23", + "nodeType": "YulIdentifier", + "src": "187:6:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulFunctionCall", + "src": "187:12:23" + }, + "nativeSrc": "187:12:23", + "nodeType": "YulExpressionStatement", + "src": "187:12:23" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:23", + "nodeType": "YulFunctionDefinition", + "src": "88:117:23" + }, + { + "body": { + "nativeSrc": "300:28:23", + "nodeType": "YulBlock", + "src": "300:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:23", + "nodeType": "YulLiteral", + "src": "317:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:23", + "nodeType": "YulLiteral", + "src": "320:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:23", + "nodeType": "YulIdentifier", + "src": "310:6:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulFunctionCall", + "src": "310:12:23" + }, + "nativeSrc": "310:12:23", + "nodeType": "YulExpressionStatement", + "src": "310:12:23" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:23", + "nodeType": "YulFunctionDefinition", + "src": "211:117:23" + }, + { + "body": { + "nativeSrc": "423:28:23", + "nodeType": "YulBlock", + "src": "423:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:23", + "nodeType": "YulLiteral", + "src": "440:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:23", + "nodeType": "YulLiteral", + "src": "443:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:23", + "nodeType": "YulIdentifier", + "src": "433:6:23" + }, + "nativeSrc": "433:12:23", + "nodeType": "YulFunctionCall", + "src": "433:12:23" + }, + "nativeSrc": "433:12:23", + "nodeType": "YulExpressionStatement", + "src": "433:12:23" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:23", + "nodeType": "YulFunctionDefinition", + "src": "334:117:23" + }, + { + "body": { + "nativeSrc": "546:28:23", + "nodeType": "YulBlock", + "src": "546:28:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:23", + "nodeType": "YulLiteral", + "src": "563:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:23", + "nodeType": "YulLiteral", + "src": "566:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:23", + "nodeType": "YulIdentifier", + "src": "556:6:23" + }, + "nativeSrc": "556:12:23", + "nodeType": "YulFunctionCall", + "src": "556:12:23" + }, + "nativeSrc": "556:12:23", + "nodeType": "YulExpressionStatement", + "src": "556:12:23" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:23", + "nodeType": "YulFunctionDefinition", + "src": "457:117:23" + }, + { + "body": { + "nativeSrc": "628:54:23", + "nodeType": "YulBlock", + "src": "628:54:23", + "statements": [ + { + "nativeSrc": "638:38:23", + "nodeType": "YulAssignment", + "src": "638:38:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:23", + "nodeType": "YulIdentifier", + "src": "656:5:23" + }, + { + "kind": "number", + "nativeSrc": "663:2:23", + "nodeType": "YulLiteral", + "src": "663:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:23", + "nodeType": "YulIdentifier", + "src": "652:3:23" + }, + "nativeSrc": "652:14:23", + "nodeType": "YulFunctionCall", + "src": "652:14:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:23", + "nodeType": "YulLiteral", + "src": "672:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:23", + "nodeType": "YulIdentifier", + "src": "668:3:23" + }, + "nativeSrc": "668:7:23", + "nodeType": "YulFunctionCall", + "src": "668:7:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:23", + "nodeType": "YulIdentifier", + "src": "648:3:23" + }, + "nativeSrc": "648:28:23", + "nodeType": "YulFunctionCall", + "src": "648:28:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:23", + "nodeType": "YulIdentifier", + "src": "638:6:23" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:23", + "nodeType": "YulTypedName", + "src": "611:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:23", + "nodeType": "YulTypedName", + "src": "621:6:23", + "type": "" + } + ], + "src": "580:102:23" + }, + { + "body": { + "nativeSrc": "716:152:23", + "nodeType": "YulBlock", + "src": "716:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "733:1:23", + "nodeType": "YulLiteral", + "src": "733:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:23", + "nodeType": "YulLiteral", + "src": "736:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:23", + "nodeType": "YulIdentifier", + "src": "726:6:23" + }, + "nativeSrc": "726:88:23", + "nodeType": "YulFunctionCall", + "src": "726:88:23" + }, + "nativeSrc": "726:88:23", + "nodeType": "YulExpressionStatement", + "src": "726:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "830:1:23", + "nodeType": "YulLiteral", + "src": "830:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:23", + "nodeType": "YulLiteral", + "src": "833:4:23", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "823:6:23", + "nodeType": "YulIdentifier", + "src": "823:6:23" + }, + "nativeSrc": "823:15:23", + "nodeType": "YulFunctionCall", + "src": "823:15:23" + }, + "nativeSrc": "823:15:23", + "nodeType": "YulExpressionStatement", + "src": "823:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:23", + "nodeType": "YulLiteral", + "src": "854:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:23", + "nodeType": "YulLiteral", + "src": "857:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:23", + "nodeType": "YulIdentifier", + "src": "847:6:23" + }, + "nativeSrc": "847:15:23", + "nodeType": "YulFunctionCall", + "src": "847:15:23" + }, + "nativeSrc": "847:15:23", + "nodeType": "YulExpressionStatement", + "src": "847:15:23" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:23", + "nodeType": "YulFunctionDefinition", + "src": "688:180:23" + }, + { + "body": { + "nativeSrc": "917:238:23", + "nodeType": "YulBlock", + "src": "917:238:23", + "statements": [ + { + "nativeSrc": "927:58:23", + "nodeType": "YulVariableDeclaration", + "src": "927:58:23", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:23", + "nodeType": "YulIdentifier", + "src": "949:6:23" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:23", + "nodeType": "YulIdentifier", + "src": "979:4:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:23", + "nodeType": "YulIdentifier", + "src": "957:21:23" + }, + "nativeSrc": "957:27:23", + "nodeType": "YulFunctionCall", + "src": "957:27:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:23", + "nodeType": "YulIdentifier", + "src": "945:3:23" + }, + "nativeSrc": "945:40:23", + "nodeType": "YulFunctionCall", + "src": "945:40:23" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "931:10:23", + "nodeType": "YulTypedName", + "src": "931:10:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1096:22:23", + "nodeType": "YulBlock", + "src": "1096:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:23", + "nodeType": "YulIdentifier", + "src": "1098:16:23" + }, + "nativeSrc": "1098:18:23", + "nodeType": "YulFunctionCall", + "src": "1098:18:23" + }, + "nativeSrc": "1098:18:23", + "nodeType": "YulExpressionStatement", + "src": "1098:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1039:10:23", + "nodeType": "YulIdentifier", + "src": "1039:10:23" + }, + { + "kind": "number", + "nativeSrc": "1051:18:23", + "nodeType": "YulLiteral", + "src": "1051:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:23", + "nodeType": "YulIdentifier", + "src": "1036:2:23" + }, + "nativeSrc": "1036:34:23", + "nodeType": "YulFunctionCall", + "src": "1036:34:23" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:23", + "nodeType": "YulIdentifier", + "src": "1075:10:23" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:23", + "nodeType": "YulIdentifier", + "src": "1087:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:23", + "nodeType": "YulIdentifier", + "src": "1072:2:23" + }, + "nativeSrc": "1072:22:23", + "nodeType": "YulFunctionCall", + "src": "1072:22:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:23", + "nodeType": "YulIdentifier", + "src": "1033:2:23" + }, + "nativeSrc": "1033:62:23", + "nodeType": "YulFunctionCall", + "src": "1033:62:23" + }, + "nativeSrc": "1030:88:23", + "nodeType": "YulIf", + "src": "1030:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:23", + "nodeType": "YulLiteral", + "src": "1134:2:23", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:23", + "nodeType": "YulIdentifier", + "src": "1138:10:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:23", + "nodeType": "YulIdentifier", + "src": "1127:6:23" + }, + "nativeSrc": "1127:22:23", + "nodeType": "YulFunctionCall", + "src": "1127:22:23" + }, + "nativeSrc": "1127:22:23", + "nodeType": "YulExpressionStatement", + "src": "1127:22:23" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "874:281:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "903:6:23", + "nodeType": "YulTypedName", + "src": "903:6:23", + "type": "" + }, + { + "name": "size", + "nativeSrc": "911:4:23", + "nodeType": "YulTypedName", + "src": "911:4:23", + "type": "" + } + ], + "src": "874:281:23" + }, + { + "body": { + "nativeSrc": "1202:88:23", + "nodeType": "YulBlock", + "src": "1202:88:23", + "statements": [ + { + "nativeSrc": "1212:30:23", + "nodeType": "YulAssignment", + "src": "1212:30:23", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:23", + "nodeType": "YulIdentifier", + "src": "1222:18:23" + }, + "nativeSrc": "1222:20:23", + "nodeType": "YulFunctionCall", + "src": "1222:20:23" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1212:6:23", + "nodeType": "YulIdentifier", + "src": "1212:6:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1271:6:23", + "nodeType": "YulIdentifier", + "src": "1271:6:23" + }, + { + "name": "size", + "nativeSrc": "1279:4:23", + "nodeType": "YulIdentifier", + "src": "1279:4:23" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1251:19:23", + "nodeType": "YulIdentifier", + "src": "1251:19:23" + }, + "nativeSrc": "1251:33:23", + "nodeType": "YulFunctionCall", + "src": "1251:33:23" + }, + "nativeSrc": "1251:33:23", + "nodeType": "YulExpressionStatement", + "src": "1251:33:23" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1161:129:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1186:4:23", + "nodeType": "YulTypedName", + "src": "1186:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1195:6:23", + "nodeType": "YulTypedName", + "src": "1195:6:23", + "type": "" + } + ], + "src": "1161:129:23" + }, + { + "body": { + "nativeSrc": "1363:241:23", + "nodeType": "YulBlock", + "src": "1363:241:23", + "statements": [ + { + "body": { + "nativeSrc": "1468:22:23", + "nodeType": "YulBlock", + "src": "1468:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:23", + "nodeType": "YulIdentifier", + "src": "1470:16:23" + }, + "nativeSrc": "1470:18:23", + "nodeType": "YulFunctionCall", + "src": "1470:18:23" + }, + "nativeSrc": "1470:18:23", + "nodeType": "YulExpressionStatement", + "src": "1470:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:23", + "nodeType": "YulIdentifier", + "src": "1440:6:23" + }, + { + "kind": "number", + "nativeSrc": "1448:18:23", + "nodeType": "YulLiteral", + "src": "1448:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1437:2:23", + "nodeType": "YulIdentifier", + "src": "1437:2:23" + }, + "nativeSrc": "1437:30:23", + "nodeType": "YulFunctionCall", + "src": "1437:30:23" + }, + "nativeSrc": "1434:56:23", + "nodeType": "YulIf", + "src": "1434:56:23" + }, + { + "nativeSrc": "1500:37:23", + "nodeType": "YulAssignment", + "src": "1500:37:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:23", + "nodeType": "YulIdentifier", + "src": "1530:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:23", + "nodeType": "YulIdentifier", + "src": "1508:21:23" + }, + "nativeSrc": "1508:29:23", + "nodeType": "YulFunctionCall", + "src": "1508:29:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1500:4:23", + "nodeType": "YulIdentifier", + "src": "1500:4:23" + } + ] + }, + { + "nativeSrc": "1574:23:23", + "nodeType": "YulAssignment", + "src": "1574:23:23", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1586:4:23", + "nodeType": "YulIdentifier", + "src": "1586:4:23" + }, + { + "kind": "number", + "nativeSrc": "1592:4:23", + "nodeType": "YulLiteral", + "src": "1592:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:23", + "nodeType": "YulIdentifier", + "src": "1582:3:23" + }, + "nativeSrc": "1582:15:23", + "nodeType": "YulFunctionCall", + "src": "1582:15:23" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1574:4:23", + "nodeType": "YulIdentifier", + "src": "1574:4:23" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1347:6:23", + "nodeType": "YulTypedName", + "src": "1347:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1358:4:23", + "nodeType": "YulTypedName", + "src": "1358:4:23", + "type": "" + } + ], + "src": "1296:308:23" + }, + { + "body": { + "nativeSrc": "1674:82:23", + "nodeType": "YulBlock", + "src": "1674:82:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1697:3:23", + "nodeType": "YulIdentifier", + "src": "1697:3:23" + }, + { + "name": "src", + "nativeSrc": "1702:3:23", + "nodeType": "YulIdentifier", + "src": "1702:3:23" + }, + { + "name": "length", + "nativeSrc": "1707:6:23", + "nodeType": "YulIdentifier", + "src": "1707:6:23" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "1684:12:23", + "nodeType": "YulIdentifier", + "src": "1684:12:23" + }, + "nativeSrc": "1684:30:23", + "nodeType": "YulFunctionCall", + "src": "1684:30:23" + }, + "nativeSrc": "1684:30:23", + "nodeType": "YulExpressionStatement", + "src": "1684:30:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1734:3:23", + "nodeType": "YulIdentifier", + "src": "1734:3:23" + }, + { + "name": "length", + "nativeSrc": "1739:6:23", + "nodeType": "YulIdentifier", + "src": "1739:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1730:3:23", + "nodeType": "YulIdentifier", + "src": "1730:3:23" + }, + "nativeSrc": "1730:16:23", + "nodeType": "YulFunctionCall", + "src": "1730:16:23" + }, + { + "kind": "number", + "nativeSrc": "1748:1:23", + "nodeType": "YulLiteral", + "src": "1748:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1723:6:23", + "nodeType": "YulIdentifier", + "src": "1723:6:23" + }, + "nativeSrc": "1723:27:23", + "nodeType": "YulFunctionCall", + "src": "1723:27:23" + }, + "nativeSrc": "1723:27:23", + "nodeType": "YulExpressionStatement", + "src": "1723:27:23" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "1610:146:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1656:3:23", + "nodeType": "YulTypedName", + "src": "1656:3:23", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1661:3:23", + "nodeType": "YulTypedName", + "src": "1661:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1666:6:23", + "nodeType": "YulTypedName", + "src": "1666:6:23", + "type": "" + } + ], + "src": "1610:146:23" + }, + { + "body": { + "nativeSrc": "1846:341:23", + "nodeType": "YulBlock", + "src": "1846:341:23", + "statements": [ + { + "nativeSrc": "1856:75:23", + "nodeType": "YulAssignment", + "src": "1856:75:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "1923:6:23", + "nodeType": "YulIdentifier", + "src": "1923:6:23" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1881:41:23", + "nodeType": "YulIdentifier", + "src": "1881:41:23" + }, + "nativeSrc": "1881:49:23", + "nodeType": "YulFunctionCall", + "src": "1881:49:23" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "1865:15:23", + "nodeType": "YulIdentifier", + "src": "1865:15:23" + }, + "nativeSrc": "1865:66:23", + "nodeType": "YulFunctionCall", + "src": "1865:66:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "1856:5:23", + "nodeType": "YulIdentifier", + "src": "1856:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "1947:5:23", + "nodeType": "YulIdentifier", + "src": "1947:5:23" + }, + { + "name": "length", + "nativeSrc": "1954:6:23", + "nodeType": "YulIdentifier", + "src": "1954:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1940:6:23", + "nodeType": "YulIdentifier", + "src": "1940:6:23" + }, + "nativeSrc": "1940:21:23", + "nodeType": "YulFunctionCall", + "src": "1940:21:23" + }, + "nativeSrc": "1940:21:23", + "nodeType": "YulExpressionStatement", + "src": "1940:21:23" + }, + { + "nativeSrc": "1970:27:23", + "nodeType": "YulVariableDeclaration", + "src": "1970:27:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "1985:5:23", + "nodeType": "YulIdentifier", + "src": "1985:5:23" + }, + { + "kind": "number", + "nativeSrc": "1992:4:23", + "nodeType": "YulLiteral", + "src": "1992:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1981:3:23", + "nodeType": "YulIdentifier", + "src": "1981:3:23" + }, + "nativeSrc": "1981:16:23", + "nodeType": "YulFunctionCall", + "src": "1981:16:23" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "1974:3:23", + "nodeType": "YulTypedName", + "src": "1974:3:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2035:83:23", + "nodeType": "YulBlock", + "src": "2035:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2037:77:23", + "nodeType": "YulIdentifier", + "src": "2037:77:23" + }, + "nativeSrc": "2037:79:23", + "nodeType": "YulFunctionCall", + "src": "2037:79:23" + }, + "nativeSrc": "2037:79:23", + "nodeType": "YulExpressionStatement", + "src": "2037:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2016:3:23", + "nodeType": "YulIdentifier", + "src": "2016:3:23" + }, + { + "name": "length", + "nativeSrc": "2021:6:23", + "nodeType": "YulIdentifier", + "src": "2021:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2012:3:23", + "nodeType": "YulIdentifier", + "src": "2012:3:23" + }, + "nativeSrc": "2012:16:23", + "nodeType": "YulFunctionCall", + "src": "2012:16:23" + }, + { + "name": "end", + "nativeSrc": "2030:3:23", + "nodeType": "YulIdentifier", + "src": "2030:3:23" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2009:2:23", + "nodeType": "YulIdentifier", + "src": "2009:2:23" + }, + "nativeSrc": "2009:25:23", + "nodeType": "YulFunctionCall", + "src": "2009:25:23" + }, + "nativeSrc": "2006:112:23", + "nodeType": "YulIf", + "src": "2006:112:23" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2164:3:23", + "nodeType": "YulIdentifier", + "src": "2164:3:23" + }, + { + "name": "dst", + "nativeSrc": "2169:3:23", + "nodeType": "YulIdentifier", + "src": "2169:3:23" + }, + { + "name": "length", + "nativeSrc": "2174:6:23", + "nodeType": "YulIdentifier", + "src": "2174:6:23" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "2127:36:23", + "nodeType": "YulIdentifier", + "src": "2127:36:23" + }, + "nativeSrc": "2127:54:23", + "nodeType": "YulFunctionCall", + "src": "2127:54:23" + }, + "nativeSrc": "2127:54:23", + "nodeType": "YulExpressionStatement", + "src": "2127:54:23" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "1762:425:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1819:3:23", + "nodeType": "YulTypedName", + "src": "1819:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1824:6:23", + "nodeType": "YulTypedName", + "src": "1824:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1832:3:23", + "nodeType": "YulTypedName", + "src": "1832:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "1840:5:23", + "nodeType": "YulTypedName", + "src": "1840:5:23", + "type": "" + } + ], + "src": "1762:425:23" + }, + { + "body": { + "nativeSrc": "2269:278:23", + "nodeType": "YulBlock", + "src": "2269:278:23", + "statements": [ + { + "body": { + "nativeSrc": "2318:83:23", + "nodeType": "YulBlock", + "src": "2318:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2320:77:23", + "nodeType": "YulIdentifier", + "src": "2320:77:23" + }, + "nativeSrc": "2320:79:23", + "nodeType": "YulFunctionCall", + "src": "2320:79:23" + }, + "nativeSrc": "2320:79:23", + "nodeType": "YulExpressionStatement", + "src": "2320:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2297:6:23", + "nodeType": "YulIdentifier", + "src": "2297:6:23" + }, + { + "kind": "number", + "nativeSrc": "2305:4:23", + "nodeType": "YulLiteral", + "src": "2305:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2293:3:23", + "nodeType": "YulIdentifier", + "src": "2293:3:23" + }, + "nativeSrc": "2293:17:23", + "nodeType": "YulFunctionCall", + "src": "2293:17:23" + }, + { + "name": "end", + "nativeSrc": "2312:3:23", + "nodeType": "YulIdentifier", + "src": "2312:3:23" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2289:3:23", + "nodeType": "YulIdentifier", + "src": "2289:3:23" + }, + "nativeSrc": "2289:27:23", + "nodeType": "YulFunctionCall", + "src": "2289:27:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2282:6:23", + "nodeType": "YulIdentifier", + "src": "2282:6:23" + }, + "nativeSrc": "2282:35:23", + "nodeType": "YulFunctionCall", + "src": "2282:35:23" + }, + "nativeSrc": "2279:122:23", + "nodeType": "YulIf", + "src": "2279:122:23" + }, + { + "nativeSrc": "2410:34:23", + "nodeType": "YulVariableDeclaration", + "src": "2410:34:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2437:6:23", + "nodeType": "YulIdentifier", + "src": "2437:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2424:12:23", + "nodeType": "YulIdentifier", + "src": "2424:12:23" + }, + "nativeSrc": "2424:20:23", + "nodeType": "YulFunctionCall", + "src": "2424:20:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2414:6:23", + "nodeType": "YulTypedName", + "src": "2414:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "2453:88:23", + "nodeType": "YulAssignment", + "src": "2453:88:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2514:6:23", + "nodeType": "YulIdentifier", + "src": "2514:6:23" + }, + { + "kind": "number", + "nativeSrc": "2522:4:23", + "nodeType": "YulLiteral", + "src": "2522:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2510:3:23", + "nodeType": "YulIdentifier", + "src": "2510:3:23" + }, + "nativeSrc": "2510:17:23", + "nodeType": "YulFunctionCall", + "src": "2510:17:23" + }, + { + "name": "length", + "nativeSrc": "2529:6:23", + "nodeType": "YulIdentifier", + "src": "2529:6:23" + }, + { + "name": "end", + "nativeSrc": "2537:3:23", + "nodeType": "YulIdentifier", + "src": "2537:3:23" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "2462:47:23", + "nodeType": "YulIdentifier", + "src": "2462:47:23" + }, + "nativeSrc": "2462:79:23", + "nodeType": "YulFunctionCall", + "src": "2462:79:23" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2453:5:23", + "nodeType": "YulIdentifier", + "src": "2453:5:23" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "2207:340:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2247:6:23", + "nodeType": "YulTypedName", + "src": "2247:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2255:3:23", + "nodeType": "YulTypedName", + "src": "2255:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2263:5:23", + "nodeType": "YulTypedName", + "src": "2263:5:23", + "type": "" + } + ], + "src": "2207:340:23" + }, + { + "body": { + "nativeSrc": "2598:32:23", + "nodeType": "YulBlock", + "src": "2598:32:23", + "statements": [ + { + "nativeSrc": "2608:16:23", + "nodeType": "YulAssignment", + "src": "2608:16:23", + "value": { + "name": "value", + "nativeSrc": "2619:5:23", + "nodeType": "YulIdentifier", + "src": "2619:5:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2608:7:23", + "nodeType": "YulIdentifier", + "src": "2608:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2553:77:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2580:5:23", + "nodeType": "YulTypedName", + "src": "2580:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2590:7:23", + "nodeType": "YulTypedName", + "src": "2590:7:23", + "type": "" + } + ], + "src": "2553:77:23" + }, + { + "body": { + "nativeSrc": "2679:79:23", + "nodeType": "YulBlock", + "src": "2679:79:23", + "statements": [ + { + "body": { + "nativeSrc": "2736:16:23", + "nodeType": "YulBlock", + "src": "2736:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2745:1:23", + "nodeType": "YulLiteral", + "src": "2745:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2748:1:23", + "nodeType": "YulLiteral", + "src": "2748:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2738:6:23", + "nodeType": "YulIdentifier", + "src": "2738:6:23" + }, + "nativeSrc": "2738:12:23", + "nodeType": "YulFunctionCall", + "src": "2738:12:23" + }, + "nativeSrc": "2738:12:23", + "nodeType": "YulExpressionStatement", + "src": "2738:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2702:5:23", + "nodeType": "YulIdentifier", + "src": "2702:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2727:5:23", + "nodeType": "YulIdentifier", + "src": "2727:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "2709:17:23", + "nodeType": "YulIdentifier", + "src": "2709:17:23" + }, + "nativeSrc": "2709:24:23", + "nodeType": "YulFunctionCall", + "src": "2709:24:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2699:2:23", + "nodeType": "YulIdentifier", + "src": "2699:2:23" + }, + "nativeSrc": "2699:35:23", + "nodeType": "YulFunctionCall", + "src": "2699:35:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2692:6:23", + "nodeType": "YulIdentifier", + "src": "2692:6:23" + }, + "nativeSrc": "2692:43:23", + "nodeType": "YulFunctionCall", + "src": "2692:43:23" + }, + "nativeSrc": "2689:63:23", + "nodeType": "YulIf", + "src": "2689:63:23" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2636:122:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2672:5:23", + "nodeType": "YulTypedName", + "src": "2672:5:23", + "type": "" + } + ], + "src": "2636:122:23" + }, + { + "body": { + "nativeSrc": "2816:87:23", + "nodeType": "YulBlock", + "src": "2816:87:23", + "statements": [ + { + "nativeSrc": "2826:29:23", + "nodeType": "YulAssignment", + "src": "2826:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2848:6:23", + "nodeType": "YulIdentifier", + "src": "2848:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2835:12:23", + "nodeType": "YulIdentifier", + "src": "2835:12:23" + }, + "nativeSrc": "2835:20:23", + "nodeType": "YulFunctionCall", + "src": "2835:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2826:5:23", + "nodeType": "YulIdentifier", + "src": "2826:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2891:5:23", + "nodeType": "YulIdentifier", + "src": "2891:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "2864:26:23", + "nodeType": "YulIdentifier", + "src": "2864:26:23" + }, + "nativeSrc": "2864:33:23", + "nodeType": "YulFunctionCall", + "src": "2864:33:23" + }, + "nativeSrc": "2864:33:23", + "nodeType": "YulExpressionStatement", + "src": "2864:33:23" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "2764:139:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2794:6:23", + "nodeType": "YulTypedName", + "src": "2794:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2802:3:23", + "nodeType": "YulTypedName", + "src": "2802:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2810:5:23", + "nodeType": "YulTypedName", + "src": "2810:5:23", + "type": "" + } + ], + "src": "2764:139:23" + }, + { + "body": { + "nativeSrc": "2954:81:23", + "nodeType": "YulBlock", + "src": "2954:81:23", + "statements": [ + { + "nativeSrc": "2964:65:23", + "nodeType": "YulAssignment", + "src": "2964:65:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2979:5:23", + "nodeType": "YulIdentifier", + "src": "2979:5:23" + }, + { + "kind": "number", + "nativeSrc": "2986:42:23", + "nodeType": "YulLiteral", + "src": "2986:42:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2975:3:23", + "nodeType": "YulIdentifier", + "src": "2975:3:23" + }, + "nativeSrc": "2975:54:23", + "nodeType": "YulFunctionCall", + "src": "2975:54:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2964:7:23", + "nodeType": "YulIdentifier", + "src": "2964:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "2909:126:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2936:5:23", + "nodeType": "YulTypedName", + "src": "2936:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2946:7:23", + "nodeType": "YulTypedName", + "src": "2946:7:23", + "type": "" + } + ], + "src": "2909:126:23" + }, + { + "body": { + "nativeSrc": "3086:51:23", + "nodeType": "YulBlock", + "src": "3086:51:23", + "statements": [ + { + "nativeSrc": "3096:35:23", + "nodeType": "YulAssignment", + "src": "3096:35:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3125:5:23", + "nodeType": "YulIdentifier", + "src": "3125:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3107:17:23", + "nodeType": "YulIdentifier", + "src": "3107:17:23" + }, + "nativeSrc": "3107:24:23", + "nodeType": "YulFunctionCall", + "src": "3107:24:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3096:7:23", + "nodeType": "YulIdentifier", + "src": "3096:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3041:96:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3068:5:23", + "nodeType": "YulTypedName", + "src": "3068:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3078:7:23", + "nodeType": "YulTypedName", + "src": "3078:7:23", + "type": "" + } + ], + "src": "3041:96:23" + }, + { + "body": { + "nativeSrc": "3186:79:23", + "nodeType": "YulBlock", + "src": "3186:79:23", + "statements": [ + { + "body": { + "nativeSrc": "3243:16:23", + "nodeType": "YulBlock", + "src": "3243:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3252:1:23", + "nodeType": "YulLiteral", + "src": "3252:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3255:1:23", + "nodeType": "YulLiteral", + "src": "3255:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3245:6:23", + "nodeType": "YulIdentifier", + "src": "3245:6:23" + }, + "nativeSrc": "3245:12:23", + "nodeType": "YulFunctionCall", + "src": "3245:12:23" + }, + "nativeSrc": "3245:12:23", + "nodeType": "YulExpressionStatement", + "src": "3245:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3209:5:23", + "nodeType": "YulIdentifier", + "src": "3209:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3234:5:23", + "nodeType": "YulIdentifier", + "src": "3234:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3216:17:23", + "nodeType": "YulIdentifier", + "src": "3216:17:23" + }, + "nativeSrc": "3216:24:23", + "nodeType": "YulFunctionCall", + "src": "3216:24:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3206:2:23", + "nodeType": "YulIdentifier", + "src": "3206:2:23" + }, + "nativeSrc": "3206:35:23", + "nodeType": "YulFunctionCall", + "src": "3206:35:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3199:6:23", + "nodeType": "YulIdentifier", + "src": "3199:6:23" + }, + "nativeSrc": "3199:43:23", + "nodeType": "YulFunctionCall", + "src": "3199:43:23" + }, + "nativeSrc": "3196:63:23", + "nodeType": "YulIf", + "src": "3196:63:23" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "3143:122:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3179:5:23", + "nodeType": "YulTypedName", + "src": "3179:5:23", + "type": "" + } + ], + "src": "3143:122:23" + }, + { + "body": { + "nativeSrc": "3323:87:23", + "nodeType": "YulBlock", + "src": "3323:87:23", + "statements": [ + { + "nativeSrc": "3333:29:23", + "nodeType": "YulAssignment", + "src": "3333:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3355:6:23", + "nodeType": "YulIdentifier", + "src": "3355:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3342:12:23", + "nodeType": "YulIdentifier", + "src": "3342:12:23" + }, + "nativeSrc": "3342:20:23", + "nodeType": "YulFunctionCall", + "src": "3342:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3333:5:23", + "nodeType": "YulIdentifier", + "src": "3333:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3398:5:23", + "nodeType": "YulIdentifier", + "src": "3398:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "3371:26:23", + "nodeType": "YulIdentifier", + "src": "3371:26:23" + }, + "nativeSrc": "3371:33:23", + "nodeType": "YulFunctionCall", + "src": "3371:33:23" + }, + "nativeSrc": "3371:33:23", + "nodeType": "YulExpressionStatement", + "src": "3371:33:23" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "3271:139:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3301:6:23", + "nodeType": "YulTypedName", + "src": "3301:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3309:3:23", + "nodeType": "YulTypedName", + "src": "3309:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3317:5:23", + "nodeType": "YulTypedName", + "src": "3317:5:23", + "type": "" + } + ], + "src": "3271:139:23" + }, + { + "body": { + "nativeSrc": "3543:818:23", + "nodeType": "YulBlock", + "src": "3543:818:23", + "statements": [ + { + "body": { + "nativeSrc": "3590:83:23", + "nodeType": "YulBlock", + "src": "3590:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3592:77:23", + "nodeType": "YulIdentifier", + "src": "3592:77:23" + }, + "nativeSrc": "3592:79:23", + "nodeType": "YulFunctionCall", + "src": "3592:79:23" + }, + "nativeSrc": "3592:79:23", + "nodeType": "YulExpressionStatement", + "src": "3592:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3564:7:23", + "nodeType": "YulIdentifier", + "src": "3564:7:23" + }, + { + "name": "headStart", + "nativeSrc": "3573:9:23", + "nodeType": "YulIdentifier", + "src": "3573:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3560:3:23", + "nodeType": "YulIdentifier", + "src": "3560:3:23" + }, + "nativeSrc": "3560:23:23", + "nodeType": "YulFunctionCall", + "src": "3560:23:23" + }, + { + "kind": "number", + "nativeSrc": "3585:3:23", + "nodeType": "YulLiteral", + "src": "3585:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3556:3:23", + "nodeType": "YulIdentifier", + "src": "3556:3:23" + }, + "nativeSrc": "3556:33:23", + "nodeType": "YulFunctionCall", + "src": "3556:33:23" + }, + "nativeSrc": "3553:120:23", + "nodeType": "YulIf", + "src": "3553:120:23" + }, + { + "nativeSrc": "3683:287:23", + "nodeType": "YulBlock", + "src": "3683:287:23", + "statements": [ + { + "nativeSrc": "3698:45:23", + "nodeType": "YulVariableDeclaration", + "src": "3698:45:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3729:9:23", + "nodeType": "YulIdentifier", + "src": "3729:9:23" + }, + { + "kind": "number", + "nativeSrc": "3740:1:23", + "nodeType": "YulLiteral", + "src": "3740:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3725:3:23", + "nodeType": "YulIdentifier", + "src": "3725:3:23" + }, + "nativeSrc": "3725:17:23", + "nodeType": "YulFunctionCall", + "src": "3725:17:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3712:12:23", + "nodeType": "YulIdentifier", + "src": "3712:12:23" + }, + "nativeSrc": "3712:31:23", + "nodeType": "YulFunctionCall", + "src": "3712:31:23" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3702:6:23", + "nodeType": "YulTypedName", + "src": "3702:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3790:83:23", + "nodeType": "YulBlock", + "src": "3790:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3792:77:23", + "nodeType": "YulIdentifier", + "src": "3792:77:23" + }, + "nativeSrc": "3792:79:23", + "nodeType": "YulFunctionCall", + "src": "3792:79:23" + }, + "nativeSrc": "3792:79:23", + "nodeType": "YulExpressionStatement", + "src": "3792:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3762:6:23", + "nodeType": "YulIdentifier", + "src": "3762:6:23" + }, + { + "kind": "number", + "nativeSrc": "3770:18:23", + "nodeType": "YulLiteral", + "src": "3770:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3759:2:23", + "nodeType": "YulIdentifier", + "src": "3759:2:23" + }, + "nativeSrc": "3759:30:23", + "nodeType": "YulFunctionCall", + "src": "3759:30:23" + }, + "nativeSrc": "3756:117:23", + "nodeType": "YulIf", + "src": "3756:117:23" + }, + { + "nativeSrc": "3887:73:23", + "nodeType": "YulAssignment", + "src": "3887:73:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3932:9:23", + "nodeType": "YulIdentifier", + "src": "3932:9:23" + }, + { + "name": "offset", + "nativeSrc": "3943:6:23", + "nodeType": "YulIdentifier", + "src": "3943:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3928:3:23", + "nodeType": "YulIdentifier", + "src": "3928:3:23" + }, + "nativeSrc": "3928:22:23", + "nodeType": "YulFunctionCall", + "src": "3928:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "3952:7:23", + "nodeType": "YulIdentifier", + "src": "3952:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "3897:30:23", + "nodeType": "YulIdentifier", + "src": "3897:30:23" + }, + "nativeSrc": "3897:63:23", + "nodeType": "YulFunctionCall", + "src": "3897:63:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3887:6:23", + "nodeType": "YulIdentifier", + "src": "3887:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "3980:118:23", + "nodeType": "YulBlock", + "src": "3980:118:23", + "statements": [ + { + "nativeSrc": "3995:16:23", + "nodeType": "YulVariableDeclaration", + "src": "3995:16:23", + "value": { + "kind": "number", + "nativeSrc": "4009:2:23", + "nodeType": "YulLiteral", + "src": "4009:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3999:6:23", + "nodeType": "YulTypedName", + "src": "3999:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4025:63:23", + "nodeType": "YulAssignment", + "src": "4025:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4060:9:23", + "nodeType": "YulIdentifier", + "src": "4060:9:23" + }, + { + "name": "offset", + "nativeSrc": "4071:6:23", + "nodeType": "YulIdentifier", + "src": "4071:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4056:3:23", + "nodeType": "YulIdentifier", + "src": "4056:3:23" + }, + "nativeSrc": "4056:22:23", + "nodeType": "YulFunctionCall", + "src": "4056:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4080:7:23", + "nodeType": "YulIdentifier", + "src": "4080:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4035:20:23", + "nodeType": "YulIdentifier", + "src": "4035:20:23" + }, + "nativeSrc": "4035:53:23", + "nodeType": "YulFunctionCall", + "src": "4035:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4025:6:23", + "nodeType": "YulIdentifier", + "src": "4025:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "4108:118:23", + "nodeType": "YulBlock", + "src": "4108:118:23", + "statements": [ + { + "nativeSrc": "4123:16:23", + "nodeType": "YulVariableDeclaration", + "src": "4123:16:23", + "value": { + "kind": "number", + "nativeSrc": "4137:2:23", + "nodeType": "YulLiteral", + "src": "4137:2:23", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4127:6:23", + "nodeType": "YulTypedName", + "src": "4127:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4153:63:23", + "nodeType": "YulAssignment", + "src": "4153:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4188:9:23", + "nodeType": "YulIdentifier", + "src": "4188:9:23" + }, + { + "name": "offset", + "nativeSrc": "4199:6:23", + "nodeType": "YulIdentifier", + "src": "4199:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4184:3:23", + "nodeType": "YulIdentifier", + "src": "4184:3:23" + }, + "nativeSrc": "4184:22:23", + "nodeType": "YulFunctionCall", + "src": "4184:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4208:7:23", + "nodeType": "YulIdentifier", + "src": "4208:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4163:20:23", + "nodeType": "YulIdentifier", + "src": "4163:20:23" + }, + "nativeSrc": "4163:53:23", + "nodeType": "YulFunctionCall", + "src": "4163:53:23" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4153:6:23", + "nodeType": "YulIdentifier", + "src": "4153:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "4236:118:23", + "nodeType": "YulBlock", + "src": "4236:118:23", + "statements": [ + { + "nativeSrc": "4251:16:23", + "nodeType": "YulVariableDeclaration", + "src": "4251:16:23", + "value": { + "kind": "number", + "nativeSrc": "4265:2:23", + "nodeType": "YulLiteral", + "src": "4265:2:23", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4255:6:23", + "nodeType": "YulTypedName", + "src": "4255:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4281:63:23", + "nodeType": "YulAssignment", + "src": "4281:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4316:9:23", + "nodeType": "YulIdentifier", + "src": "4316:9:23" + }, + { + "name": "offset", + "nativeSrc": "4327:6:23", + "nodeType": "YulIdentifier", + "src": "4327:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4312:3:23", + "nodeType": "YulIdentifier", + "src": "4312:3:23" + }, + "nativeSrc": "4312:22:23", + "nodeType": "YulFunctionCall", + "src": "4312:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4336:7:23", + "nodeType": "YulIdentifier", + "src": "4336:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4291:20:23", + "nodeType": "YulIdentifier", + "src": "4291:20:23" + }, + "nativeSrc": "4291:53:23", + "nodeType": "YulFunctionCall", + "src": "4291:53:23" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "4281:6:23", + "nodeType": "YulIdentifier", + "src": "4281:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_uint256t_addresst_uint256", + "nativeSrc": "3416:945:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3489:9:23", + "nodeType": "YulTypedName", + "src": "3489:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3500:7:23", + "nodeType": "YulTypedName", + "src": "3500:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3512:6:23", + "nodeType": "YulTypedName", + "src": "3512:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3520:6:23", + "nodeType": "YulTypedName", + "src": "3520:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3528:6:23", + "nodeType": "YulTypedName", + "src": "3528:6:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "3536:6:23", + "nodeType": "YulTypedName", + "src": "3536:6:23", + "type": "" + } + ], + "src": "3416:945:23" + }, + { + "body": { + "nativeSrc": "4433:263:23", + "nodeType": "YulBlock", + "src": "4433:263:23", + "statements": [ + { + "body": { + "nativeSrc": "4479:83:23", + "nodeType": "YulBlock", + "src": "4479:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4481:77:23", + "nodeType": "YulIdentifier", + "src": "4481:77:23" + }, + "nativeSrc": "4481:79:23", + "nodeType": "YulFunctionCall", + "src": "4481:79:23" + }, + "nativeSrc": "4481:79:23", + "nodeType": "YulExpressionStatement", + "src": "4481:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4454:7:23", + "nodeType": "YulIdentifier", + "src": "4454:7:23" + }, + { + "name": "headStart", + "nativeSrc": "4463:9:23", + "nodeType": "YulIdentifier", + "src": "4463:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4450:3:23", + "nodeType": "YulIdentifier", + "src": "4450:3:23" + }, + "nativeSrc": "4450:23:23", + "nodeType": "YulFunctionCall", + "src": "4450:23:23" + }, + { + "kind": "number", + "nativeSrc": "4475:2:23", + "nodeType": "YulLiteral", + "src": "4475:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4446:3:23", + "nodeType": "YulIdentifier", + "src": "4446:3:23" + }, + "nativeSrc": "4446:32:23", + "nodeType": "YulFunctionCall", + "src": "4446:32:23" + }, + "nativeSrc": "4443:119:23", + "nodeType": "YulIf", + "src": "4443:119:23" + }, + { + "nativeSrc": "4572:117:23", + "nodeType": "YulBlock", + "src": "4572:117:23", + "statements": [ + { + "nativeSrc": "4587:15:23", + "nodeType": "YulVariableDeclaration", + "src": "4587:15:23", + "value": { + "kind": "number", + "nativeSrc": "4601:1:23", + "nodeType": "YulLiteral", + "src": "4601:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4591:6:23", + "nodeType": "YulTypedName", + "src": "4591:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "4616:63:23", + "nodeType": "YulAssignment", + "src": "4616:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4651:9:23", + "nodeType": "YulIdentifier", + "src": "4651:9:23" + }, + { + "name": "offset", + "nativeSrc": "4662:6:23", + "nodeType": "YulIdentifier", + "src": "4662:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4647:3:23", + "nodeType": "YulIdentifier", + "src": "4647:3:23" + }, + "nativeSrc": "4647:22:23", + "nodeType": "YulFunctionCall", + "src": "4647:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "4671:7:23", + "nodeType": "YulIdentifier", + "src": "4671:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4626:20:23", + "nodeType": "YulIdentifier", + "src": "4626:20:23" + }, + "nativeSrc": "4626:53:23", + "nodeType": "YulFunctionCall", + "src": "4626:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4616:6:23", + "nodeType": "YulIdentifier", + "src": "4616:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "4367:329:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4403:9:23", + "nodeType": "YulTypedName", + "src": "4403:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4414:7:23", + "nodeType": "YulTypedName", + "src": "4414:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4426:6:23", + "nodeType": "YulTypedName", + "src": "4426:6:23", + "type": "" + } + ], + "src": "4367:329:23" + }, + { + "body": { + "nativeSrc": "4761:40:23", + "nodeType": "YulBlock", + "src": "4761:40:23", + "statements": [ + { + "nativeSrc": "4772:22:23", + "nodeType": "YulAssignment", + "src": "4772:22:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4788:5:23", + "nodeType": "YulIdentifier", + "src": "4788:5:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4782:5:23", + "nodeType": "YulIdentifier", + "src": "4782:5:23" + }, + "nativeSrc": "4782:12:23", + "nodeType": "YulFunctionCall", + "src": "4782:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "4772:6:23", + "nodeType": "YulIdentifier", + "src": "4772:6:23" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "4702:99:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4744:5:23", + "nodeType": "YulTypedName", + "src": "4744:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "4754:6:23", + "nodeType": "YulTypedName", + "src": "4754:6:23", + "type": "" + } + ], + "src": "4702:99:23" + }, + { + "body": { + "nativeSrc": "4903:73:23", + "nodeType": "YulBlock", + "src": "4903:73:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4920:3:23", + "nodeType": "YulIdentifier", + "src": "4920:3:23" + }, + { + "name": "length", + "nativeSrc": "4925:6:23", + "nodeType": "YulIdentifier", + "src": "4925:6:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4913:6:23", + "nodeType": "YulIdentifier", + "src": "4913:6:23" + }, + "nativeSrc": "4913:19:23", + "nodeType": "YulFunctionCall", + "src": "4913:19:23" + }, + "nativeSrc": "4913:19:23", + "nodeType": "YulExpressionStatement", + "src": "4913:19:23" + }, + { + "nativeSrc": "4941:29:23", + "nodeType": "YulAssignment", + "src": "4941:29:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4960:3:23", + "nodeType": "YulIdentifier", + "src": "4960:3:23" + }, + { + "kind": "number", + "nativeSrc": "4965:4:23", + "nodeType": "YulLiteral", + "src": "4965:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4956:3:23", + "nodeType": "YulIdentifier", + "src": "4956:3:23" + }, + "nativeSrc": "4956:14:23", + "nodeType": "YulFunctionCall", + "src": "4956:14:23" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "4941:11:23", + "nodeType": "YulIdentifier", + "src": "4941:11:23" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4807:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4875:3:23", + "nodeType": "YulTypedName", + "src": "4875:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4880:6:23", + "nodeType": "YulTypedName", + "src": "4880:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "4891:11:23", + "nodeType": "YulTypedName", + "src": "4891:11:23", + "type": "" + } + ], + "src": "4807:169:23" + }, + { + "body": { + "nativeSrc": "5044:184:23", + "nodeType": "YulBlock", + "src": "5044:184:23", + "statements": [ + { + "nativeSrc": "5054:10:23", + "nodeType": "YulVariableDeclaration", + "src": "5054:10:23", + "value": { + "kind": "number", + "nativeSrc": "5063:1:23", + "nodeType": "YulLiteral", + "src": "5063:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "5058:1:23", + "nodeType": "YulTypedName", + "src": "5058:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5123:63:23", + "nodeType": "YulBlock", + "src": "5123:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5148:3:23", + "nodeType": "YulIdentifier", + "src": "5148:3:23" + }, + { + "name": "i", + "nativeSrc": "5153:1:23", + "nodeType": "YulIdentifier", + "src": "5153:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5144:3:23", + "nodeType": "YulIdentifier", + "src": "5144:3:23" + }, + "nativeSrc": "5144:11:23", + "nodeType": "YulFunctionCall", + "src": "5144:11:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5167:3:23", + "nodeType": "YulIdentifier", + "src": "5167:3:23" + }, + { + "name": "i", + "nativeSrc": "5172:1:23", + "nodeType": "YulIdentifier", + "src": "5172:1:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5163:3:23", + "nodeType": "YulIdentifier", + "src": "5163:3:23" + }, + "nativeSrc": "5163:11:23", + "nodeType": "YulFunctionCall", + "src": "5163:11:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5157:5:23", + "nodeType": "YulIdentifier", + "src": "5157:5:23" + }, + "nativeSrc": "5157:18:23", + "nodeType": "YulFunctionCall", + "src": "5157:18:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5137:6:23", + "nodeType": "YulIdentifier", + "src": "5137:6:23" + }, + "nativeSrc": "5137:39:23", + "nodeType": "YulFunctionCall", + "src": "5137:39:23" + }, + "nativeSrc": "5137:39:23", + "nodeType": "YulExpressionStatement", + "src": "5137:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5084:1:23", + "nodeType": "YulIdentifier", + "src": "5084:1:23" + }, + { + "name": "length", + "nativeSrc": "5087:6:23", + "nodeType": "YulIdentifier", + "src": "5087:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5081:2:23", + "nodeType": "YulIdentifier", + "src": "5081:2:23" + }, + "nativeSrc": "5081:13:23", + "nodeType": "YulFunctionCall", + "src": "5081:13:23" + }, + "nativeSrc": "5073:113:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5095:19:23", + "nodeType": "YulBlock", + "src": "5095:19:23", + "statements": [ + { + "nativeSrc": "5097:15:23", + "nodeType": "YulAssignment", + "src": "5097:15:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5106:1:23", + "nodeType": "YulIdentifier", + "src": "5106:1:23" + }, + { + "kind": "number", + "nativeSrc": "5109:2:23", + "nodeType": "YulLiteral", + "src": "5109:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5102:3:23", + "nodeType": "YulIdentifier", + "src": "5102:3:23" + }, + "nativeSrc": "5102:10:23", + "nodeType": "YulFunctionCall", + "src": "5102:10:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "5097:1:23", + "nodeType": "YulIdentifier", + "src": "5097:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5077:3:23", + "nodeType": "YulBlock", + "src": "5077:3:23", + "statements": [] + }, + "src": "5073:113:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "5206:3:23", + "nodeType": "YulIdentifier", + "src": "5206:3:23" + }, + { + "name": "length", + "nativeSrc": "5211:6:23", + "nodeType": "YulIdentifier", + "src": "5211:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5202:3:23", + "nodeType": "YulIdentifier", + "src": "5202:3:23" + }, + "nativeSrc": "5202:16:23", + "nodeType": "YulFunctionCall", + "src": "5202:16:23" + }, + { + "kind": "number", + "nativeSrc": "5220:1:23", + "nodeType": "YulLiteral", + "src": "5220:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5195:6:23", + "nodeType": "YulIdentifier", + "src": "5195:6:23" + }, + "nativeSrc": "5195:27:23", + "nodeType": "YulFunctionCall", + "src": "5195:27:23" + }, + "nativeSrc": "5195:27:23", + "nodeType": "YulExpressionStatement", + "src": "5195:27:23" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4982:246:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "5026:3:23", + "nodeType": "YulTypedName", + "src": "5026:3:23", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "5031:3:23", + "nodeType": "YulTypedName", + "src": "5031:3:23", + "type": "" + }, + { + "name": "length", + "nativeSrc": "5036:6:23", + "nodeType": "YulTypedName", + "src": "5036:6:23", + "type": "" + } + ], + "src": "4982:246:23" + }, + { + "body": { + "nativeSrc": "5326:285:23", + "nodeType": "YulBlock", + "src": "5326:285:23", + "statements": [ + { + "nativeSrc": "5336:53:23", + "nodeType": "YulVariableDeclaration", + "src": "5336:53:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5383:5:23", + "nodeType": "YulIdentifier", + "src": "5383:5:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "5350:32:23", + "nodeType": "YulIdentifier", + "src": "5350:32:23" + }, + "nativeSrc": "5350:39:23", + "nodeType": "YulFunctionCall", + "src": "5350:39:23" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5340:6:23", + "nodeType": "YulTypedName", + "src": "5340:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "5398:78:23", + "nodeType": "YulAssignment", + "src": "5398:78:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5464:3:23", + "nodeType": "YulIdentifier", + "src": "5464:3:23" + }, + { + "name": "length", + "nativeSrc": "5469:6:23", + "nodeType": "YulIdentifier", + "src": "5469:6:23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "5405:58:23", + "nodeType": "YulIdentifier", + "src": "5405:58:23" + }, + "nativeSrc": "5405:71:23", + "nodeType": "YulFunctionCall", + "src": "5405:71:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5398:3:23", + "nodeType": "YulIdentifier", + "src": "5398:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5524:5:23", + "nodeType": "YulIdentifier", + "src": "5524:5:23" + }, + { + "kind": "number", + "nativeSrc": "5531:4:23", + "nodeType": "YulLiteral", + "src": "5531:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5520:3:23", + "nodeType": "YulIdentifier", + "src": "5520:3:23" + }, + "nativeSrc": "5520:16:23", + "nodeType": "YulFunctionCall", + "src": "5520:16:23" + }, + { + "name": "pos", + "nativeSrc": "5538:3:23", + "nodeType": "YulIdentifier", + "src": "5538:3:23" + }, + { + "name": "length", + "nativeSrc": "5543:6:23", + "nodeType": "YulIdentifier", + "src": "5543:6:23" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "5485:34:23", + "nodeType": "YulIdentifier", + "src": "5485:34:23" + }, + "nativeSrc": "5485:65:23", + "nodeType": "YulFunctionCall", + "src": "5485:65:23" + }, + "nativeSrc": "5485:65:23", + "nodeType": "YulExpressionStatement", + "src": "5485:65:23" + }, + { + "nativeSrc": "5559:46:23", + "nodeType": "YulAssignment", + "src": "5559:46:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5570:3:23", + "nodeType": "YulIdentifier", + "src": "5570:3:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "5597:6:23", + "nodeType": "YulIdentifier", + "src": "5597:6:23" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "5575:21:23", + "nodeType": "YulIdentifier", + "src": "5575:21:23" + }, + "nativeSrc": "5575:29:23", + "nodeType": "YulFunctionCall", + "src": "5575:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5566:3:23", + "nodeType": "YulIdentifier", + "src": "5566:3:23" + }, + "nativeSrc": "5566:39:23", + "nodeType": "YulFunctionCall", + "src": "5566:39:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5559:3:23", + "nodeType": "YulIdentifier", + "src": "5559:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "5234:377:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5307:5:23", + "nodeType": "YulTypedName", + "src": "5307:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5314:3:23", + "nodeType": "YulTypedName", + "src": "5314:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5322:3:23", + "nodeType": "YulTypedName", + "src": "5322:3:23", + "type": "" + } + ], + "src": "5234:377:23" + }, + { + "body": { + "nativeSrc": "5682:53:23", + "nodeType": "YulBlock", + "src": "5682:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5699:3:23", + "nodeType": "YulIdentifier", + "src": "5699:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5722:5:23", + "nodeType": "YulIdentifier", + "src": "5722:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "5704:17:23", + "nodeType": "YulIdentifier", + "src": "5704:17:23" + }, + "nativeSrc": "5704:24:23", + "nodeType": "YulFunctionCall", + "src": "5704:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5692:6:23", + "nodeType": "YulIdentifier", + "src": "5692:6:23" + }, + "nativeSrc": "5692:37:23", + "nodeType": "YulFunctionCall", + "src": "5692:37:23" + }, + "nativeSrc": "5692:37:23", + "nodeType": "YulExpressionStatement", + "src": "5692:37:23" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5617:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5670:5:23", + "nodeType": "YulTypedName", + "src": "5670:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5677:3:23", + "nodeType": "YulTypedName", + "src": "5677:3:23", + "type": "" + } + ], + "src": "5617:118:23" + }, + { + "body": { + "nativeSrc": "5806:53:23", + "nodeType": "YulBlock", + "src": "5806:53:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5823:3:23", + "nodeType": "YulIdentifier", + "src": "5823:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5846:5:23", + "nodeType": "YulIdentifier", + "src": "5846:5:23" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "5828:17:23", + "nodeType": "YulIdentifier", + "src": "5828:17:23" + }, + "nativeSrc": "5828:24:23", + "nodeType": "YulFunctionCall", + "src": "5828:24:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5816:6:23", + "nodeType": "YulIdentifier", + "src": "5816:6:23" + }, + "nativeSrc": "5816:37:23", + "nodeType": "YulFunctionCall", + "src": "5816:37:23" + }, + "nativeSrc": "5816:37:23", + "nodeType": "YulExpressionStatement", + "src": "5816:37:23" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5741:118:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5794:5:23", + "nodeType": "YulTypedName", + "src": "5794:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5801:3:23", + "nodeType": "YulTypedName", + "src": "5801:3:23", + "type": "" + } + ], + "src": "5741:118:23" + }, + { + "body": { + "nativeSrc": "5907:48:23", + "nodeType": "YulBlock", + "src": "5907:48:23", + "statements": [ + { + "nativeSrc": "5917:32:23", + "nodeType": "YulAssignment", + "src": "5917:32:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5942:5:23", + "nodeType": "YulIdentifier", + "src": "5942:5:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5935:6:23", + "nodeType": "YulIdentifier", + "src": "5935:6:23" + }, + "nativeSrc": "5935:13:23", + "nodeType": "YulFunctionCall", + "src": "5935:13:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5928:6:23", + "nodeType": "YulIdentifier", + "src": "5928:6:23" + }, + "nativeSrc": "5928:21:23", + "nodeType": "YulFunctionCall", + "src": "5928:21:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5917:7:23", + "nodeType": "YulIdentifier", + "src": "5917:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "5865:90:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5889:5:23", + "nodeType": "YulTypedName", + "src": "5889:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5899:7:23", + "nodeType": "YulTypedName", + "src": "5899:7:23", + "type": "" + } + ], + "src": "5865:90:23" + }, + { + "body": { + "nativeSrc": "6020:50:23", + "nodeType": "YulBlock", + "src": "6020:50:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6037:3:23", + "nodeType": "YulIdentifier", + "src": "6037:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6057:5:23", + "nodeType": "YulIdentifier", + "src": "6057:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "6042:14:23", + "nodeType": "YulIdentifier", + "src": "6042:14:23" + }, + "nativeSrc": "6042:21:23", + "nodeType": "YulFunctionCall", + "src": "6042:21:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6030:6:23", + "nodeType": "YulIdentifier", + "src": "6030:6:23" + }, + "nativeSrc": "6030:34:23", + "nodeType": "YulFunctionCall", + "src": "6030:34:23" + }, + "nativeSrc": "6030:34:23", + "nodeType": "YulExpressionStatement", + "src": "6030:34:23" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "5961:109:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6008:5:23", + "nodeType": "YulTypedName", + "src": "6008:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6015:3:23", + "nodeType": "YulTypedName", + "src": "6015:3:23", + "type": "" + } + ], + "src": "5961:109:23" + }, + { + "body": { + "nativeSrc": "6328:602:23", + "nodeType": "YulBlock", + "src": "6328:602:23", + "statements": [ + { + "nativeSrc": "6338:27:23", + "nodeType": "YulAssignment", + "src": "6338:27:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6350:9:23", + "nodeType": "YulIdentifier", + "src": "6350:9:23" + }, + { + "kind": "number", + "nativeSrc": "6361:3:23", + "nodeType": "YulLiteral", + "src": "6361:3:23", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6346:3:23", + "nodeType": "YulIdentifier", + "src": "6346:3:23" + }, + "nativeSrc": "6346:19:23", + "nodeType": "YulFunctionCall", + "src": "6346:19:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6338:4:23", + "nodeType": "YulIdentifier", + "src": "6338:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6386:9:23", + "nodeType": "YulIdentifier", + "src": "6386:9:23" + }, + { + "kind": "number", + "nativeSrc": "6397:1:23", + "nodeType": "YulLiteral", + "src": "6397:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6382:3:23", + "nodeType": "YulIdentifier", + "src": "6382:3:23" + }, + "nativeSrc": "6382:17:23", + "nodeType": "YulFunctionCall", + "src": "6382:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "6405:4:23", + "nodeType": "YulIdentifier", + "src": "6405:4:23" + }, + { + "name": "headStart", + "nativeSrc": "6411:9:23", + "nodeType": "YulIdentifier", + "src": "6411:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6401:3:23", + "nodeType": "YulIdentifier", + "src": "6401:3:23" + }, + "nativeSrc": "6401:20:23", + "nodeType": "YulFunctionCall", + "src": "6401:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6375:6:23", + "nodeType": "YulIdentifier", + "src": "6375:6:23" + }, + "nativeSrc": "6375:47:23", + "nodeType": "YulFunctionCall", + "src": "6375:47:23" + }, + "nativeSrc": "6375:47:23", + "nodeType": "YulExpressionStatement", + "src": "6375:47:23" + }, + { + "nativeSrc": "6431:86:23", + "nodeType": "YulAssignment", + "src": "6431:86:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6503:6:23", + "nodeType": "YulIdentifier", + "src": "6503:6:23" + }, + { + "name": "tail", + "nativeSrc": "6512:4:23", + "nodeType": "YulIdentifier", + "src": "6512:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6439:63:23", + "nodeType": "YulIdentifier", + "src": "6439:63:23" + }, + "nativeSrc": "6439:78:23", + "nodeType": "YulFunctionCall", + "src": "6439:78:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6431:4:23", + "nodeType": "YulIdentifier", + "src": "6431:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "6571:6:23", + "nodeType": "YulIdentifier", + "src": "6571:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6584:9:23", + "nodeType": "YulIdentifier", + "src": "6584:9:23" + }, + { + "kind": "number", + "nativeSrc": "6595:2:23", + "nodeType": "YulLiteral", + "src": "6595:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6580:3:23", + "nodeType": "YulIdentifier", + "src": "6580:3:23" + }, + "nativeSrc": "6580:18:23", + "nodeType": "YulFunctionCall", + "src": "6580:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "6527:43:23", + "nodeType": "YulIdentifier", + "src": "6527:43:23" + }, + "nativeSrc": "6527:72:23", + "nodeType": "YulFunctionCall", + "src": "6527:72:23" + }, + "nativeSrc": "6527:72:23", + "nodeType": "YulExpressionStatement", + "src": "6527:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "6653:6:23", + "nodeType": "YulIdentifier", + "src": "6653:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6666:9:23", + "nodeType": "YulIdentifier", + "src": "6666:9:23" + }, + { + "kind": "number", + "nativeSrc": "6677:2:23", + "nodeType": "YulLiteral", + "src": "6677:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6662:3:23", + "nodeType": "YulIdentifier", + "src": "6662:3:23" + }, + "nativeSrc": "6662:18:23", + "nodeType": "YulFunctionCall", + "src": "6662:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "6609:43:23", + "nodeType": "YulIdentifier", + "src": "6609:43:23" + }, + "nativeSrc": "6609:72:23", + "nodeType": "YulFunctionCall", + "src": "6609:72:23" + }, + "nativeSrc": "6609:72:23", + "nodeType": "YulExpressionStatement", + "src": "6609:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "6729:6:23", + "nodeType": "YulIdentifier", + "src": "6729:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6742:9:23", + "nodeType": "YulIdentifier", + "src": "6742:9:23" + }, + { + "kind": "number", + "nativeSrc": "6753:2:23", + "nodeType": "YulLiteral", + "src": "6753:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6738:3:23", + "nodeType": "YulIdentifier", + "src": "6738:3:23" + }, + "nativeSrc": "6738:18:23", + "nodeType": "YulFunctionCall", + "src": "6738:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "6691:37:23", + "nodeType": "YulIdentifier", + "src": "6691:37:23" + }, + "nativeSrc": "6691:66:23", + "nodeType": "YulFunctionCall", + "src": "6691:66:23" + }, + "nativeSrc": "6691:66:23", + "nodeType": "YulExpressionStatement", + "src": "6691:66:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "6811:6:23", + "nodeType": "YulIdentifier", + "src": "6811:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6824:9:23", + "nodeType": "YulIdentifier", + "src": "6824:9:23" + }, + { + "kind": "number", + "nativeSrc": "6835:3:23", + "nodeType": "YulLiteral", + "src": "6835:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6820:3:23", + "nodeType": "YulIdentifier", + "src": "6820:3:23" + }, + "nativeSrc": "6820:19:23", + "nodeType": "YulFunctionCall", + "src": "6820:19:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "6767:43:23", + "nodeType": "YulIdentifier", + "src": "6767:43:23" + }, + "nativeSrc": "6767:73:23", + "nodeType": "YulFunctionCall", + "src": "6767:73:23" + }, + "nativeSrc": "6767:73:23", + "nodeType": "YulExpressionStatement", + "src": "6767:73:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nativeSrc": "6894:6:23", + "nodeType": "YulIdentifier", + "src": "6894:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6907:9:23", + "nodeType": "YulIdentifier", + "src": "6907:9:23" + }, + { + "kind": "number", + "nativeSrc": "6918:3:23", + "nodeType": "YulLiteral", + "src": "6918:3:23", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6903:3:23", + "nodeType": "YulIdentifier", + "src": "6903:3:23" + }, + "nativeSrc": "6903:19:23", + "nodeType": "YulFunctionCall", + "src": "6903:19:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "6850:43:23", + "nodeType": "YulIdentifier", + "src": "6850:43:23" + }, + "nativeSrc": "6850:73:23", + "nodeType": "YulFunctionCall", + "src": "6850:73:23" + }, + "nativeSrc": "6850:73:23", + "nodeType": "YulExpressionStatement", + "src": "6850:73:23" + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_bool_t_uint256_t_uint256__to_t_string_memory_ptr_t_uint256_t_address_t_bool_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "6076:854:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6260:9:23", + "nodeType": "YulTypedName", + "src": "6260:9:23", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "6272:6:23", + "nodeType": "YulTypedName", + "src": "6272:6:23", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "6280:6:23", + "nodeType": "YulTypedName", + "src": "6280:6:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "6288:6:23", + "nodeType": "YulTypedName", + "src": "6288:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "6296:6:23", + "nodeType": "YulTypedName", + "src": "6296:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6304:6:23", + "nodeType": "YulTypedName", + "src": "6304:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6312:6:23", + "nodeType": "YulTypedName", + "src": "6312:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6323:4:23", + "nodeType": "YulTypedName", + "src": "6323:4:23", + "type": "" + } + ], + "src": "6076:854:23" + }, + { + "body": { + "nativeSrc": "6976:76:23", + "nodeType": "YulBlock", + "src": "6976:76:23", + "statements": [ + { + "body": { + "nativeSrc": "7030:16:23", + "nodeType": "YulBlock", + "src": "7030:16:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7039:1:23", + "nodeType": "YulLiteral", + "src": "7039:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7042:1:23", + "nodeType": "YulLiteral", + "src": "7042:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7032:6:23", + "nodeType": "YulIdentifier", + "src": "7032:6:23" + }, + "nativeSrc": "7032:12:23", + "nodeType": "YulFunctionCall", + "src": "7032:12:23" + }, + "nativeSrc": "7032:12:23", + "nodeType": "YulExpressionStatement", + "src": "7032:12:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6999:5:23", + "nodeType": "YulIdentifier", + "src": "6999:5:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7021:5:23", + "nodeType": "YulIdentifier", + "src": "7021:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "7006:14:23", + "nodeType": "YulIdentifier", + "src": "7006:14:23" + }, + "nativeSrc": "7006:21:23", + "nodeType": "YulFunctionCall", + "src": "7006:21:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "6996:2:23", + "nodeType": "YulIdentifier", + "src": "6996:2:23" + }, + "nativeSrc": "6996:32:23", + "nodeType": "YulFunctionCall", + "src": "6996:32:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6989:6:23", + "nodeType": "YulIdentifier", + "src": "6989:6:23" + }, + "nativeSrc": "6989:40:23", + "nodeType": "YulFunctionCall", + "src": "6989:40:23" + }, + "nativeSrc": "6986:60:23", + "nodeType": "YulIf", + "src": "6986:60:23" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "6936:116:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6969:5:23", + "nodeType": "YulTypedName", + "src": "6969:5:23", + "type": "" + } + ], + "src": "6936:116:23" + }, + { + "body": { + "nativeSrc": "7107:84:23", + "nodeType": "YulBlock", + "src": "7107:84:23", + "statements": [ + { + "nativeSrc": "7117:29:23", + "nodeType": "YulAssignment", + "src": "7117:29:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7139:6:23", + "nodeType": "YulIdentifier", + "src": "7139:6:23" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7126:12:23", + "nodeType": "YulIdentifier", + "src": "7126:12:23" + }, + "nativeSrc": "7126:20:23", + "nodeType": "YulFunctionCall", + "src": "7126:20:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "7117:5:23", + "nodeType": "YulIdentifier", + "src": "7117:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7179:5:23", + "nodeType": "YulIdentifier", + "src": "7179:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "7155:23:23", + "nodeType": "YulIdentifier", + "src": "7155:23:23" + }, + "nativeSrc": "7155:30:23", + "nodeType": "YulFunctionCall", + "src": "7155:30:23" + }, + "nativeSrc": "7155:30:23", + "nodeType": "YulExpressionStatement", + "src": "7155:30:23" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "7058:133:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7085:6:23", + "nodeType": "YulTypedName", + "src": "7085:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7093:3:23", + "nodeType": "YulTypedName", + "src": "7093:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "7101:5:23", + "nodeType": "YulTypedName", + "src": "7101:5:23", + "type": "" + } + ], + "src": "7058:133:23" + }, + { + "body": { + "nativeSrc": "7277:388:23", + "nodeType": "YulBlock", + "src": "7277:388:23", + "statements": [ + { + "body": { + "nativeSrc": "7323:83:23", + "nodeType": "YulBlock", + "src": "7323:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "7325:77:23", + "nodeType": "YulIdentifier", + "src": "7325:77:23" + }, + "nativeSrc": "7325:79:23", + "nodeType": "YulFunctionCall", + "src": "7325:79:23" + }, + "nativeSrc": "7325:79:23", + "nodeType": "YulExpressionStatement", + "src": "7325:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7298:7:23", + "nodeType": "YulIdentifier", + "src": "7298:7:23" + }, + { + "name": "headStart", + "nativeSrc": "7307:9:23", + "nodeType": "YulIdentifier", + "src": "7307:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7294:3:23", + "nodeType": "YulIdentifier", + "src": "7294:3:23" + }, + "nativeSrc": "7294:23:23", + "nodeType": "YulFunctionCall", + "src": "7294:23:23" + }, + { + "kind": "number", + "nativeSrc": "7319:2:23", + "nodeType": "YulLiteral", + "src": "7319:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7290:3:23", + "nodeType": "YulIdentifier", + "src": "7290:3:23" + }, + "nativeSrc": "7290:32:23", + "nodeType": "YulFunctionCall", + "src": "7290:32:23" + }, + "nativeSrc": "7287:119:23", + "nodeType": "YulIf", + "src": "7287:119:23" + }, + { + "nativeSrc": "7416:117:23", + "nodeType": "YulBlock", + "src": "7416:117:23", + "statements": [ + { + "nativeSrc": "7431:15:23", + "nodeType": "YulVariableDeclaration", + "src": "7431:15:23", + "value": { + "kind": "number", + "nativeSrc": "7445:1:23", + "nodeType": "YulLiteral", + "src": "7445:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7435:6:23", + "nodeType": "YulTypedName", + "src": "7435:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "7460:63:23", + "nodeType": "YulAssignment", + "src": "7460:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7495:9:23", + "nodeType": "YulIdentifier", + "src": "7495:9:23" + }, + { + "name": "offset", + "nativeSrc": "7506:6:23", + "nodeType": "YulIdentifier", + "src": "7506:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7491:3:23", + "nodeType": "YulIdentifier", + "src": "7491:3:23" + }, + "nativeSrc": "7491:22:23", + "nodeType": "YulFunctionCall", + "src": "7491:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "7515:7:23", + "nodeType": "YulIdentifier", + "src": "7515:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "7470:20:23", + "nodeType": "YulIdentifier", + "src": "7470:20:23" + }, + "nativeSrc": "7470:53:23", + "nodeType": "YulFunctionCall", + "src": "7470:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7460:6:23", + "nodeType": "YulIdentifier", + "src": "7460:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "7543:115:23", + "nodeType": "YulBlock", + "src": "7543:115:23", + "statements": [ + { + "nativeSrc": "7558:16:23", + "nodeType": "YulVariableDeclaration", + "src": "7558:16:23", + "value": { + "kind": "number", + "nativeSrc": "7572:2:23", + "nodeType": "YulLiteral", + "src": "7572:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7562:6:23", + "nodeType": "YulTypedName", + "src": "7562:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "7588:60:23", + "nodeType": "YulAssignment", + "src": "7588:60:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7620:9:23", + "nodeType": "YulIdentifier", + "src": "7620:9:23" + }, + { + "name": "offset", + "nativeSrc": "7631:6:23", + "nodeType": "YulIdentifier", + "src": "7631:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7616:3:23", + "nodeType": "YulIdentifier", + "src": "7616:3:23" + }, + "nativeSrc": "7616:22:23", + "nodeType": "YulFunctionCall", + "src": "7616:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "7640:7:23", + "nodeType": "YulIdentifier", + "src": "7640:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "7598:17:23", + "nodeType": "YulIdentifier", + "src": "7598:17:23" + }, + "nativeSrc": "7598:50:23", + "nodeType": "YulFunctionCall", + "src": "7598:50:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "7588:6:23", + "nodeType": "YulIdentifier", + "src": "7588:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_bool", + "nativeSrc": "7197:468:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7239:9:23", + "nodeType": "YulTypedName", + "src": "7239:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7250:7:23", + "nodeType": "YulTypedName", + "src": "7250:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7262:6:23", + "nodeType": "YulTypedName", + "src": "7262:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7270:6:23", + "nodeType": "YulTypedName", + "src": "7270:6:23", + "type": "" + } + ], + "src": "7197:468:23" + }, + { + "body": { + "nativeSrc": "7754:391:23", + "nodeType": "YulBlock", + "src": "7754:391:23", + "statements": [ + { + "body": { + "nativeSrc": "7800:83:23", + "nodeType": "YulBlock", + "src": "7800:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "7802:77:23", + "nodeType": "YulIdentifier", + "src": "7802:77:23" + }, + "nativeSrc": "7802:79:23", + "nodeType": "YulFunctionCall", + "src": "7802:79:23" + }, + "nativeSrc": "7802:79:23", + "nodeType": "YulExpressionStatement", + "src": "7802:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7775:7:23", + "nodeType": "YulIdentifier", + "src": "7775:7:23" + }, + { + "name": "headStart", + "nativeSrc": "7784:9:23", + "nodeType": "YulIdentifier", + "src": "7784:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7771:3:23", + "nodeType": "YulIdentifier", + "src": "7771:3:23" + }, + "nativeSrc": "7771:23:23", + "nodeType": "YulFunctionCall", + "src": "7771:23:23" + }, + { + "kind": "number", + "nativeSrc": "7796:2:23", + "nodeType": "YulLiteral", + "src": "7796:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7767:3:23", + "nodeType": "YulIdentifier", + "src": "7767:3:23" + }, + "nativeSrc": "7767:32:23", + "nodeType": "YulFunctionCall", + "src": "7767:32:23" + }, + "nativeSrc": "7764:119:23", + "nodeType": "YulIf", + "src": "7764:119:23" + }, + { + "nativeSrc": "7893:117:23", + "nodeType": "YulBlock", + "src": "7893:117:23", + "statements": [ + { + "nativeSrc": "7908:15:23", + "nodeType": "YulVariableDeclaration", + "src": "7908:15:23", + "value": { + "kind": "number", + "nativeSrc": "7922:1:23", + "nodeType": "YulLiteral", + "src": "7922:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7912:6:23", + "nodeType": "YulTypedName", + "src": "7912:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "7937:63:23", + "nodeType": "YulAssignment", + "src": "7937:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7972:9:23", + "nodeType": "YulIdentifier", + "src": "7972:9:23" + }, + { + "name": "offset", + "nativeSrc": "7983:6:23", + "nodeType": "YulIdentifier", + "src": "7983:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7968:3:23", + "nodeType": "YulIdentifier", + "src": "7968:3:23" + }, + "nativeSrc": "7968:22:23", + "nodeType": "YulFunctionCall", + "src": "7968:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "7992:7:23", + "nodeType": "YulIdentifier", + "src": "7992:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "7947:20:23", + "nodeType": "YulIdentifier", + "src": "7947:20:23" + }, + "nativeSrc": "7947:53:23", + "nodeType": "YulFunctionCall", + "src": "7947:53:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7937:6:23", + "nodeType": "YulIdentifier", + "src": "7937:6:23" + } + ] + } + ] + }, + { + "nativeSrc": "8020:118:23", + "nodeType": "YulBlock", + "src": "8020:118:23", + "statements": [ + { + "nativeSrc": "8035:16:23", + "nodeType": "YulVariableDeclaration", + "src": "8035:16:23", + "value": { + "kind": "number", + "nativeSrc": "8049:2:23", + "nodeType": "YulLiteral", + "src": "8049:2:23", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8039:6:23", + "nodeType": "YulTypedName", + "src": "8039:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "8065:63:23", + "nodeType": "YulAssignment", + "src": "8065:63:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8100:9:23", + "nodeType": "YulIdentifier", + "src": "8100:9:23" + }, + { + "name": "offset", + "nativeSrc": "8111:6:23", + "nodeType": "YulIdentifier", + "src": "8111:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8096:3:23", + "nodeType": "YulIdentifier", + "src": "8096:3:23" + }, + "nativeSrc": "8096:22:23", + "nodeType": "YulFunctionCall", + "src": "8096:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "8120:7:23", + "nodeType": "YulIdentifier", + "src": "8120:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "8075:20:23", + "nodeType": "YulIdentifier", + "src": "8075:20:23" + }, + "nativeSrc": "8075:53:23", + "nodeType": "YulFunctionCall", + "src": "8075:53:23" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "8065:6:23", + "nodeType": "YulIdentifier", + "src": "8065:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address", + "nativeSrc": "7671:474:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7716:9:23", + "nodeType": "YulTypedName", + "src": "7716:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7727:7:23", + "nodeType": "YulTypedName", + "src": "7727:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7739:6:23", + "nodeType": "YulTypedName", + "src": "7739:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7747:6:23", + "nodeType": "YulTypedName", + "src": "7747:6:23", + "type": "" + } + ], + "src": "7671:474:23" + }, + { + "body": { + "nativeSrc": "8243:118:23", + "nodeType": "YulBlock", + "src": "8243:118:23", + "statements": [ + { + "nativeSrc": "8253:26:23", + "nodeType": "YulAssignment", + "src": "8253:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8265:9:23", + "nodeType": "YulIdentifier", + "src": "8265:9:23" + }, + { + "kind": "number", + "nativeSrc": "8276:2:23", + "nodeType": "YulLiteral", + "src": "8276:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8261:3:23", + "nodeType": "YulIdentifier", + "src": "8261:3:23" + }, + "nativeSrc": "8261:18:23", + "nodeType": "YulFunctionCall", + "src": "8261:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8253:4:23", + "nodeType": "YulIdentifier", + "src": "8253:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8327:6:23", + "nodeType": "YulIdentifier", + "src": "8327:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8340:9:23", + "nodeType": "YulIdentifier", + "src": "8340:9:23" + }, + { + "kind": "number", + "nativeSrc": "8351:1:23", + "nodeType": "YulLiteral", + "src": "8351:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8336:3:23", + "nodeType": "YulIdentifier", + "src": "8336:3:23" + }, + "nativeSrc": "8336:17:23", + "nodeType": "YulFunctionCall", + "src": "8336:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "8289:37:23", + "nodeType": "YulIdentifier", + "src": "8289:37:23" + }, + "nativeSrc": "8289:65:23", + "nodeType": "YulFunctionCall", + "src": "8289:65:23" + }, + "nativeSrc": "8289:65:23", + "nodeType": "YulExpressionStatement", + "src": "8289:65:23" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "8151:210:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8215:9:23", + "nodeType": "YulTypedName", + "src": "8215:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8227:6:23", + "nodeType": "YulTypedName", + "src": "8227:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8238:4:23", + "nodeType": "YulTypedName", + "src": "8238:4:23", + "type": "" + } + ], + "src": "8151:210:23" + }, + { + "body": { + "nativeSrc": "8465:124:23", + "nodeType": "YulBlock", + "src": "8465:124:23", + "statements": [ + { + "nativeSrc": "8475:26:23", + "nodeType": "YulAssignment", + "src": "8475:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8487:9:23", + "nodeType": "YulIdentifier", + "src": "8487:9:23" + }, + { + "kind": "number", + "nativeSrc": "8498:2:23", + "nodeType": "YulLiteral", + "src": "8498:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8483:3:23", + "nodeType": "YulIdentifier", + "src": "8483:3:23" + }, + "nativeSrc": "8483:18:23", + "nodeType": "YulFunctionCall", + "src": "8483:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8475:4:23", + "nodeType": "YulIdentifier", + "src": "8475:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8555:6:23", + "nodeType": "YulIdentifier", + "src": "8555:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8568:9:23", + "nodeType": "YulIdentifier", + "src": "8568:9:23" + }, + { + "kind": "number", + "nativeSrc": "8579:1:23", + "nodeType": "YulLiteral", + "src": "8579:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8564:3:23", + "nodeType": "YulIdentifier", + "src": "8564:3:23" + }, + "nativeSrc": "8564:17:23", + "nodeType": "YulFunctionCall", + "src": "8564:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8511:43:23", + "nodeType": "YulIdentifier", + "src": "8511:43:23" + }, + "nativeSrc": "8511:71:23", + "nodeType": "YulFunctionCall", + "src": "8511:71:23" + }, + "nativeSrc": "8511:71:23", + "nodeType": "YulExpressionStatement", + "src": "8511:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "8367:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8437:9:23", + "nodeType": "YulTypedName", + "src": "8437:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8449:6:23", + "nodeType": "YulTypedName", + "src": "8449:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8460:4:23", + "nodeType": "YulTypedName", + "src": "8460:4:23", + "type": "" + } + ], + "src": "8367:222:23" + }, + { + "body": { + "nativeSrc": "8693:124:23", + "nodeType": "YulBlock", + "src": "8693:124:23", + "statements": [ + { + "nativeSrc": "8703:26:23", + "nodeType": "YulAssignment", + "src": "8703:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8715:9:23", + "nodeType": "YulIdentifier", + "src": "8715:9:23" + }, + { + "kind": "number", + "nativeSrc": "8726:2:23", + "nodeType": "YulLiteral", + "src": "8726:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8711:3:23", + "nodeType": "YulIdentifier", + "src": "8711:3:23" + }, + "nativeSrc": "8711:18:23", + "nodeType": "YulFunctionCall", + "src": "8711:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8703:4:23", + "nodeType": "YulIdentifier", + "src": "8703:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8783:6:23", + "nodeType": "YulIdentifier", + "src": "8783:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8796:9:23", + "nodeType": "YulIdentifier", + "src": "8796:9:23" + }, + { + "kind": "number", + "nativeSrc": "8807:1:23", + "nodeType": "YulLiteral", + "src": "8807:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8792:3:23", + "nodeType": "YulIdentifier", + "src": "8792:3:23" + }, + "nativeSrc": "8792:17:23", + "nodeType": "YulFunctionCall", + "src": "8792:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "8739:43:23", + "nodeType": "YulIdentifier", + "src": "8739:43:23" + }, + "nativeSrc": "8739:71:23", + "nodeType": "YulFunctionCall", + "src": "8739:71:23" + }, + "nativeSrc": "8739:71:23", + "nodeType": "YulExpressionStatement", + "src": "8739:71:23" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "8595:222:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8665:9:23", + "nodeType": "YulTypedName", + "src": "8665:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8677:6:23", + "nodeType": "YulTypedName", + "src": "8677:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8688:4:23", + "nodeType": "YulTypedName", + "src": "8688:4:23", + "type": "" + } + ], + "src": "8595:222:23" + }, + { + "body": { + "nativeSrc": "9075:602:23", + "nodeType": "YulBlock", + "src": "9075:602:23", + "statements": [ + { + "nativeSrc": "9085:27:23", + "nodeType": "YulAssignment", + "src": "9085:27:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9097:9:23", + "nodeType": "YulIdentifier", + "src": "9097:9:23" + }, + { + "kind": "number", + "nativeSrc": "9108:3:23", + "nodeType": "YulLiteral", + "src": "9108:3:23", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9093:3:23", + "nodeType": "YulIdentifier", + "src": "9093:3:23" + }, + "nativeSrc": "9093:19:23", + "nodeType": "YulFunctionCall", + "src": "9093:19:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9085:4:23", + "nodeType": "YulIdentifier", + "src": "9085:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9133:9:23", + "nodeType": "YulIdentifier", + "src": "9133:9:23" + }, + { + "kind": "number", + "nativeSrc": "9144:1:23", + "nodeType": "YulLiteral", + "src": "9144:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9129:3:23", + "nodeType": "YulIdentifier", + "src": "9129:3:23" + }, + "nativeSrc": "9129:17:23", + "nodeType": "YulFunctionCall", + "src": "9129:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9152:4:23", + "nodeType": "YulIdentifier", + "src": "9152:4:23" + }, + { + "name": "headStart", + "nativeSrc": "9158:9:23", + "nodeType": "YulIdentifier", + "src": "9158:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9148:3:23", + "nodeType": "YulIdentifier", + "src": "9148:3:23" + }, + "nativeSrc": "9148:20:23", + "nodeType": "YulFunctionCall", + "src": "9148:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9122:6:23", + "nodeType": "YulIdentifier", + "src": "9122:6:23" + }, + "nativeSrc": "9122:47:23", + "nodeType": "YulFunctionCall", + "src": "9122:47:23" + }, + "nativeSrc": "9122:47:23", + "nodeType": "YulExpressionStatement", + "src": "9122:47:23" + }, + { + "nativeSrc": "9178:86:23", + "nodeType": "YulAssignment", + "src": "9178:86:23", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9250:6:23", + "nodeType": "YulIdentifier", + "src": "9250:6:23" + }, + { + "name": "tail", + "nativeSrc": "9259:4:23", + "nodeType": "YulIdentifier", + "src": "9259:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9186:63:23", + "nodeType": "YulIdentifier", + "src": "9186:63:23" + }, + "nativeSrc": "9186:78:23", + "nodeType": "YulFunctionCall", + "src": "9186:78:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9178:4:23", + "nodeType": "YulIdentifier", + "src": "9178:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "9318:6:23", + "nodeType": "YulIdentifier", + "src": "9318:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9331:9:23", + "nodeType": "YulIdentifier", + "src": "9331:9:23" + }, + { + "kind": "number", + "nativeSrc": "9342:2:23", + "nodeType": "YulLiteral", + "src": "9342:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9327:3:23", + "nodeType": "YulIdentifier", + "src": "9327:3:23" + }, + "nativeSrc": "9327:18:23", + "nodeType": "YulFunctionCall", + "src": "9327:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "9274:43:23", + "nodeType": "YulIdentifier", + "src": "9274:43:23" + }, + "nativeSrc": "9274:72:23", + "nodeType": "YulFunctionCall", + "src": "9274:72:23" + }, + "nativeSrc": "9274:72:23", + "nodeType": "YulExpressionStatement", + "src": "9274:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "9400:6:23", + "nodeType": "YulIdentifier", + "src": "9400:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9413:9:23", + "nodeType": "YulIdentifier", + "src": "9413:9:23" + }, + { + "kind": "number", + "nativeSrc": "9424:2:23", + "nodeType": "YulLiteral", + "src": "9424:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9409:3:23", + "nodeType": "YulIdentifier", + "src": "9409:3:23" + }, + "nativeSrc": "9409:18:23", + "nodeType": "YulFunctionCall", + "src": "9409:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "9356:43:23", + "nodeType": "YulIdentifier", + "src": "9356:43:23" + }, + "nativeSrc": "9356:72:23", + "nodeType": "YulFunctionCall", + "src": "9356:72:23" + }, + "nativeSrc": "9356:72:23", + "nodeType": "YulExpressionStatement", + "src": "9356:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "9482:6:23", + "nodeType": "YulIdentifier", + "src": "9482:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9495:9:23", + "nodeType": "YulIdentifier", + "src": "9495:9:23" + }, + { + "kind": "number", + "nativeSrc": "9506:2:23", + "nodeType": "YulLiteral", + "src": "9506:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9491:3:23", + "nodeType": "YulIdentifier", + "src": "9491:3:23" + }, + "nativeSrc": "9491:18:23", + "nodeType": "YulFunctionCall", + "src": "9491:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "9438:43:23", + "nodeType": "YulIdentifier", + "src": "9438:43:23" + }, + "nativeSrc": "9438:72:23", + "nodeType": "YulFunctionCall", + "src": "9438:72:23" + }, + "nativeSrc": "9438:72:23", + "nodeType": "YulExpressionStatement", + "src": "9438:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "9564:6:23", + "nodeType": "YulIdentifier", + "src": "9564:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9577:9:23", + "nodeType": "YulIdentifier", + "src": "9577:9:23" + }, + { + "kind": "number", + "nativeSrc": "9588:3:23", + "nodeType": "YulLiteral", + "src": "9588:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9573:3:23", + "nodeType": "YulIdentifier", + "src": "9573:3:23" + }, + "nativeSrc": "9573:19:23", + "nodeType": "YulFunctionCall", + "src": "9573:19:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "9520:43:23", + "nodeType": "YulIdentifier", + "src": "9520:43:23" + }, + "nativeSrc": "9520:73:23", + "nodeType": "YulFunctionCall", + "src": "9520:73:23" + }, + "nativeSrc": "9520:73:23", + "nodeType": "YulExpressionStatement", + "src": "9520:73:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nativeSrc": "9641:6:23", + "nodeType": "YulIdentifier", + "src": "9641:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9654:9:23", + "nodeType": "YulIdentifier", + "src": "9654:9:23" + }, + { + "kind": "number", + "nativeSrc": "9665:3:23", + "nodeType": "YulLiteral", + "src": "9665:3:23", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9650:3:23", + "nodeType": "YulIdentifier", + "src": "9650:3:23" + }, + "nativeSrc": "9650:19:23", + "nodeType": "YulFunctionCall", + "src": "9650:19:23" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "9603:37:23", + "nodeType": "YulIdentifier", + "src": "9603:37:23" + }, + "nativeSrc": "9603:67:23", + "nodeType": "YulFunctionCall", + "src": "9603:67:23" + }, + "nativeSrc": "9603:67:23", + "nodeType": "YulExpressionStatement", + "src": "9603:67:23" + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_uint256_t_uint256_t_bool__to_t_string_memory_ptr_t_uint256_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed", + "nativeSrc": "8823:854:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9007:9:23", + "nodeType": "YulTypedName", + "src": "9007:9:23", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "9019:6:23", + "nodeType": "YulTypedName", + "src": "9019:6:23", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "9027:6:23", + "nodeType": "YulTypedName", + "src": "9027:6:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "9035:6:23", + "nodeType": "YulTypedName", + "src": "9035:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9043:6:23", + "nodeType": "YulTypedName", + "src": "9043:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9051:6:23", + "nodeType": "YulTypedName", + "src": "9051:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9059:6:23", + "nodeType": "YulTypedName", + "src": "9059:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9070:4:23", + "nodeType": "YulTypedName", + "src": "9070:4:23", + "type": "" + } + ], + "src": "8823:854:23" + }, + { + "body": { + "nativeSrc": "9789:128:23", + "nodeType": "YulBlock", + "src": "9789:128:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9811:6:23", + "nodeType": "YulIdentifier", + "src": "9811:6:23" + }, + { + "kind": "number", + "nativeSrc": "9819:1:23", + "nodeType": "YulLiteral", + "src": "9819:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9807:3:23", + "nodeType": "YulIdentifier", + "src": "9807:3:23" + }, + "nativeSrc": "9807:14:23", + "nodeType": "YulFunctionCall", + "src": "9807:14:23" + }, + { + "hexValue": "4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c", + "kind": "string", + "nativeSrc": "9823:34:23", + "nodeType": "YulLiteral", + "src": "9823:34:23", + "type": "", + "value": "Only the contract owner can call" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9800:6:23", + "nodeType": "YulIdentifier", + "src": "9800:6:23" + }, + "nativeSrc": "9800:58:23", + "nodeType": "YulFunctionCall", + "src": "9800:58:23" + }, + "nativeSrc": "9800:58:23", + "nodeType": "YulExpressionStatement", + "src": "9800:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9879:6:23", + "nodeType": "YulIdentifier", + "src": "9879:6:23" + }, + { + "kind": "number", + "nativeSrc": "9887:2:23", + "nodeType": "YulLiteral", + "src": "9887:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9875:3:23", + "nodeType": "YulIdentifier", + "src": "9875:3:23" + }, + "nativeSrc": "9875:15:23", + "nodeType": "YulFunctionCall", + "src": "9875:15:23" + }, + { + "hexValue": "20746869732066756e6374696f6e2e", + "kind": "string", + "nativeSrc": "9892:17:23", + "nodeType": "YulLiteral", + "src": "9892:17:23", + "type": "", + "value": " this function." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9868:6:23", + "nodeType": "YulIdentifier", + "src": "9868:6:23" + }, + "nativeSrc": "9868:42:23", + "nodeType": "YulFunctionCall", + "src": "9868:42:23" + }, + "nativeSrc": "9868:42:23", + "nodeType": "YulExpressionStatement", + "src": "9868:42:23" + } + ] + }, + "name": "store_literal_in_memory_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761", + "nativeSrc": "9683:234:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "9781:6:23", + "nodeType": "YulTypedName", + "src": "9781:6:23", + "type": "" + } + ], + "src": "9683:234:23" + }, + { + "body": { + "nativeSrc": "10069:220:23", + "nodeType": "YulBlock", + "src": "10069:220:23", + "statements": [ + { + "nativeSrc": "10079:74:23", + "nodeType": "YulAssignment", + "src": "10079:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10145:3:23", + "nodeType": "YulIdentifier", + "src": "10145:3:23" + }, + { + "kind": "number", + "nativeSrc": "10150:2:23", + "nodeType": "YulLiteral", + "src": "10150:2:23", + "type": "", + "value": "47" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "10086:58:23", + "nodeType": "YulIdentifier", + "src": "10086:58:23" + }, + "nativeSrc": "10086:67:23", + "nodeType": "YulFunctionCall", + "src": "10086:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10079:3:23", + "nodeType": "YulIdentifier", + "src": "10079:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10251:3:23", + "nodeType": "YulIdentifier", + "src": "10251:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761", + "nativeSrc": "10162:88:23", + "nodeType": "YulIdentifier", + "src": "10162:88:23" + }, + "nativeSrc": "10162:93:23", + "nodeType": "YulFunctionCall", + "src": "10162:93:23" + }, + "nativeSrc": "10162:93:23", + "nodeType": "YulExpressionStatement", + "src": "10162:93:23" + }, + { + "nativeSrc": "10264:19:23", + "nodeType": "YulAssignment", + "src": "10264:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10275:3:23", + "nodeType": "YulIdentifier", + "src": "10275:3:23" + }, + { + "kind": "number", + "nativeSrc": "10280:2:23", + "nodeType": "YulLiteral", + "src": "10280:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10271:3:23", + "nodeType": "YulIdentifier", + "src": "10271:3:23" + }, + "nativeSrc": "10271:12:23", + "nodeType": "YulFunctionCall", + "src": "10271:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "10264:3:23", + "nodeType": "YulIdentifier", + "src": "10264:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9923:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "10057:3:23", + "nodeType": "YulTypedName", + "src": "10057:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "10065:3:23", + "nodeType": "YulTypedName", + "src": "10065:3:23", + "type": "" + } + ], + "src": "9923:366:23" + }, + { + "body": { + "nativeSrc": "10466:248:23", + "nodeType": "YulBlock", + "src": "10466:248:23", + "statements": [ + { + "nativeSrc": "10476:26:23", + "nodeType": "YulAssignment", + "src": "10476:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10488:9:23", + "nodeType": "YulIdentifier", + "src": "10488:9:23" + }, + { + "kind": "number", + "nativeSrc": "10499:2:23", + "nodeType": "YulLiteral", + "src": "10499:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10484:3:23", + "nodeType": "YulIdentifier", + "src": "10484:3:23" + }, + "nativeSrc": "10484:18:23", + "nodeType": "YulFunctionCall", + "src": "10484:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10476:4:23", + "nodeType": "YulIdentifier", + "src": "10476:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10523:9:23", + "nodeType": "YulIdentifier", + "src": "10523:9:23" + }, + { + "kind": "number", + "nativeSrc": "10534:1:23", + "nodeType": "YulLiteral", + "src": "10534:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10519:3:23", + "nodeType": "YulIdentifier", + "src": "10519:3:23" + }, + "nativeSrc": "10519:17:23", + "nodeType": "YulFunctionCall", + "src": "10519:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10542:4:23", + "nodeType": "YulIdentifier", + "src": "10542:4:23" + }, + { + "name": "headStart", + "nativeSrc": "10548:9:23", + "nodeType": "YulIdentifier", + "src": "10548:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10538:3:23", + "nodeType": "YulIdentifier", + "src": "10538:3:23" + }, + "nativeSrc": "10538:20:23", + "nodeType": "YulFunctionCall", + "src": "10538:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10512:6:23", + "nodeType": "YulIdentifier", + "src": "10512:6:23" + }, + "nativeSrc": "10512:47:23", + "nodeType": "YulFunctionCall", + "src": "10512:47:23" + }, + "nativeSrc": "10512:47:23", + "nodeType": "YulExpressionStatement", + "src": "10512:47:23" + }, + { + "nativeSrc": "10568:139:23", + "nodeType": "YulAssignment", + "src": "10568:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10702:4:23", + "nodeType": "YulIdentifier", + "src": "10702:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10576:124:23", + "nodeType": "YulIdentifier", + "src": "10576:124:23" + }, + "nativeSrc": "10576:131:23", + "nodeType": "YulFunctionCall", + "src": "10576:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10568:4:23", + "nodeType": "YulIdentifier", + "src": "10568:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10295:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10446:9:23", + "nodeType": "YulTypedName", + "src": "10446:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10461:4:23", + "nodeType": "YulTypedName", + "src": "10461:4:23", + "type": "" + } + ], + "src": "10295:419:23" + }, + { + "body": { + "nativeSrc": "10826:114:23", + "nodeType": "YulBlock", + "src": "10826:114:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10848:6:23", + "nodeType": "YulIdentifier", + "src": "10848:6:23" + }, + { + "kind": "number", + "nativeSrc": "10856:1:23", + "nodeType": "YulLiteral", + "src": "10856:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10844:3:23", + "nodeType": "YulIdentifier", + "src": "10844:3:23" + }, + "nativeSrc": "10844:14:23", + "nodeType": "YulFunctionCall", + "src": "10844:14:23" + }, + { + "hexValue": "4576656e742064617465206d75737420626520696e2074686520667574757265", + "kind": "string", + "nativeSrc": "10860:34:23", + "nodeType": "YulLiteral", + "src": "10860:34:23", + "type": "", + "value": "Event date must be in the future" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10837:6:23", + "nodeType": "YulIdentifier", + "src": "10837:6:23" + }, + "nativeSrc": "10837:58:23", + "nodeType": "YulFunctionCall", + "src": "10837:58:23" + }, + "nativeSrc": "10837:58:23", + "nodeType": "YulExpressionStatement", + "src": "10837:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10916:6:23", + "nodeType": "YulIdentifier", + "src": "10916:6:23" + }, + { + "kind": "number", + "nativeSrc": "10924:2:23", + "nodeType": "YulLiteral", + "src": "10924:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10912:3:23", + "nodeType": "YulIdentifier", + "src": "10912:3:23" + }, + "nativeSrc": "10912:15:23", + "nodeType": "YulFunctionCall", + "src": "10912:15:23" + }, + { + "hexValue": "2e", + "kind": "string", + "nativeSrc": "10929:3:23", + "nodeType": "YulLiteral", + "src": "10929:3:23", + "type": "", + "value": "." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10905:6:23", + "nodeType": "YulIdentifier", + "src": "10905:6:23" + }, + "nativeSrc": "10905:28:23", + "nodeType": "YulFunctionCall", + "src": "10905:28:23" + }, + "nativeSrc": "10905:28:23", + "nodeType": "YulExpressionStatement", + "src": "10905:28:23" + } + ] + }, + "name": "store_literal_in_memory_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4", + "nativeSrc": "10720:220:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "10818:6:23", + "nodeType": "YulTypedName", + "src": "10818:6:23", + "type": "" + } + ], + "src": "10720:220:23" + }, + { + "body": { + "nativeSrc": "11092:220:23", + "nodeType": "YulBlock", + "src": "11092:220:23", + "statements": [ + { + "nativeSrc": "11102:74:23", + "nodeType": "YulAssignment", + "src": "11102:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11168:3:23", + "nodeType": "YulIdentifier", + "src": "11168:3:23" + }, + { + "kind": "number", + "nativeSrc": "11173:2:23", + "nodeType": "YulLiteral", + "src": "11173:2:23", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "11109:58:23", + "nodeType": "YulIdentifier", + "src": "11109:58:23" + }, + "nativeSrc": "11109:67:23", + "nodeType": "YulFunctionCall", + "src": "11109:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "11102:3:23", + "nodeType": "YulIdentifier", + "src": "11102:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11274:3:23", + "nodeType": "YulIdentifier", + "src": "11274:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4", + "nativeSrc": "11185:88:23", + "nodeType": "YulIdentifier", + "src": "11185:88:23" + }, + "nativeSrc": "11185:93:23", + "nodeType": "YulFunctionCall", + "src": "11185:93:23" + }, + "nativeSrc": "11185:93:23", + "nodeType": "YulExpressionStatement", + "src": "11185:93:23" + }, + { + "nativeSrc": "11287:19:23", + "nodeType": "YulAssignment", + "src": "11287:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11298:3:23", + "nodeType": "YulIdentifier", + "src": "11298:3:23" + }, + { + "kind": "number", + "nativeSrc": "11303:2:23", + "nodeType": "YulLiteral", + "src": "11303:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11294:3:23", + "nodeType": "YulIdentifier", + "src": "11294:3:23" + }, + "nativeSrc": "11294:12:23", + "nodeType": "YulFunctionCall", + "src": "11294:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "11287:3:23", + "nodeType": "YulIdentifier", + "src": "11287:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10946:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "11080:3:23", + "nodeType": "YulTypedName", + "src": "11080:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "11088:3:23", + "nodeType": "YulTypedName", + "src": "11088:3:23", + "type": "" + } + ], + "src": "10946:366:23" + }, + { + "body": { + "nativeSrc": "11489:248:23", + "nodeType": "YulBlock", + "src": "11489:248:23", + "statements": [ + { + "nativeSrc": "11499:26:23", + "nodeType": "YulAssignment", + "src": "11499:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11511:9:23", + "nodeType": "YulIdentifier", + "src": "11511:9:23" + }, + { + "kind": "number", + "nativeSrc": "11522:2:23", + "nodeType": "YulLiteral", + "src": "11522:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11507:3:23", + "nodeType": "YulIdentifier", + "src": "11507:3:23" + }, + "nativeSrc": "11507:18:23", + "nodeType": "YulFunctionCall", + "src": "11507:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11499:4:23", + "nodeType": "YulIdentifier", + "src": "11499:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11546:9:23", + "nodeType": "YulIdentifier", + "src": "11546:9:23" + }, + { + "kind": "number", + "nativeSrc": "11557:1:23", + "nodeType": "YulLiteral", + "src": "11557:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11542:3:23", + "nodeType": "YulIdentifier", + "src": "11542:3:23" + }, + "nativeSrc": "11542:17:23", + "nodeType": "YulFunctionCall", + "src": "11542:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11565:4:23", + "nodeType": "YulIdentifier", + "src": "11565:4:23" + }, + { + "name": "headStart", + "nativeSrc": "11571:9:23", + "nodeType": "YulIdentifier", + "src": "11571:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11561:3:23", + "nodeType": "YulIdentifier", + "src": "11561:3:23" + }, + "nativeSrc": "11561:20:23", + "nodeType": "YulFunctionCall", + "src": "11561:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11535:6:23", + "nodeType": "YulIdentifier", + "src": "11535:6:23" + }, + "nativeSrc": "11535:47:23", + "nodeType": "YulFunctionCall", + "src": "11535:47:23" + }, + "nativeSrc": "11535:47:23", + "nodeType": "YulExpressionStatement", + "src": "11535:47:23" + }, + { + "nativeSrc": "11591:139:23", + "nodeType": "YulAssignment", + "src": "11591:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11725:4:23", + "nodeType": "YulIdentifier", + "src": "11725:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11599:124:23", + "nodeType": "YulIdentifier", + "src": "11599:124:23" + }, + "nativeSrc": "11599:131:23", + "nodeType": "YulFunctionCall", + "src": "11599:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11591:4:23", + "nodeType": "YulIdentifier", + "src": "11591:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "11318:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11469:9:23", + "nodeType": "YulTypedName", + "src": "11469:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11484:4:23", + "nodeType": "YulTypedName", + "src": "11484:4:23", + "type": "" + } + ], + "src": "11318:419:23" + }, + { + "body": { + "nativeSrc": "11849:120:23", + "nodeType": "YulBlock", + "src": "11849:120:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "11871:6:23", + "nodeType": "YulIdentifier", + "src": "11871:6:23" + }, + { + "kind": "number", + "nativeSrc": "11879:1:23", + "nodeType": "YulLiteral", + "src": "11879:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11867:3:23", + "nodeType": "YulIdentifier", + "src": "11867:3:23" + }, + "nativeSrc": "11867:14:23", + "nodeType": "YulFunctionCall", + "src": "11867:14:23" + }, + { + "hexValue": "4d6178206361706163697479206d757374206265206772656174657220746861", + "kind": "string", + "nativeSrc": "11883:34:23", + "nodeType": "YulLiteral", + "src": "11883:34:23", + "type": "", + "value": "Max capacity must be greater tha" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11860:6:23", + "nodeType": "YulIdentifier", + "src": "11860:6:23" + }, + "nativeSrc": "11860:58:23", + "nodeType": "YulFunctionCall", + "src": "11860:58:23" + }, + "nativeSrc": "11860:58:23", + "nodeType": "YulExpressionStatement", + "src": "11860:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "11939:6:23", + "nodeType": "YulIdentifier", + "src": "11939:6:23" + }, + { + "kind": "number", + "nativeSrc": "11947:2:23", + "nodeType": "YulLiteral", + "src": "11947:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11935:3:23", + "nodeType": "YulIdentifier", + "src": "11935:3:23" + }, + "nativeSrc": "11935:15:23", + "nodeType": "YulFunctionCall", + "src": "11935:15:23" + }, + { + "hexValue": "6e207a65726f2e", + "kind": "string", + "nativeSrc": "11952:9:23", + "nodeType": "YulLiteral", + "src": "11952:9:23", + "type": "", + "value": "n zero." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11928:6:23", + "nodeType": "YulIdentifier", + "src": "11928:6:23" + }, + "nativeSrc": "11928:34:23", + "nodeType": "YulFunctionCall", + "src": "11928:34:23" + }, + "nativeSrc": "11928:34:23", + "nodeType": "YulExpressionStatement", + "src": "11928:34:23" + } + ] + }, + "name": "store_literal_in_memory_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c", + "nativeSrc": "11743:226:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "11841:6:23", + "nodeType": "YulTypedName", + "src": "11841:6:23", + "type": "" + } + ], + "src": "11743:226:23" + }, + { + "body": { + "nativeSrc": "12121:220:23", + "nodeType": "YulBlock", + "src": "12121:220:23", + "statements": [ + { + "nativeSrc": "12131:74:23", + "nodeType": "YulAssignment", + "src": "12131:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12197:3:23", + "nodeType": "YulIdentifier", + "src": "12197:3:23" + }, + { + "kind": "number", + "nativeSrc": "12202:2:23", + "nodeType": "YulLiteral", + "src": "12202:2:23", + "type": "", + "value": "39" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "12138:58:23", + "nodeType": "YulIdentifier", + "src": "12138:58:23" + }, + "nativeSrc": "12138:67:23", + "nodeType": "YulFunctionCall", + "src": "12138:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12131:3:23", + "nodeType": "YulIdentifier", + "src": "12131:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12303:3:23", + "nodeType": "YulIdentifier", + "src": "12303:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c", + "nativeSrc": "12214:88:23", + "nodeType": "YulIdentifier", + "src": "12214:88:23" + }, + "nativeSrc": "12214:93:23", + "nodeType": "YulFunctionCall", + "src": "12214:93:23" + }, + "nativeSrc": "12214:93:23", + "nodeType": "YulExpressionStatement", + "src": "12214:93:23" + }, + { + "nativeSrc": "12316:19:23", + "nodeType": "YulAssignment", + "src": "12316:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12327:3:23", + "nodeType": "YulIdentifier", + "src": "12327:3:23" + }, + { + "kind": "number", + "nativeSrc": "12332:2:23", + "nodeType": "YulLiteral", + "src": "12332:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12323:3:23", + "nodeType": "YulIdentifier", + "src": "12323:3:23" + }, + "nativeSrc": "12323:12:23", + "nodeType": "YulFunctionCall", + "src": "12323:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "12316:3:23", + "nodeType": "YulIdentifier", + "src": "12316:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11975:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "12109:3:23", + "nodeType": "YulTypedName", + "src": "12109:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "12117:3:23", + "nodeType": "YulTypedName", + "src": "12117:3:23", + "type": "" + } + ], + "src": "11975:366:23" + }, + { + "body": { + "nativeSrc": "12518:248:23", + "nodeType": "YulBlock", + "src": "12518:248:23", + "statements": [ + { + "nativeSrc": "12528:26:23", + "nodeType": "YulAssignment", + "src": "12528:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12540:9:23", + "nodeType": "YulIdentifier", + "src": "12540:9:23" + }, + { + "kind": "number", + "nativeSrc": "12551:2:23", + "nodeType": "YulLiteral", + "src": "12551:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12536:3:23", + "nodeType": "YulIdentifier", + "src": "12536:3:23" + }, + "nativeSrc": "12536:18:23", + "nodeType": "YulFunctionCall", + "src": "12536:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12528:4:23", + "nodeType": "YulIdentifier", + "src": "12528:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12575:9:23", + "nodeType": "YulIdentifier", + "src": "12575:9:23" + }, + { + "kind": "number", + "nativeSrc": "12586:1:23", + "nodeType": "YulLiteral", + "src": "12586:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12571:3:23", + "nodeType": "YulIdentifier", + "src": "12571:3:23" + }, + "nativeSrc": "12571:17:23", + "nodeType": "YulFunctionCall", + "src": "12571:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "12594:4:23", + "nodeType": "YulIdentifier", + "src": "12594:4:23" + }, + { + "name": "headStart", + "nativeSrc": "12600:9:23", + "nodeType": "YulIdentifier", + "src": "12600:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12590:3:23", + "nodeType": "YulIdentifier", + "src": "12590:3:23" + }, + "nativeSrc": "12590:20:23", + "nodeType": "YulFunctionCall", + "src": "12590:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12564:6:23", + "nodeType": "YulIdentifier", + "src": "12564:6:23" + }, + "nativeSrc": "12564:47:23", + "nodeType": "YulFunctionCall", + "src": "12564:47:23" + }, + "nativeSrc": "12564:47:23", + "nodeType": "YulExpressionStatement", + "src": "12564:47:23" + }, + { + "nativeSrc": "12620:139:23", + "nodeType": "YulAssignment", + "src": "12620:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "12754:4:23", + "nodeType": "YulIdentifier", + "src": "12754:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12628:124:23", + "nodeType": "YulIdentifier", + "src": "12628:124:23" + }, + "nativeSrc": "12628:131:23", + "nodeType": "YulFunctionCall", + "src": "12628:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12620:4:23", + "nodeType": "YulIdentifier", + "src": "12620:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12347:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12498:9:23", + "nodeType": "YulTypedName", + "src": "12498:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12513:4:23", + "nodeType": "YulTypedName", + "src": "12513:4:23", + "type": "" + } + ], + "src": "12347:419:23" + }, + { + "body": { + "nativeSrc": "12878:119:23", + "nodeType": "YulBlock", + "src": "12878:119:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12900:6:23", + "nodeType": "YulIdentifier", + "src": "12900:6:23" + }, + { + "kind": "number", + "nativeSrc": "12908:1:23", + "nodeType": "YulLiteral", + "src": "12908:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12896:3:23", + "nodeType": "YulIdentifier", + "src": "12896:3:23" + }, + "nativeSrc": "12896:14:23", + "nodeType": "YulFunctionCall", + "src": "12896:14:23" + }, + { + "hexValue": "5265717569726564204e46542061646472657373206973206e6f74206120636f", + "kind": "string", + "nativeSrc": "12912:34:23", + "nodeType": "YulLiteral", + "src": "12912:34:23", + "type": "", + "value": "Required NFT address is not a co" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12889:6:23", + "nodeType": "YulIdentifier", + "src": "12889:6:23" + }, + "nativeSrc": "12889:58:23", + "nodeType": "YulFunctionCall", + "src": "12889:58:23" + }, + "nativeSrc": "12889:58:23", + "nodeType": "YulExpressionStatement", + "src": "12889:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12968:6:23", + "nodeType": "YulIdentifier", + "src": "12968:6:23" + }, + { + "kind": "number", + "nativeSrc": "12976:2:23", + "nodeType": "YulLiteral", + "src": "12976:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12964:3:23", + "nodeType": "YulIdentifier", + "src": "12964:3:23" + }, + "nativeSrc": "12964:15:23", + "nodeType": "YulFunctionCall", + "src": "12964:15:23" + }, + { + "hexValue": "6e7472616374", + "kind": "string", + "nativeSrc": "12981:8:23", + "nodeType": "YulLiteral", + "src": "12981:8:23", + "type": "", + "value": "ntract" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12957:6:23", + "nodeType": "YulIdentifier", + "src": "12957:6:23" + }, + "nativeSrc": "12957:33:23", + "nodeType": "YulFunctionCall", + "src": "12957:33:23" + }, + "nativeSrc": "12957:33:23", + "nodeType": "YulExpressionStatement", + "src": "12957:33:23" + } + ] + }, + "name": "store_literal_in_memory_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0", + "nativeSrc": "12772:225:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "12870:6:23", + "nodeType": "YulTypedName", + "src": "12870:6:23", + "type": "" + } + ], + "src": "12772:225:23" + }, + { + "body": { + "nativeSrc": "13149:220:23", + "nodeType": "YulBlock", + "src": "13149:220:23", + "statements": [ + { + "nativeSrc": "13159:74:23", + "nodeType": "YulAssignment", + "src": "13159:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13225:3:23", + "nodeType": "YulIdentifier", + "src": "13225:3:23" + }, + { + "kind": "number", + "nativeSrc": "13230:2:23", + "nodeType": "YulLiteral", + "src": "13230:2:23", + "type": "", + "value": "38" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13166:58:23", + "nodeType": "YulIdentifier", + "src": "13166:58:23" + }, + "nativeSrc": "13166:67:23", + "nodeType": "YulFunctionCall", + "src": "13166:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13159:3:23", + "nodeType": "YulIdentifier", + "src": "13159:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13331:3:23", + "nodeType": "YulIdentifier", + "src": "13331:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0", + "nativeSrc": "13242:88:23", + "nodeType": "YulIdentifier", + "src": "13242:88:23" + }, + "nativeSrc": "13242:93:23", + "nodeType": "YulFunctionCall", + "src": "13242:93:23" + }, + "nativeSrc": "13242:93:23", + "nodeType": "YulExpressionStatement", + "src": "13242:93:23" + }, + { + "nativeSrc": "13344:19:23", + "nodeType": "YulAssignment", + "src": "13344:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13355:3:23", + "nodeType": "YulIdentifier", + "src": "13355:3:23" + }, + { + "kind": "number", + "nativeSrc": "13360:2:23", + "nodeType": "YulLiteral", + "src": "13360:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13351:3:23", + "nodeType": "YulIdentifier", + "src": "13351:3:23" + }, + "nativeSrc": "13351:12:23", + "nodeType": "YulFunctionCall", + "src": "13351:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13344:3:23", + "nodeType": "YulIdentifier", + "src": "13344:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13003:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13137:3:23", + "nodeType": "YulTypedName", + "src": "13137:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13145:3:23", + "nodeType": "YulTypedName", + "src": "13145:3:23", + "type": "" + } + ], + "src": "13003:366:23" + }, + { + "body": { + "nativeSrc": "13546:248:23", + "nodeType": "YulBlock", + "src": "13546:248:23", + "statements": [ + { + "nativeSrc": "13556:26:23", + "nodeType": "YulAssignment", + "src": "13556:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13568:9:23", + "nodeType": "YulIdentifier", + "src": "13568:9:23" + }, + { + "kind": "number", + "nativeSrc": "13579:2:23", + "nodeType": "YulLiteral", + "src": "13579:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13564:3:23", + "nodeType": "YulIdentifier", + "src": "13564:3:23" + }, + "nativeSrc": "13564:18:23", + "nodeType": "YulFunctionCall", + "src": "13564:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13556:4:23", + "nodeType": "YulIdentifier", + "src": "13556:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13603:9:23", + "nodeType": "YulIdentifier", + "src": "13603:9:23" + }, + { + "kind": "number", + "nativeSrc": "13614:1:23", + "nodeType": "YulLiteral", + "src": "13614:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13599:3:23", + "nodeType": "YulIdentifier", + "src": "13599:3:23" + }, + "nativeSrc": "13599:17:23", + "nodeType": "YulFunctionCall", + "src": "13599:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13622:4:23", + "nodeType": "YulIdentifier", + "src": "13622:4:23" + }, + { + "name": "headStart", + "nativeSrc": "13628:9:23", + "nodeType": "YulIdentifier", + "src": "13628:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13618:3:23", + "nodeType": "YulIdentifier", + "src": "13618:3:23" + }, + "nativeSrc": "13618:20:23", + "nodeType": "YulFunctionCall", + "src": "13618:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13592:6:23", + "nodeType": "YulIdentifier", + "src": "13592:6:23" + }, + "nativeSrc": "13592:47:23", + "nodeType": "YulFunctionCall", + "src": "13592:47:23" + }, + "nativeSrc": "13592:47:23", + "nodeType": "YulExpressionStatement", + "src": "13592:47:23" + }, + { + "nativeSrc": "13648:139:23", + "nodeType": "YulAssignment", + "src": "13648:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13782:4:23", + "nodeType": "YulIdentifier", + "src": "13782:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13656:124:23", + "nodeType": "YulIdentifier", + "src": "13656:124:23" + }, + "nativeSrc": "13656:131:23", + "nodeType": "YulFunctionCall", + "src": "13656:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13648:4:23", + "nodeType": "YulIdentifier", + "src": "13648:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13375:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13526:9:23", + "nodeType": "YulTypedName", + "src": "13526:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13541:4:23", + "nodeType": "YulTypedName", + "src": "13541:4:23", + "type": "" + } + ], + "src": "13375:419:23" + }, + { + "body": { + "nativeSrc": "13844:105:23", + "nodeType": "YulBlock", + "src": "13844:105:23", + "statements": [ + { + "nativeSrc": "13854:89:23", + "nodeType": "YulAssignment", + "src": "13854:89:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13869:5:23", + "nodeType": "YulIdentifier", + "src": "13869:5:23" + }, + { + "kind": "number", + "nativeSrc": "13876:66:23", + "nodeType": "YulLiteral", + "src": "13876:66:23", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13865:3:23", + "nodeType": "YulIdentifier", + "src": "13865:3:23" + }, + "nativeSrc": "13865:78:23", + "nodeType": "YulFunctionCall", + "src": "13865:78:23" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "13854:7:23", + "nodeType": "YulIdentifier", + "src": "13854:7:23" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "13800:149:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "13826:5:23", + "nodeType": "YulTypedName", + "src": "13826:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "13836:7:23", + "nodeType": "YulTypedName", + "src": "13836:7:23", + "type": "" + } + ], + "src": "13800:149:23" + }, + { + "body": { + "nativeSrc": "14018:52:23", + "nodeType": "YulBlock", + "src": "14018:52:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14035:3:23", + "nodeType": "YulIdentifier", + "src": "14035:3:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14057:5:23", + "nodeType": "YulIdentifier", + "src": "14057:5:23" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "14040:16:23", + "nodeType": "YulIdentifier", + "src": "14040:16:23" + }, + "nativeSrc": "14040:23:23", + "nodeType": "YulFunctionCall", + "src": "14040:23:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14028:6:23", + "nodeType": "YulIdentifier", + "src": "14028:6:23" + }, + "nativeSrc": "14028:36:23", + "nodeType": "YulFunctionCall", + "src": "14028:36:23" + }, + "nativeSrc": "14028:36:23", + "nodeType": "YulExpressionStatement", + "src": "14028:36:23" + } + ] + }, + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "13955:115:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14006:5:23", + "nodeType": "YulTypedName", + "src": "14006:5:23", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14013:3:23", + "nodeType": "YulTypedName", + "src": "14013:3:23", + "type": "" + } + ], + "src": "13955:115:23" + }, + { + "body": { + "nativeSrc": "14172:122:23", + "nodeType": "YulBlock", + "src": "14172:122:23", + "statements": [ + { + "nativeSrc": "14182:26:23", + "nodeType": "YulAssignment", + "src": "14182:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14194:9:23", + "nodeType": "YulIdentifier", + "src": "14194:9:23" + }, + { + "kind": "number", + "nativeSrc": "14205:2:23", + "nodeType": "YulLiteral", + "src": "14205:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14190:3:23", + "nodeType": "YulIdentifier", + "src": "14190:3:23" + }, + "nativeSrc": "14190:18:23", + "nodeType": "YulFunctionCall", + "src": "14190:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14182:4:23", + "nodeType": "YulIdentifier", + "src": "14182:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14260:6:23", + "nodeType": "YulIdentifier", + "src": "14260:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14273:9:23", + "nodeType": "YulIdentifier", + "src": "14273:9:23" + }, + { + "kind": "number", + "nativeSrc": "14284:1:23", + "nodeType": "YulLiteral", + "src": "14284:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14269:3:23", + "nodeType": "YulIdentifier", + "src": "14269:3:23" + }, + "nativeSrc": "14269:17:23", + "nodeType": "YulFunctionCall", + "src": "14269:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "14218:41:23", + "nodeType": "YulIdentifier", + "src": "14218:41:23" + }, + "nativeSrc": "14218:69:23", + "nodeType": "YulFunctionCall", + "src": "14218:69:23" + }, + "nativeSrc": "14218:69:23", + "nodeType": "YulExpressionStatement", + "src": "14218:69:23" + } + ] + }, + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nativeSrc": "14076:218:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14144:9:23", + "nodeType": "YulTypedName", + "src": "14144:9:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14156:6:23", + "nodeType": "YulTypedName", + "src": "14156:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14167:4:23", + "nodeType": "YulTypedName", + "src": "14167:4:23", + "type": "" + } + ], + "src": "14076:218:23" + }, + { + "body": { + "nativeSrc": "14360:77:23", + "nodeType": "YulBlock", + "src": "14360:77:23", + "statements": [ + { + "nativeSrc": "14370:22:23", + "nodeType": "YulAssignment", + "src": "14370:22:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14385:6:23", + "nodeType": "YulIdentifier", + "src": "14385:6:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14379:5:23", + "nodeType": "YulIdentifier", + "src": "14379:5:23" + }, + "nativeSrc": "14379:13:23", + "nodeType": "YulFunctionCall", + "src": "14379:13:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "14370:5:23", + "nodeType": "YulIdentifier", + "src": "14370:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14425:5:23", + "nodeType": "YulIdentifier", + "src": "14425:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "14401:23:23", + "nodeType": "YulIdentifier", + "src": "14401:23:23" + }, + "nativeSrc": "14401:30:23", + "nodeType": "YulFunctionCall", + "src": "14401:30:23" + }, + "nativeSrc": "14401:30:23", + "nodeType": "YulExpressionStatement", + "src": "14401:30:23" + } + ] + }, + "name": "abi_decode_t_bool_fromMemory", + "nativeSrc": "14300:137:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "14338:6:23", + "nodeType": "YulTypedName", + "src": "14338:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "14346:3:23", + "nodeType": "YulTypedName", + "src": "14346:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "14354:5:23", + "nodeType": "YulTypedName", + "src": "14354:5:23", + "type": "" + } + ], + "src": "14300:137:23" + }, + { + "body": { + "nativeSrc": "14517:271:23", + "nodeType": "YulBlock", + "src": "14517:271:23", + "statements": [ + { + "body": { + "nativeSrc": "14563:83:23", + "nodeType": "YulBlock", + "src": "14563:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "14565:77:23", + "nodeType": "YulIdentifier", + "src": "14565:77:23" + }, + "nativeSrc": "14565:79:23", + "nodeType": "YulFunctionCall", + "src": "14565:79:23" + }, + "nativeSrc": "14565:79:23", + "nodeType": "YulExpressionStatement", + "src": "14565:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "14538:7:23", + "nodeType": "YulIdentifier", + "src": "14538:7:23" + }, + { + "name": "headStart", + "nativeSrc": "14547:9:23", + "nodeType": "YulIdentifier", + "src": "14547:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14534:3:23", + "nodeType": "YulIdentifier", + "src": "14534:3:23" + }, + "nativeSrc": "14534:23:23", + "nodeType": "YulFunctionCall", + "src": "14534:23:23" + }, + { + "kind": "number", + "nativeSrc": "14559:2:23", + "nodeType": "YulLiteral", + "src": "14559:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "14530:3:23", + "nodeType": "YulIdentifier", + "src": "14530:3:23" + }, + "nativeSrc": "14530:32:23", + "nodeType": "YulFunctionCall", + "src": "14530:32:23" + }, + "nativeSrc": "14527:119:23", + "nodeType": "YulIf", + "src": "14527:119:23" + }, + { + "nativeSrc": "14656:125:23", + "nodeType": "YulBlock", + "src": "14656:125:23", + "statements": [ + { + "nativeSrc": "14671:15:23", + "nodeType": "YulVariableDeclaration", + "src": "14671:15:23", + "value": { + "kind": "number", + "nativeSrc": "14685:1:23", + "nodeType": "YulLiteral", + "src": "14685:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "14675:6:23", + "nodeType": "YulTypedName", + "src": "14675:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "14700:71:23", + "nodeType": "YulAssignment", + "src": "14700:71:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14743:9:23", + "nodeType": "YulIdentifier", + "src": "14743:9:23" + }, + { + "name": "offset", + "nativeSrc": "14754:6:23", + "nodeType": "YulIdentifier", + "src": "14754:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14739:3:23", + "nodeType": "YulIdentifier", + "src": "14739:3:23" + }, + "nativeSrc": "14739:22:23", + "nodeType": "YulFunctionCall", + "src": "14739:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "14763:7:23", + "nodeType": "YulIdentifier", + "src": "14763:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_bool_fromMemory", + "nativeSrc": "14710:28:23", + "nodeType": "YulIdentifier", + "src": "14710:28:23" + }, + "nativeSrc": "14710:61:23", + "nodeType": "YulFunctionCall", + "src": "14710:61:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "14700:6:23", + "nodeType": "YulIdentifier", + "src": "14700:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "14443:345:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14487:9:23", + "nodeType": "YulTypedName", + "src": "14487:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "14498:7:23", + "nodeType": "YulTypedName", + "src": "14498:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "14510:6:23", + "nodeType": "YulTypedName", + "src": "14510:6:23", + "type": "" + } + ], + "src": "14443:345:23" + }, + { + "body": { + "nativeSrc": "14900:127:23", + "nodeType": "YulBlock", + "src": "14900:127:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14922:6:23", + "nodeType": "YulIdentifier", + "src": "14922:6:23" + }, + { + "kind": "number", + "nativeSrc": "14930:1:23", + "nodeType": "YulLiteral", + "src": "14930:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14918:3:23", + "nodeType": "YulIdentifier", + "src": "14918:3:23" + }, + "nativeSrc": "14918:14:23", + "nodeType": "YulFunctionCall", + "src": "14918:14:23" + }, + { + "hexValue": "5265717569726564204e46542041646472657373206973206e6f7420616e2045", + "kind": "string", + "nativeSrc": "14934:34:23", + "nodeType": "YulLiteral", + "src": "14934:34:23", + "type": "", + "value": "Required NFT Address is not an E" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14911:6:23", + "nodeType": "YulIdentifier", + "src": "14911:6:23" + }, + "nativeSrc": "14911:58:23", + "nodeType": "YulFunctionCall", + "src": "14911:58:23" + }, + "nativeSrc": "14911:58:23", + "nodeType": "YulExpressionStatement", + "src": "14911:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14990:6:23", + "nodeType": "YulIdentifier", + "src": "14990:6:23" + }, + { + "kind": "number", + "nativeSrc": "14998:2:23", + "nodeType": "YulLiteral", + "src": "14998:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14986:3:23", + "nodeType": "YulIdentifier", + "src": "14986:3:23" + }, + "nativeSrc": "14986:15:23", + "nodeType": "YulFunctionCall", + "src": "14986:15:23" + }, + { + "hexValue": "524337323120636f6e7472616374", + "kind": "string", + "nativeSrc": "15003:16:23", + "nodeType": "YulLiteral", + "src": "15003:16:23", + "type": "", + "value": "RC721 contract" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14979:6:23", + "nodeType": "YulIdentifier", + "src": "14979:6:23" + }, + "nativeSrc": "14979:41:23", + "nodeType": "YulFunctionCall", + "src": "14979:41:23" + }, + "nativeSrc": "14979:41:23", + "nodeType": "YulExpressionStatement", + "src": "14979:41:23" + } + ] + }, + "name": "store_literal_in_memory_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf", + "nativeSrc": "14794:233:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "14892:6:23", + "nodeType": "YulTypedName", + "src": "14892:6:23", + "type": "" + } + ], + "src": "14794:233:23" + }, + { + "body": { + "nativeSrc": "15179:220:23", + "nodeType": "YulBlock", + "src": "15179:220:23", + "statements": [ + { + "nativeSrc": "15189:74:23", + "nodeType": "YulAssignment", + "src": "15189:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15255:3:23", + "nodeType": "YulIdentifier", + "src": "15255:3:23" + }, + { + "kind": "number", + "nativeSrc": "15260:2:23", + "nodeType": "YulLiteral", + "src": "15260:2:23", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "15196:58:23", + "nodeType": "YulIdentifier", + "src": "15196:58:23" + }, + "nativeSrc": "15196:67:23", + "nodeType": "YulFunctionCall", + "src": "15196:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15189:3:23", + "nodeType": "YulIdentifier", + "src": "15189:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15361:3:23", + "nodeType": "YulIdentifier", + "src": "15361:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf", + "nativeSrc": "15272:88:23", + "nodeType": "YulIdentifier", + "src": "15272:88:23" + }, + "nativeSrc": "15272:93:23", + "nodeType": "YulFunctionCall", + "src": "15272:93:23" + }, + "nativeSrc": "15272:93:23", + "nodeType": "YulExpressionStatement", + "src": "15272:93:23" + }, + { + "nativeSrc": "15374:19:23", + "nodeType": "YulAssignment", + "src": "15374:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15385:3:23", + "nodeType": "YulIdentifier", + "src": "15385:3:23" + }, + { + "kind": "number", + "nativeSrc": "15390:2:23", + "nodeType": "YulLiteral", + "src": "15390:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15381:3:23", + "nodeType": "YulIdentifier", + "src": "15381:3:23" + }, + "nativeSrc": "15381:12:23", + "nodeType": "YulFunctionCall", + "src": "15381:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15374:3:23", + "nodeType": "YulIdentifier", + "src": "15374:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf_to_t_string_memory_ptr_fromStack", + "nativeSrc": "15033:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15167:3:23", + "nodeType": "YulTypedName", + "src": "15167:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15175:3:23", + "nodeType": "YulTypedName", + "src": "15175:3:23", + "type": "" + } + ], + "src": "15033:366:23" + }, + { + "body": { + "nativeSrc": "15576:248:23", + "nodeType": "YulBlock", + "src": "15576:248:23", + "statements": [ + { + "nativeSrc": "15586:26:23", + "nodeType": "YulAssignment", + "src": "15586:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15598:9:23", + "nodeType": "YulIdentifier", + "src": "15598:9:23" + }, + { + "kind": "number", + "nativeSrc": "15609:2:23", + "nodeType": "YulLiteral", + "src": "15609:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15594:3:23", + "nodeType": "YulIdentifier", + "src": "15594:3:23" + }, + "nativeSrc": "15594:18:23", + "nodeType": "YulFunctionCall", + "src": "15594:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15586:4:23", + "nodeType": "YulIdentifier", + "src": "15586:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15633:9:23", + "nodeType": "YulIdentifier", + "src": "15633:9:23" + }, + { + "kind": "number", + "nativeSrc": "15644:1:23", + "nodeType": "YulLiteral", + "src": "15644:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15629:3:23", + "nodeType": "YulIdentifier", + "src": "15629:3:23" + }, + "nativeSrc": "15629:17:23", + "nodeType": "YulFunctionCall", + "src": "15629:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15652:4:23", + "nodeType": "YulIdentifier", + "src": "15652:4:23" + }, + { + "name": "headStart", + "nativeSrc": "15658:9:23", + "nodeType": "YulIdentifier", + "src": "15658:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15648:3:23", + "nodeType": "YulIdentifier", + "src": "15648:3:23" + }, + "nativeSrc": "15648:20:23", + "nodeType": "YulFunctionCall", + "src": "15648:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15622:6:23", + "nodeType": "YulIdentifier", + "src": "15622:6:23" + }, + "nativeSrc": "15622:47:23", + "nodeType": "YulFunctionCall", + "src": "15622:47:23" + }, + "nativeSrc": "15622:47:23", + "nodeType": "YulExpressionStatement", + "src": "15622:47:23" + }, + { + "nativeSrc": "15678:139:23", + "nodeType": "YulAssignment", + "src": "15678:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15812:4:23", + "nodeType": "YulIdentifier", + "src": "15812:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf_to_t_string_memory_ptr_fromStack", + "nativeSrc": "15686:124:23", + "nodeType": "YulIdentifier", + "src": "15686:124:23" + }, + "nativeSrc": "15686:131:23", + "nodeType": "YulFunctionCall", + "src": "15686:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15678:4:23", + "nodeType": "YulIdentifier", + "src": "15678:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "15405:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15556:9:23", + "nodeType": "YulTypedName", + "src": "15556:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15571:4:23", + "nodeType": "YulTypedName", + "src": "15571:4:23", + "type": "" + } + ], + "src": "15405:419:23" + }, + { + "body": { + "nativeSrc": "15858:152:23", + "nodeType": "YulBlock", + "src": "15858:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15875:1:23", + "nodeType": "YulLiteral", + "src": "15875:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15878:77:23", + "nodeType": "YulLiteral", + "src": "15878:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15868:6:23", + "nodeType": "YulIdentifier", + "src": "15868:6:23" + }, + "nativeSrc": "15868:88:23", + "nodeType": "YulFunctionCall", + "src": "15868:88:23" + }, + "nativeSrc": "15868:88:23", + "nodeType": "YulExpressionStatement", + "src": "15868:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15972:1:23", + "nodeType": "YulLiteral", + "src": "15972:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "15975:4:23", + "nodeType": "YulLiteral", + "src": "15975:4:23", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15965:6:23", + "nodeType": "YulIdentifier", + "src": "15965:6:23" + }, + "nativeSrc": "15965:15:23", + "nodeType": "YulFunctionCall", + "src": "15965:15:23" + }, + "nativeSrc": "15965:15:23", + "nodeType": "YulExpressionStatement", + "src": "15965:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15996:1:23", + "nodeType": "YulLiteral", + "src": "15996:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15999:4:23", + "nodeType": "YulLiteral", + "src": "15999:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15989:6:23", + "nodeType": "YulIdentifier", + "src": "15989:6:23" + }, + "nativeSrc": "15989:15:23", + "nodeType": "YulFunctionCall", + "src": "15989:15:23" + }, + "nativeSrc": "15989:15:23", + "nodeType": "YulExpressionStatement", + "src": "15989:15:23" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "15830:180:23", + "nodeType": "YulFunctionDefinition", + "src": "15830:180:23" + }, + { + "body": { + "nativeSrc": "16067:269:23", + "nodeType": "YulBlock", + "src": "16067:269:23", + "statements": [ + { + "nativeSrc": "16077:22:23", + "nodeType": "YulAssignment", + "src": "16077:22:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "16091:4:23", + "nodeType": "YulIdentifier", + "src": "16091:4:23" + }, + { + "kind": "number", + "nativeSrc": "16097:1:23", + "nodeType": "YulLiteral", + "src": "16097:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "16087:3:23", + "nodeType": "YulIdentifier", + "src": "16087:3:23" + }, + "nativeSrc": "16087:12:23", + "nodeType": "YulFunctionCall", + "src": "16087:12:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "16077:6:23", + "nodeType": "YulIdentifier", + "src": "16077:6:23" + } + ] + }, + { + "nativeSrc": "16108:38:23", + "nodeType": "YulVariableDeclaration", + "src": "16108:38:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "16138:4:23", + "nodeType": "YulIdentifier", + "src": "16138:4:23" + }, + { + "kind": "number", + "nativeSrc": "16144:1:23", + "nodeType": "YulLiteral", + "src": "16144:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16134:3:23", + "nodeType": "YulIdentifier", + "src": "16134:3:23" + }, + "nativeSrc": "16134:12:23", + "nodeType": "YulFunctionCall", + "src": "16134:12:23" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16112:18:23", + "nodeType": "YulTypedName", + "src": "16112:18:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16185:51:23", + "nodeType": "YulBlock", + "src": "16185:51:23", + "statements": [ + { + "nativeSrc": "16199:27:23", + "nodeType": "YulAssignment", + "src": "16199:27:23", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "16213:6:23", + "nodeType": "YulIdentifier", + "src": "16213:6:23" + }, + { + "kind": "number", + "nativeSrc": "16221:4:23", + "nodeType": "YulLiteral", + "src": "16221:4:23", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16209:3:23", + "nodeType": "YulIdentifier", + "src": "16209:3:23" + }, + "nativeSrc": "16209:17:23", + "nodeType": "YulFunctionCall", + "src": "16209:17:23" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "16199:6:23", + "nodeType": "YulIdentifier", + "src": "16199:6:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16165:18:23", + "nodeType": "YulIdentifier", + "src": "16165:18:23" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16158:6:23", + "nodeType": "YulIdentifier", + "src": "16158:6:23" + }, + "nativeSrc": "16158:26:23", + "nodeType": "YulFunctionCall", + "src": "16158:26:23" + }, + "nativeSrc": "16155:81:23", + "nodeType": "YulIf", + "src": "16155:81:23" + }, + { + "body": { + "nativeSrc": "16288:42:23", + "nodeType": "YulBlock", + "src": "16288:42:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "16302:16:23", + "nodeType": "YulIdentifier", + "src": "16302:16:23" + }, + "nativeSrc": "16302:18:23", + "nodeType": "YulFunctionCall", + "src": "16302:18:23" + }, + "nativeSrc": "16302:18:23", + "nodeType": "YulExpressionStatement", + "src": "16302:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16252:18:23", + "nodeType": "YulIdentifier", + "src": "16252:18:23" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "16275:6:23", + "nodeType": "YulIdentifier", + "src": "16275:6:23" + }, + { + "kind": "number", + "nativeSrc": "16283:2:23", + "nodeType": "YulLiteral", + "src": "16283:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "16272:2:23", + "nodeType": "YulIdentifier", + "src": "16272:2:23" + }, + "nativeSrc": "16272:14:23", + "nodeType": "YulFunctionCall", + "src": "16272:14:23" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "16249:2:23", + "nodeType": "YulIdentifier", + "src": "16249:2:23" + }, + "nativeSrc": "16249:38:23", + "nodeType": "YulFunctionCall", + "src": "16249:38:23" + }, + "nativeSrc": "16246:84:23", + "nodeType": "YulIf", + "src": "16246:84:23" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "16016:320:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "16051:4:23", + "nodeType": "YulTypedName", + "src": "16051:4:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "16060:6:23", + "nodeType": "YulTypedName", + "src": "16060:6:23", + "type": "" + } + ], + "src": "16016:320:23" + }, + { + "body": { + "nativeSrc": "16396:87:23", + "nodeType": "YulBlock", + "src": "16396:87:23", + "statements": [ + { + "nativeSrc": "16406:11:23", + "nodeType": "YulAssignment", + "src": "16406:11:23", + "value": { + "name": "ptr", + "nativeSrc": "16414:3:23", + "nodeType": "YulIdentifier", + "src": "16414:3:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "16406:4:23", + "nodeType": "YulIdentifier", + "src": "16406:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16434:1:23", + "nodeType": "YulLiteral", + "src": "16434:1:23", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "16437:3:23", + "nodeType": "YulIdentifier", + "src": "16437:3:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16427:6:23", + "nodeType": "YulIdentifier", + "src": "16427:6:23" + }, + "nativeSrc": "16427:14:23", + "nodeType": "YulFunctionCall", + "src": "16427:14:23" + }, + "nativeSrc": "16427:14:23", + "nodeType": "YulExpressionStatement", + "src": "16427:14:23" + }, + { + "nativeSrc": "16450:26:23", + "nodeType": "YulAssignment", + "src": "16450:26:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16468:1:23", + "nodeType": "YulLiteral", + "src": "16468:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16471:4:23", + "nodeType": "YulLiteral", + "src": "16471:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "16458:9:23", + "nodeType": "YulIdentifier", + "src": "16458:9:23" + }, + "nativeSrc": "16458:18:23", + "nodeType": "YulFunctionCall", + "src": "16458:18:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "16450:4:23", + "nodeType": "YulIdentifier", + "src": "16450:4:23" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "16342:141:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "16383:3:23", + "nodeType": "YulTypedName", + "src": "16383:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "16391:4:23", + "nodeType": "YulTypedName", + "src": "16391:4:23", + "type": "" + } + ], + "src": "16342:141:23" + }, + { + "body": { + "nativeSrc": "16533:49:23", + "nodeType": "YulBlock", + "src": "16533:49:23", + "statements": [ + { + "nativeSrc": "16543:33:23", + "nodeType": "YulAssignment", + "src": "16543:33:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "16561:5:23", + "nodeType": "YulIdentifier", + "src": "16561:5:23" + }, + { + "kind": "number", + "nativeSrc": "16568:2:23", + "nodeType": "YulLiteral", + "src": "16568:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16557:3:23", + "nodeType": "YulIdentifier", + "src": "16557:3:23" + }, + "nativeSrc": "16557:14:23", + "nodeType": "YulFunctionCall", + "src": "16557:14:23" + }, + { + "kind": "number", + "nativeSrc": "16573:2:23", + "nodeType": "YulLiteral", + "src": "16573:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "16553:3:23", + "nodeType": "YulIdentifier", + "src": "16553:3:23" + }, + "nativeSrc": "16553:23:23", + "nodeType": "YulFunctionCall", + "src": "16553:23:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "16543:6:23", + "nodeType": "YulIdentifier", + "src": "16543:6:23" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "16489:93:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16516:5:23", + "nodeType": "YulTypedName", + "src": "16516:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "16526:6:23", + "nodeType": "YulTypedName", + "src": "16526:6:23", + "type": "" + } + ], + "src": "16489:93:23" + }, + { + "body": { + "nativeSrc": "16641:54:23", + "nodeType": "YulBlock", + "src": "16641:54:23", + "statements": [ + { + "nativeSrc": "16651:37:23", + "nodeType": "YulAssignment", + "src": "16651:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "16676:4:23", + "nodeType": "YulIdentifier", + "src": "16676:4:23" + }, + { + "name": "value", + "nativeSrc": "16682:5:23", + "nodeType": "YulIdentifier", + "src": "16682:5:23" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16672:3:23", + "nodeType": "YulIdentifier", + "src": "16672:3:23" + }, + "nativeSrc": "16672:16:23", + "nodeType": "YulFunctionCall", + "src": "16672:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "16651:8:23", + "nodeType": "YulIdentifier", + "src": "16651:8:23" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "16588:107:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "16616:4:23", + "nodeType": "YulTypedName", + "src": "16616:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "16622:5:23", + "nodeType": "YulTypedName", + "src": "16622:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "16632:8:23", + "nodeType": "YulTypedName", + "src": "16632:8:23", + "type": "" + } + ], + "src": "16588:107:23" + }, + { + "body": { + "nativeSrc": "16777:317:23", + "nodeType": "YulBlock", + "src": "16777:317:23", + "statements": [ + { + "nativeSrc": "16787:35:23", + "nodeType": "YulVariableDeclaration", + "src": "16787:35:23", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "16808:10:23", + "nodeType": "YulIdentifier", + "src": "16808:10:23" + }, + { + "kind": "number", + "nativeSrc": "16820:1:23", + "nodeType": "YulLiteral", + "src": "16820:1:23", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "16804:3:23", + "nodeType": "YulIdentifier", + "src": "16804:3:23" + }, + "nativeSrc": "16804:18:23", + "nodeType": "YulFunctionCall", + "src": "16804:18:23" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "16791:9:23", + "nodeType": "YulTypedName", + "src": "16791:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "16831:109:23", + "nodeType": "YulVariableDeclaration", + "src": "16831:109:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16862:9:23", + "nodeType": "YulIdentifier", + "src": "16862:9:23" + }, + { + "kind": "number", + "nativeSrc": "16873:66:23", + "nodeType": "YulLiteral", + "src": "16873:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16843:18:23", + "nodeType": "YulIdentifier", + "src": "16843:18:23" + }, + "nativeSrc": "16843:97:23", + "nodeType": "YulFunctionCall", + "src": "16843:97:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "16835:4:23", + "nodeType": "YulTypedName", + "src": "16835:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "16949:51:23", + "nodeType": "YulAssignment", + "src": "16949:51:23", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16980:9:23", + "nodeType": "YulIdentifier", + "src": "16980:9:23" + }, + { + "name": "toInsert", + "nativeSrc": "16991:8:23", + "nodeType": "YulIdentifier", + "src": "16991:8:23" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16961:18:23", + "nodeType": "YulIdentifier", + "src": "16961:18:23" + }, + "nativeSrc": "16961:39:23", + "nodeType": "YulFunctionCall", + "src": "16961:39:23" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "16949:8:23", + "nodeType": "YulIdentifier", + "src": "16949:8:23" + } + ] + }, + { + "nativeSrc": "17009:30:23", + "nodeType": "YulAssignment", + "src": "17009:30:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17022:5:23", + "nodeType": "YulIdentifier", + "src": "17022:5:23" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "17033:4:23", + "nodeType": "YulIdentifier", + "src": "17033:4:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "17029:3:23", + "nodeType": "YulIdentifier", + "src": "17029:3:23" + }, + "nativeSrc": "17029:9:23", + "nodeType": "YulFunctionCall", + "src": "17029:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17018:3:23", + "nodeType": "YulIdentifier", + "src": "17018:3:23" + }, + "nativeSrc": "17018:21:23", + "nodeType": "YulFunctionCall", + "src": "17018:21:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17009:5:23", + "nodeType": "YulIdentifier", + "src": "17009:5:23" + } + ] + }, + { + "nativeSrc": "17048:40:23", + "nodeType": "YulAssignment", + "src": "17048:40:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17061:5:23", + "nodeType": "YulIdentifier", + "src": "17061:5:23" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "17072:8:23", + "nodeType": "YulIdentifier", + "src": "17072:8:23" + }, + { + "name": "mask", + "nativeSrc": "17082:4:23", + "nodeType": "YulIdentifier", + "src": "17082:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17068:3:23", + "nodeType": "YulIdentifier", + "src": "17068:3:23" + }, + "nativeSrc": "17068:19:23", + "nodeType": "YulFunctionCall", + "src": "17068:19:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "17058:2:23", + "nodeType": "YulIdentifier", + "src": "17058:2:23" + }, + "nativeSrc": "17058:30:23", + "nodeType": "YulFunctionCall", + "src": "17058:30:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "17048:6:23", + "nodeType": "YulIdentifier", + "src": "17048:6:23" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "16701:393:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16738:5:23", + "nodeType": "YulTypedName", + "src": "16738:5:23", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "16745:10:23", + "nodeType": "YulTypedName", + "src": "16745:10:23", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "16757:8:23", + "nodeType": "YulTypedName", + "src": "16757:8:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "16770:6:23", + "nodeType": "YulTypedName", + "src": "16770:6:23", + "type": "" + } + ], + "src": "16701:393:23" + }, + { + "body": { + "nativeSrc": "17132:28:23", + "nodeType": "YulBlock", + "src": "17132:28:23", + "statements": [ + { + "nativeSrc": "17142:12:23", + "nodeType": "YulAssignment", + "src": "17142:12:23", + "value": { + "name": "value", + "nativeSrc": "17149:5:23", + "nodeType": "YulIdentifier", + "src": "17149:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "17142:3:23", + "nodeType": "YulIdentifier", + "src": "17142:3:23" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "17100:60:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17118:5:23", + "nodeType": "YulTypedName", + "src": "17118:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "17128:3:23", + "nodeType": "YulTypedName", + "src": "17128:3:23", + "type": "" + } + ], + "src": "17100:60:23" + }, + { + "body": { + "nativeSrc": "17226:82:23", + "nodeType": "YulBlock", + "src": "17226:82:23", + "statements": [ + { + "nativeSrc": "17236:66:23", + "nodeType": "YulAssignment", + "src": "17236:66:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17294:5:23", + "nodeType": "YulIdentifier", + "src": "17294:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "17276:17:23", + "nodeType": "YulIdentifier", + "src": "17276:17:23" + }, + "nativeSrc": "17276:24:23", + "nodeType": "YulFunctionCall", + "src": "17276:24:23" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "17267:8:23", + "nodeType": "YulIdentifier", + "src": "17267:8:23" + }, + "nativeSrc": "17267:34:23", + "nodeType": "YulFunctionCall", + "src": "17267:34:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "17249:17:23", + "nodeType": "YulIdentifier", + "src": "17249:17:23" + }, + "nativeSrc": "17249:53:23", + "nodeType": "YulFunctionCall", + "src": "17249:53:23" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "17236:9:23", + "nodeType": "YulIdentifier", + "src": "17236:9:23" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "17166:142:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17206:5:23", + "nodeType": "YulTypedName", + "src": "17206:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "17216:9:23", + "nodeType": "YulTypedName", + "src": "17216:9:23", + "type": "" + } + ], + "src": "17166:142:23" + }, + { + "body": { + "nativeSrc": "17361:28:23", + "nodeType": "YulBlock", + "src": "17361:28:23", + "statements": [ + { + "nativeSrc": "17371:12:23", + "nodeType": "YulAssignment", + "src": "17371:12:23", + "value": { + "name": "value", + "nativeSrc": "17378:5:23", + "nodeType": "YulIdentifier", + "src": "17378:5:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "17371:3:23", + "nodeType": "YulIdentifier", + "src": "17371:3:23" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "17314:75:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17347:5:23", + "nodeType": "YulTypedName", + "src": "17347:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "17357:3:23", + "nodeType": "YulTypedName", + "src": "17357:3:23", + "type": "" + } + ], + "src": "17314:75:23" + }, + { + "body": { + "nativeSrc": "17471:193:23", + "nodeType": "YulBlock", + "src": "17471:193:23", + "statements": [ + { + "nativeSrc": "17481:63:23", + "nodeType": "YulVariableDeclaration", + "src": "17481:63:23", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "17536:7:23", + "nodeType": "YulIdentifier", + "src": "17536:7:23" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "17505:30:23", + "nodeType": "YulIdentifier", + "src": "17505:30:23" + }, + "nativeSrc": "17505:39:23", + "nodeType": "YulFunctionCall", + "src": "17505:39:23" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "17485:16:23", + "nodeType": "YulTypedName", + "src": "17485:16:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17560:4:23", + "nodeType": "YulIdentifier", + "src": "17560:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17600:4:23", + "nodeType": "YulIdentifier", + "src": "17600:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "17594:5:23", + "nodeType": "YulIdentifier", + "src": "17594:5:23" + }, + "nativeSrc": "17594:11:23", + "nodeType": "YulFunctionCall", + "src": "17594:11:23" + }, + { + "name": "offset", + "nativeSrc": "17607:6:23", + "nodeType": "YulIdentifier", + "src": "17607:6:23" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "17639:16:23", + "nodeType": "YulIdentifier", + "src": "17639:16:23" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "17615:23:23", + "nodeType": "YulIdentifier", + "src": "17615:23:23" + }, + "nativeSrc": "17615:41:23", + "nodeType": "YulFunctionCall", + "src": "17615:41:23" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "17566:27:23", + "nodeType": "YulIdentifier", + "src": "17566:27:23" + }, + "nativeSrc": "17566:91:23", + "nodeType": "YulFunctionCall", + "src": "17566:91:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "17553:6:23", + "nodeType": "YulIdentifier", + "src": "17553:6:23" + }, + "nativeSrc": "17553:105:23", + "nodeType": "YulFunctionCall", + "src": "17553:105:23" + }, + "nativeSrc": "17553:105:23", + "nodeType": "YulExpressionStatement", + "src": "17553:105:23" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "17395:269:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "17448:4:23", + "nodeType": "YulTypedName", + "src": "17448:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "17454:6:23", + "nodeType": "YulTypedName", + "src": "17454:6:23", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "17462:7:23", + "nodeType": "YulTypedName", + "src": "17462:7:23", + "type": "" + } + ], + "src": "17395:269:23" + }, + { + "body": { + "nativeSrc": "17719:24:23", + "nodeType": "YulBlock", + "src": "17719:24:23", + "statements": [ + { + "nativeSrc": "17729:8:23", + "nodeType": "YulAssignment", + "src": "17729:8:23", + "value": { + "kind": "number", + "nativeSrc": "17736:1:23", + "nodeType": "YulLiteral", + "src": "17736:1:23", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "17729:3:23", + "nodeType": "YulIdentifier", + "src": "17729:3:23" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "17670:73:23", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "17715:3:23", + "nodeType": "YulTypedName", + "src": "17715:3:23", + "type": "" + } + ], + "src": "17670:73:23" + }, + { + "body": { + "nativeSrc": "17802:136:23", + "nodeType": "YulBlock", + "src": "17802:136:23", + "statements": [ + { + "nativeSrc": "17812:46:23", + "nodeType": "YulVariableDeclaration", + "src": "17812:46:23", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "17826:30:23", + "nodeType": "YulIdentifier", + "src": "17826:30:23" + }, + "nativeSrc": "17826:32:23", + "nodeType": "YulFunctionCall", + "src": "17826:32:23" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "17816:6:23", + "nodeType": "YulTypedName", + "src": "17816:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17911:4:23", + "nodeType": "YulIdentifier", + "src": "17911:4:23" + }, + { + "name": "offset", + "nativeSrc": "17917:6:23", + "nodeType": "YulIdentifier", + "src": "17917:6:23" + }, + { + "name": "zero_0", + "nativeSrc": "17925:6:23", + "nodeType": "YulIdentifier", + "src": "17925:6:23" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "17867:43:23", + "nodeType": "YulIdentifier", + "src": "17867:43:23" + }, + "nativeSrc": "17867:65:23", + "nodeType": "YulFunctionCall", + "src": "17867:65:23" + }, + "nativeSrc": "17867:65:23", + "nodeType": "YulExpressionStatement", + "src": "17867:65:23" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "17749:189:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "17788:4:23", + "nodeType": "YulTypedName", + "src": "17788:4:23", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "17794:6:23", + "nodeType": "YulTypedName", + "src": "17794:6:23", + "type": "" + } + ], + "src": "17749:189:23" + }, + { + "body": { + "nativeSrc": "17994:136:23", + "nodeType": "YulBlock", + "src": "17994:136:23", + "statements": [ + { + "body": { + "nativeSrc": "18061:63:23", + "nodeType": "YulBlock", + "src": "18061:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18105:5:23", + "nodeType": "YulIdentifier", + "src": "18105:5:23" + }, + { + "kind": "number", + "nativeSrc": "18112:1:23", + "nodeType": "YulLiteral", + "src": "18112:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "18075:29:23", + "nodeType": "YulIdentifier", + "src": "18075:29:23" + }, + "nativeSrc": "18075:39:23", + "nodeType": "YulFunctionCall", + "src": "18075:39:23" + }, + "nativeSrc": "18075:39:23", + "nodeType": "YulExpressionStatement", + "src": "18075:39:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18014:5:23", + "nodeType": "YulIdentifier", + "src": "18014:5:23" + }, + { + "name": "end", + "nativeSrc": "18021:3:23", + "nodeType": "YulIdentifier", + "src": "18021:3:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18011:2:23", + "nodeType": "YulIdentifier", + "src": "18011:2:23" + }, + "nativeSrc": "18011:14:23", + "nodeType": "YulFunctionCall", + "src": "18011:14:23" + }, + "nativeSrc": "18004:120:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "18026:26:23", + "nodeType": "YulBlock", + "src": "18026:26:23", + "statements": [ + { + "nativeSrc": "18028:22:23", + "nodeType": "YulAssignment", + "src": "18028:22:23", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18041:5:23", + "nodeType": "YulIdentifier", + "src": "18041:5:23" + }, + { + "kind": "number", + "nativeSrc": "18048:1:23", + "nodeType": "YulLiteral", + "src": "18048:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18037:3:23", + "nodeType": "YulIdentifier", + "src": "18037:3:23" + }, + "nativeSrc": "18037:13:23", + "nodeType": "YulFunctionCall", + "src": "18037:13:23" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "18028:5:23", + "nodeType": "YulIdentifier", + "src": "18028:5:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "18008:2:23", + "nodeType": "YulBlock", + "src": "18008:2:23", + "statements": [] + }, + "src": "18004:120:23" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "17944:186:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "17982:5:23", + "nodeType": "YulTypedName", + "src": "17982:5:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17989:3:23", + "nodeType": "YulTypedName", + "src": "17989:3:23", + "type": "" + } + ], + "src": "17944:186:23" + }, + { + "body": { + "nativeSrc": "18215:464:23", + "nodeType": "YulBlock", + "src": "18215:464:23", + "statements": [ + { + "body": { + "nativeSrc": "18241:431:23", + "nodeType": "YulBlock", + "src": "18241:431:23", + "statements": [ + { + "nativeSrc": "18255:54:23", + "nodeType": "YulVariableDeclaration", + "src": "18255:54:23", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "18303:5:23", + "nodeType": "YulIdentifier", + "src": "18303:5:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "18271:31:23", + "nodeType": "YulIdentifier", + "src": "18271:31:23" + }, + "nativeSrc": "18271:38:23", + "nodeType": "YulFunctionCall", + "src": "18271:38:23" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "18259:8:23", + "nodeType": "YulTypedName", + "src": "18259:8:23", + "type": "" + } + ] + }, + { + "nativeSrc": "18322:63:23", + "nodeType": "YulVariableDeclaration", + "src": "18322:63:23", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "18345:8:23", + "nodeType": "YulIdentifier", + "src": "18345:8:23" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "18373:10:23", + "nodeType": "YulIdentifier", + "src": "18373:10:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "18355:17:23", + "nodeType": "YulIdentifier", + "src": "18355:17:23" + }, + "nativeSrc": "18355:29:23", + "nodeType": "YulFunctionCall", + "src": "18355:29:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18341:3:23", + "nodeType": "YulIdentifier", + "src": "18341:3:23" + }, + "nativeSrc": "18341:44:23", + "nodeType": "YulFunctionCall", + "src": "18341:44:23" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "18326:11:23", + "nodeType": "YulTypedName", + "src": "18326:11:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18542:27:23", + "nodeType": "YulBlock", + "src": "18542:27:23", + "statements": [ + { + "nativeSrc": "18544:23:23", + "nodeType": "YulAssignment", + "src": "18544:23:23", + "value": { + "name": "dataArea", + "nativeSrc": "18559:8:23", + "nodeType": "YulIdentifier", + "src": "18559:8:23" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "18544:11:23", + "nodeType": "YulIdentifier", + "src": "18544:11:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "18526:10:23", + "nodeType": "YulIdentifier", + "src": "18526:10:23" + }, + { + "kind": "number", + "nativeSrc": "18538:2:23", + "nodeType": "YulLiteral", + "src": "18538:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18523:2:23", + "nodeType": "YulIdentifier", + "src": "18523:2:23" + }, + "nativeSrc": "18523:18:23", + "nodeType": "YulFunctionCall", + "src": "18523:18:23" + }, + "nativeSrc": "18520:49:23", + "nodeType": "YulIf", + "src": "18520:49:23" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "18611:11:23", + "nodeType": "YulIdentifier", + "src": "18611:11:23" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "18628:8:23", + "nodeType": "YulIdentifier", + "src": "18628:8:23" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "18656:3:23", + "nodeType": "YulIdentifier", + "src": "18656:3:23" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "18638:17:23", + "nodeType": "YulIdentifier", + "src": "18638:17:23" + }, + "nativeSrc": "18638:22:23", + "nodeType": "YulFunctionCall", + "src": "18638:22:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18624:3:23", + "nodeType": "YulIdentifier", + "src": "18624:3:23" + }, + "nativeSrc": "18624:37:23", + "nodeType": "YulFunctionCall", + "src": "18624:37:23" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "18582:28:23", + "nodeType": "YulIdentifier", + "src": "18582:28:23" + }, + "nativeSrc": "18582:80:23", + "nodeType": "YulFunctionCall", + "src": "18582:80:23" + }, + "nativeSrc": "18582:80:23", + "nodeType": "YulExpressionStatement", + "src": "18582:80:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "18232:3:23", + "nodeType": "YulIdentifier", + "src": "18232:3:23" + }, + { + "kind": "number", + "nativeSrc": "18237:2:23", + "nodeType": "YulLiteral", + "src": "18237:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18229:2:23", + "nodeType": "YulIdentifier", + "src": "18229:2:23" + }, + "nativeSrc": "18229:11:23", + "nodeType": "YulFunctionCall", + "src": "18229:11:23" + }, + "nativeSrc": "18226:446:23", + "nodeType": "YulIf", + "src": "18226:446:23" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "18136:543:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "18191:5:23", + "nodeType": "YulTypedName", + "src": "18191:5:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "18198:3:23", + "nodeType": "YulTypedName", + "src": "18198:3:23", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "18203:10:23", + "nodeType": "YulTypedName", + "src": "18203:10:23", + "type": "" + } + ], + "src": "18136:543:23" + }, + { + "body": { + "nativeSrc": "18748:54:23", + "nodeType": "YulBlock", + "src": "18748:54:23", + "statements": [ + { + "nativeSrc": "18758:37:23", + "nodeType": "YulAssignment", + "src": "18758:37:23", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "18783:4:23", + "nodeType": "YulIdentifier", + "src": "18783:4:23" + }, + { + "name": "value", + "nativeSrc": "18789:5:23", + "nodeType": "YulIdentifier", + "src": "18789:5:23" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18779:3:23", + "nodeType": "YulIdentifier", + "src": "18779:3:23" + }, + "nativeSrc": "18779:16:23", + "nodeType": "YulFunctionCall", + "src": "18779:16:23" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "18758:8:23", + "nodeType": "YulIdentifier", + "src": "18758:8:23" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18685:117:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "18723:4:23", + "nodeType": "YulTypedName", + "src": "18723:4:23", + "type": "" + }, + { + "name": "value", + "nativeSrc": "18729:5:23", + "nodeType": "YulTypedName", + "src": "18729:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "18739:8:23", + "nodeType": "YulTypedName", + "src": "18739:8:23", + "type": "" + } + ], + "src": "18685:117:23" + }, + { + "body": { + "nativeSrc": "18859:118:23", + "nodeType": "YulBlock", + "src": "18859:118:23", + "statements": [ + { + "nativeSrc": "18869:68:23", + "nodeType": "YulVariableDeclaration", + "src": "18869:68:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18918:1:23", + "nodeType": "YulLiteral", + "src": "18918:1:23", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "18921:5:23", + "nodeType": "YulIdentifier", + "src": "18921:5:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "18914:3:23", + "nodeType": "YulIdentifier", + "src": "18914:3:23" + }, + "nativeSrc": "18914:13:23", + "nodeType": "YulFunctionCall", + "src": "18914:13:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18933:1:23", + "nodeType": "YulLiteral", + "src": "18933:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18929:3:23", + "nodeType": "YulIdentifier", + "src": "18929:3:23" + }, + "nativeSrc": "18929:6:23", + "nodeType": "YulFunctionCall", + "src": "18929:6:23" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18885:28:23", + "nodeType": "YulIdentifier", + "src": "18885:28:23" + }, + "nativeSrc": "18885:51:23", + "nodeType": "YulFunctionCall", + "src": "18885:51:23" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18881:3:23", + "nodeType": "YulIdentifier", + "src": "18881:3:23" + }, + "nativeSrc": "18881:56:23", + "nodeType": "YulFunctionCall", + "src": "18881:56:23" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "18873:4:23", + "nodeType": "YulTypedName", + "src": "18873:4:23", + "type": "" + } + ] + }, + { + "nativeSrc": "18946:25:23", + "nodeType": "YulAssignment", + "src": "18946:25:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18960:4:23", + "nodeType": "YulIdentifier", + "src": "18960:4:23" + }, + { + "name": "mask", + "nativeSrc": "18966:4:23", + "nodeType": "YulIdentifier", + "src": "18966:4:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18956:3:23", + "nodeType": "YulIdentifier", + "src": "18956:3:23" + }, + "nativeSrc": "18956:15:23", + "nodeType": "YulFunctionCall", + "src": "18956:15:23" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18946:6:23", + "nodeType": "YulIdentifier", + "src": "18946:6:23" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "18808:169:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18836:4:23", + "nodeType": "YulTypedName", + "src": "18836:4:23", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "18842:5:23", + "nodeType": "YulTypedName", + "src": "18842:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "18852:6:23", + "nodeType": "YulTypedName", + "src": "18852:6:23", + "type": "" + } + ], + "src": "18808:169:23" + }, + { + "body": { + "nativeSrc": "19063:214:23", + "nodeType": "YulBlock", + "src": "19063:214:23", + "statements": [ + { + "nativeSrc": "19196:37:23", + "nodeType": "YulAssignment", + "src": "19196:37:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "19223:4:23", + "nodeType": "YulIdentifier", + "src": "19223:4:23" + }, + { + "name": "len", + "nativeSrc": "19229:3:23", + "nodeType": "YulIdentifier", + "src": "19229:3:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "19204:18:23", + "nodeType": "YulIdentifier", + "src": "19204:18:23" + }, + "nativeSrc": "19204:29:23", + "nodeType": "YulFunctionCall", + "src": "19204:29:23" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "19196:4:23", + "nodeType": "YulIdentifier", + "src": "19196:4:23" + } + ] + }, + { + "nativeSrc": "19242:29:23", + "nodeType": "YulAssignment", + "src": "19242:29:23", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "19253:4:23", + "nodeType": "YulIdentifier", + "src": "19253:4:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19263:1:23", + "nodeType": "YulLiteral", + "src": "19263:1:23", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "19266:3:23", + "nodeType": "YulIdentifier", + "src": "19266:3:23" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19259:3:23", + "nodeType": "YulIdentifier", + "src": "19259:3:23" + }, + "nativeSrc": "19259:11:23", + "nodeType": "YulFunctionCall", + "src": "19259:11:23" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "19250:2:23", + "nodeType": "YulIdentifier", + "src": "19250:2:23" + }, + "nativeSrc": "19250:21:23", + "nodeType": "YulFunctionCall", + "src": "19250:21:23" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "19242:4:23", + "nodeType": "YulIdentifier", + "src": "19242:4:23" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "18982:295:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "19044:4:23", + "nodeType": "YulTypedName", + "src": "19044:4:23", + "type": "" + }, + { + "name": "len", + "nativeSrc": "19050:3:23", + "nodeType": "YulTypedName", + "src": "19050:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "19058:4:23", + "nodeType": "YulTypedName", + "src": "19058:4:23", + "type": "" + } + ], + "src": "18982:295:23" + }, + { + "body": { + "nativeSrc": "19374:1303:23", + "nodeType": "YulBlock", + "src": "19374:1303:23", + "statements": [ + { + "nativeSrc": "19385:51:23", + "nodeType": "YulVariableDeclaration", + "src": "19385:51:23", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "19432:3:23", + "nodeType": "YulIdentifier", + "src": "19432:3:23" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "19399:32:23", + "nodeType": "YulIdentifier", + "src": "19399:32:23" + }, + "nativeSrc": "19399:37:23", + "nodeType": "YulFunctionCall", + "src": "19399:37:23" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "19389:6:23", + "nodeType": "YulTypedName", + "src": "19389:6:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19521:22:23", + "nodeType": "YulBlock", + "src": "19521:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "19523:16:23", + "nodeType": "YulIdentifier", + "src": "19523:16:23" + }, + "nativeSrc": "19523:18:23", + "nodeType": "YulFunctionCall", + "src": "19523:18:23" + }, + "nativeSrc": "19523:18:23", + "nodeType": "YulExpressionStatement", + "src": "19523:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19493:6:23", + "nodeType": "YulIdentifier", + "src": "19493:6:23" + }, + { + "kind": "number", + "nativeSrc": "19501:18:23", + "nodeType": "YulLiteral", + "src": "19501:18:23", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19490:2:23", + "nodeType": "YulIdentifier", + "src": "19490:2:23" + }, + "nativeSrc": "19490:30:23", + "nodeType": "YulFunctionCall", + "src": "19490:30:23" + }, + "nativeSrc": "19487:56:23", + "nodeType": "YulIf", + "src": "19487:56:23" + }, + { + "nativeSrc": "19553:52:23", + "nodeType": "YulVariableDeclaration", + "src": "19553:52:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19599:4:23", + "nodeType": "YulIdentifier", + "src": "19599:4:23" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "19593:5:23", + "nodeType": "YulIdentifier", + "src": "19593:5:23" + }, + "nativeSrc": "19593:11:23", + "nodeType": "YulFunctionCall", + "src": "19593:11:23" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "19567:25:23", + "nodeType": "YulIdentifier", + "src": "19567:25:23" + }, + "nativeSrc": "19567:38:23", + "nodeType": "YulFunctionCall", + "src": "19567:38:23" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "19557:6:23", + "nodeType": "YulTypedName", + "src": "19557:6:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19698:4:23", + "nodeType": "YulIdentifier", + "src": "19698:4:23" + }, + { + "name": "oldLen", + "nativeSrc": "19704:6:23", + "nodeType": "YulIdentifier", + "src": "19704:6:23" + }, + { + "name": "newLen", + "nativeSrc": "19712:6:23", + "nodeType": "YulIdentifier", + "src": "19712:6:23" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "19652:45:23", + "nodeType": "YulIdentifier", + "src": "19652:45:23" + }, + "nativeSrc": "19652:67:23", + "nodeType": "YulFunctionCall", + "src": "19652:67:23" + }, + "nativeSrc": "19652:67:23", + "nodeType": "YulExpressionStatement", + "src": "19652:67:23" + }, + { + "nativeSrc": "19729:18:23", + "nodeType": "YulVariableDeclaration", + "src": "19729:18:23", + "value": { + "kind": "number", + "nativeSrc": "19746:1:23", + "nodeType": "YulLiteral", + "src": "19746:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "19733:9:23", + "nodeType": "YulTypedName", + "src": "19733:9:23", + "type": "" + } + ] + }, + { + "nativeSrc": "19757:17:23", + "nodeType": "YulAssignment", + "src": "19757:17:23", + "value": { + "kind": "number", + "nativeSrc": "19770:4:23", + "nodeType": "YulLiteral", + "src": "19770:4:23", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19757:9:23", + "nodeType": "YulIdentifier", + "src": "19757:9:23" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "19821:611:23", + "nodeType": "YulBlock", + "src": "19821:611:23", + "statements": [ + { + "nativeSrc": "19835:37:23", + "nodeType": "YulVariableDeclaration", + "src": "19835:37:23", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19854:6:23", + "nodeType": "YulIdentifier", + "src": "19854:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19866:4:23", + "nodeType": "YulLiteral", + "src": "19866:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19862:3:23", + "nodeType": "YulIdentifier", + "src": "19862:3:23" + }, + "nativeSrc": "19862:9:23", + "nodeType": "YulFunctionCall", + "src": "19862:9:23" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19850:3:23", + "nodeType": "YulIdentifier", + "src": "19850:3:23" + }, + "nativeSrc": "19850:22:23", + "nodeType": "YulFunctionCall", + "src": "19850:22:23" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "19839:7:23", + "nodeType": "YulTypedName", + "src": "19839:7:23", + "type": "" + } + ] + }, + { + "nativeSrc": "19886:51:23", + "nodeType": "YulVariableDeclaration", + "src": "19886:51:23", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19932:4:23", + "nodeType": "YulIdentifier", + "src": "19932:4:23" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "19900:31:23", + "nodeType": "YulIdentifier", + "src": "19900:31:23" + }, + "nativeSrc": "19900:37:23", + "nodeType": "YulFunctionCall", + "src": "19900:37:23" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "19890:6:23", + "nodeType": "YulTypedName", + "src": "19890:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "19950:10:23", + "nodeType": "YulVariableDeclaration", + "src": "19950:10:23", + "value": { + "kind": "number", + "nativeSrc": "19959:1:23", + "nodeType": "YulLiteral", + "src": "19959:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "19954:1:23", + "nodeType": "YulTypedName", + "src": "19954:1:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20018:163:23", + "nodeType": "YulBlock", + "src": "20018:163:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "20043:6:23", + "nodeType": "YulIdentifier", + "src": "20043:6:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "20061:3:23", + "nodeType": "YulIdentifier", + "src": "20061:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "20066:9:23", + "nodeType": "YulIdentifier", + "src": "20066:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20057:3:23", + "nodeType": "YulIdentifier", + "src": "20057:3:23" + }, + "nativeSrc": "20057:19:23", + "nodeType": "YulFunctionCall", + "src": "20057:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20051:5:23", + "nodeType": "YulIdentifier", + "src": "20051:5:23" + }, + "nativeSrc": "20051:26:23", + "nodeType": "YulFunctionCall", + "src": "20051:26:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "20036:6:23", + "nodeType": "YulIdentifier", + "src": "20036:6:23" + }, + "nativeSrc": "20036:42:23", + "nodeType": "YulFunctionCall", + "src": "20036:42:23" + }, + "nativeSrc": "20036:42:23", + "nodeType": "YulExpressionStatement", + "src": "20036:42:23" + }, + { + "nativeSrc": "20095:24:23", + "nodeType": "YulAssignment", + "src": "20095:24:23", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "20109:6:23", + "nodeType": "YulIdentifier", + "src": "20109:6:23" + }, + { + "kind": "number", + "nativeSrc": "20117:1:23", + "nodeType": "YulLiteral", + "src": "20117:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20105:3:23", + "nodeType": "YulIdentifier", + "src": "20105:3:23" + }, + "nativeSrc": "20105:14:23", + "nodeType": "YulFunctionCall", + "src": "20105:14:23" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "20095:6:23", + "nodeType": "YulIdentifier", + "src": "20095:6:23" + } + ] + }, + { + "nativeSrc": "20136:31:23", + "nodeType": "YulAssignment", + "src": "20136:31:23", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "20153:9:23", + "nodeType": "YulIdentifier", + "src": "20153:9:23" + }, + { + "kind": "number", + "nativeSrc": "20164:2:23", + "nodeType": "YulLiteral", + "src": "20164:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20149:3:23", + "nodeType": "YulIdentifier", + "src": "20149:3:23" + }, + "nativeSrc": "20149:18:23", + "nodeType": "YulFunctionCall", + "src": "20149:18:23" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "20136:9:23", + "nodeType": "YulIdentifier", + "src": "20136:9:23" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "19984:1:23", + "nodeType": "YulIdentifier", + "src": "19984:1:23" + }, + { + "name": "loopEnd", + "nativeSrc": "19987:7:23", + "nodeType": "YulIdentifier", + "src": "19987:7:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19981:2:23", + "nodeType": "YulIdentifier", + "src": "19981:2:23" + }, + "nativeSrc": "19981:14:23", + "nodeType": "YulFunctionCall", + "src": "19981:14:23" + }, + "nativeSrc": "19973:208:23", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "19996:21:23", + "nodeType": "YulBlock", + "src": "19996:21:23", + "statements": [ + { + "nativeSrc": "19998:17:23", + "nodeType": "YulAssignment", + "src": "19998:17:23", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "20007:1:23", + "nodeType": "YulIdentifier", + "src": "20007:1:23" + }, + { + "kind": "number", + "nativeSrc": "20010:4:23", + "nodeType": "YulLiteral", + "src": "20010:4:23", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20003:3:23", + "nodeType": "YulIdentifier", + "src": "20003:3:23" + }, + "nativeSrc": "20003:12:23", + "nodeType": "YulFunctionCall", + "src": "20003:12:23" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "19998:1:23", + "nodeType": "YulIdentifier", + "src": "19998:1:23" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "19977:3:23", + "nodeType": "YulBlock", + "src": "19977:3:23", + "statements": [] + }, + "src": "19973:208:23" + }, + { + "body": { + "nativeSrc": "20217:156:23", + "nodeType": "YulBlock", + "src": "20217:156:23", + "statements": [ + { + "nativeSrc": "20235:43:23", + "nodeType": "YulVariableDeclaration", + "src": "20235:43:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "20262:3:23", + "nodeType": "YulIdentifier", + "src": "20262:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "20267:9:23", + "nodeType": "YulIdentifier", + "src": "20267:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20258:3:23", + "nodeType": "YulIdentifier", + "src": "20258:3:23" + }, + "nativeSrc": "20258:19:23", + "nodeType": "YulFunctionCall", + "src": "20258:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20252:5:23", + "nodeType": "YulIdentifier", + "src": "20252:5:23" + }, + "nativeSrc": "20252:26:23", + "nodeType": "YulFunctionCall", + "src": "20252:26:23" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "20239:9:23", + "nodeType": "YulTypedName", + "src": "20239:9:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "20302:6:23", + "nodeType": "YulIdentifier", + "src": "20302:6:23" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "20329:9:23", + "nodeType": "YulIdentifier", + "src": "20329:9:23" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20344:6:23", + "nodeType": "YulIdentifier", + "src": "20344:6:23" + }, + { + "kind": "number", + "nativeSrc": "20352:4:23", + "nodeType": "YulLiteral", + "src": "20352:4:23", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20340:3:23", + "nodeType": "YulIdentifier", + "src": "20340:3:23" + }, + "nativeSrc": "20340:17:23", + "nodeType": "YulFunctionCall", + "src": "20340:17:23" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "20310:18:23", + "nodeType": "YulIdentifier", + "src": "20310:18:23" + }, + "nativeSrc": "20310:48:23", + "nodeType": "YulFunctionCall", + "src": "20310:48:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "20295:6:23", + "nodeType": "YulIdentifier", + "src": "20295:6:23" + }, + "nativeSrc": "20295:64:23", + "nodeType": "YulFunctionCall", + "src": "20295:64:23" + }, + "nativeSrc": "20295:64:23", + "nodeType": "YulExpressionStatement", + "src": "20295:64:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "20200:7:23", + "nodeType": "YulIdentifier", + "src": "20200:7:23" + }, + { + "name": "newLen", + "nativeSrc": "20209:6:23", + "nodeType": "YulIdentifier", + "src": "20209:6:23" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "20197:2:23", + "nodeType": "YulIdentifier", + "src": "20197:2:23" + }, + "nativeSrc": "20197:19:23", + "nodeType": "YulFunctionCall", + "src": "20197:19:23" + }, + "nativeSrc": "20194:179:23", + "nodeType": "YulIf", + "src": "20194:179:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20393:4:23", + "nodeType": "YulIdentifier", + "src": "20393:4:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20407:6:23", + "nodeType": "YulIdentifier", + "src": "20407:6:23" + }, + { + "kind": "number", + "nativeSrc": "20415:1:23", + "nodeType": "YulLiteral", + "src": "20415:1:23", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "20403:3:23", + "nodeType": "YulIdentifier", + "src": "20403:3:23" + }, + "nativeSrc": "20403:14:23", + "nodeType": "YulFunctionCall", + "src": "20403:14:23" + }, + { + "kind": "number", + "nativeSrc": "20419:1:23", + "nodeType": "YulLiteral", + "src": "20419:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20399:3:23", + "nodeType": "YulIdentifier", + "src": "20399:3:23" + }, + "nativeSrc": "20399:22:23", + "nodeType": "YulFunctionCall", + "src": "20399:22:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "20386:6:23", + "nodeType": "YulIdentifier", + "src": "20386:6:23" + }, + "nativeSrc": "20386:36:23", + "nodeType": "YulFunctionCall", + "src": "20386:36:23" + }, + "nativeSrc": "20386:36:23", + "nodeType": "YulExpressionStatement", + "src": "20386:36:23" + } + ] + }, + "nativeSrc": "19814:618:23", + "nodeType": "YulCase", + "src": "19814:618:23", + "value": { + "kind": "number", + "nativeSrc": "19819:1:23", + "nodeType": "YulLiteral", + "src": "19819:1:23", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "20449:222:23", + "nodeType": "YulBlock", + "src": "20449:222:23", + "statements": [ + { + "nativeSrc": "20463:14:23", + "nodeType": "YulVariableDeclaration", + "src": "20463:14:23", + "value": { + "kind": "number", + "nativeSrc": "20476:1:23", + "nodeType": "YulLiteral", + "src": "20476:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "20467:5:23", + "nodeType": "YulTypedName", + "src": "20467:5:23", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20500:67:23", + "nodeType": "YulBlock", + "src": "20500:67:23", + "statements": [ + { + "nativeSrc": "20518:35:23", + "nodeType": "YulAssignment", + "src": "20518:35:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "20537:3:23", + "nodeType": "YulIdentifier", + "src": "20537:3:23" + }, + { + "name": "srcOffset", + "nativeSrc": "20542:9:23", + "nodeType": "YulIdentifier", + "src": "20542:9:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20533:3:23", + "nodeType": "YulIdentifier", + "src": "20533:3:23" + }, + "nativeSrc": "20533:19:23", + "nodeType": "YulFunctionCall", + "src": "20533:19:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20527:5:23", + "nodeType": "YulIdentifier", + "src": "20527:5:23" + }, + "nativeSrc": "20527:26:23", + "nodeType": "YulFunctionCall", + "src": "20527:26:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "20518:5:23", + "nodeType": "YulIdentifier", + "src": "20518:5:23" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "20493:6:23", + "nodeType": "YulIdentifier", + "src": "20493:6:23" + }, + "nativeSrc": "20490:77:23", + "nodeType": "YulIf", + "src": "20490:77:23" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20587:4:23", + "nodeType": "YulIdentifier", + "src": "20587:4:23" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "20646:5:23", + "nodeType": "YulIdentifier", + "src": "20646:5:23" + }, + { + "name": "newLen", + "nativeSrc": "20653:6:23", + "nodeType": "YulIdentifier", + "src": "20653:6:23" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "20593:52:23", + "nodeType": "YulIdentifier", + "src": "20593:52:23" + }, + "nativeSrc": "20593:67:23", + "nodeType": "YulFunctionCall", + "src": "20593:67:23" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "20580:6:23", + "nodeType": "YulIdentifier", + "src": "20580:6:23" + }, + "nativeSrc": "20580:81:23", + "nodeType": "YulFunctionCall", + "src": "20580:81:23" + }, + "nativeSrc": "20580:81:23", + "nodeType": "YulExpressionStatement", + "src": "20580:81:23" + } + ] + }, + "nativeSrc": "20441:230:23", + "nodeType": "YulCase", + "src": "20441:230:23", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19794:6:23", + "nodeType": "YulIdentifier", + "src": "19794:6:23" + }, + { + "kind": "number", + "nativeSrc": "19802:2:23", + "nodeType": "YulLiteral", + "src": "19802:2:23", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19791:2:23", + "nodeType": "YulIdentifier", + "src": "19791:2:23" + }, + "nativeSrc": "19791:14:23", + "nodeType": "YulFunctionCall", + "src": "19791:14:23" + }, + "nativeSrc": "19784:887:23", + "nodeType": "YulSwitch", + "src": "19784:887:23" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "19282:1395:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "19363:4:23", + "nodeType": "YulTypedName", + "src": "19363:4:23", + "type": "" + }, + { + "name": "src", + "nativeSrc": "19369:3:23", + "nodeType": "YulTypedName", + "src": "19369:3:23", + "type": "" + } + ], + "src": "19282:1395:23" + }, + { + "body": { + "nativeSrc": "20913:525:23", + "nodeType": "YulBlock", + "src": "20913:525:23", + "statements": [ + { + "nativeSrc": "20923:27:23", + "nodeType": "YulAssignment", + "src": "20923:27:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20935:9:23", + "nodeType": "YulIdentifier", + "src": "20935:9:23" + }, + { + "kind": "number", + "nativeSrc": "20946:3:23", + "nodeType": "YulLiteral", + "src": "20946:3:23", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20931:3:23", + "nodeType": "YulIdentifier", + "src": "20931:3:23" + }, + "nativeSrc": "20931:19:23", + "nodeType": "YulFunctionCall", + "src": "20931:19:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20923:4:23", + "nodeType": "YulIdentifier", + "src": "20923:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "21004:6:23", + "nodeType": "YulIdentifier", + "src": "21004:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21017:9:23", + "nodeType": "YulIdentifier", + "src": "21017:9:23" + }, + { + "kind": "number", + "nativeSrc": "21028:1:23", + "nodeType": "YulLiteral", + "src": "21028:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21013:3:23", + "nodeType": "YulIdentifier", + "src": "21013:3:23" + }, + "nativeSrc": "21013:17:23", + "nodeType": "YulFunctionCall", + "src": "21013:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "20960:43:23", + "nodeType": "YulIdentifier", + "src": "20960:43:23" + }, + "nativeSrc": "20960:71:23", + "nodeType": "YulFunctionCall", + "src": "20960:71:23" + }, + "nativeSrc": "20960:71:23", + "nodeType": "YulExpressionStatement", + "src": "20960:71:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21052:9:23", + "nodeType": "YulIdentifier", + "src": "21052:9:23" + }, + { + "kind": "number", + "nativeSrc": "21063:2:23", + "nodeType": "YulLiteral", + "src": "21063:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21048:3:23", + "nodeType": "YulIdentifier", + "src": "21048:3:23" + }, + "nativeSrc": "21048:18:23", + "nodeType": "YulFunctionCall", + "src": "21048:18:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "21072:4:23", + "nodeType": "YulIdentifier", + "src": "21072:4:23" + }, + { + "name": "headStart", + "nativeSrc": "21078:9:23", + "nodeType": "YulIdentifier", + "src": "21078:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21068:3:23", + "nodeType": "YulIdentifier", + "src": "21068:3:23" + }, + "nativeSrc": "21068:20:23", + "nodeType": "YulFunctionCall", + "src": "21068:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21041:6:23", + "nodeType": "YulIdentifier", + "src": "21041:6:23" + }, + "nativeSrc": "21041:48:23", + "nodeType": "YulFunctionCall", + "src": "21041:48:23" + }, + "nativeSrc": "21041:48:23", + "nodeType": "YulExpressionStatement", + "src": "21041:48:23" + }, + { + "nativeSrc": "21098:86:23", + "nodeType": "YulAssignment", + "src": "21098:86:23", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "21170:6:23", + "nodeType": "YulIdentifier", + "src": "21170:6:23" + }, + { + "name": "tail", + "nativeSrc": "21179:4:23", + "nodeType": "YulIdentifier", + "src": "21179:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "21106:63:23", + "nodeType": "YulIdentifier", + "src": "21106:63:23" + }, + "nativeSrc": "21106:78:23", + "nodeType": "YulFunctionCall", + "src": "21106:78:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21098:4:23", + "nodeType": "YulIdentifier", + "src": "21098:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "21238:6:23", + "nodeType": "YulIdentifier", + "src": "21238:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21251:9:23", + "nodeType": "YulIdentifier", + "src": "21251:9:23" + }, + { + "kind": "number", + "nativeSrc": "21262:2:23", + "nodeType": "YulLiteral", + "src": "21262:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21247:3:23", + "nodeType": "YulIdentifier", + "src": "21247:3:23" + }, + "nativeSrc": "21247:18:23", + "nodeType": "YulFunctionCall", + "src": "21247:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "21194:43:23", + "nodeType": "YulIdentifier", + "src": "21194:43:23" + }, + "nativeSrc": "21194:72:23", + "nodeType": "YulFunctionCall", + "src": "21194:72:23" + }, + "nativeSrc": "21194:72:23", + "nodeType": "YulExpressionStatement", + "src": "21194:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "21320:6:23", + "nodeType": "YulIdentifier", + "src": "21320:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21333:9:23", + "nodeType": "YulIdentifier", + "src": "21333:9:23" + }, + { + "kind": "number", + "nativeSrc": "21344:2:23", + "nodeType": "YulLiteral", + "src": "21344:2:23", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21329:3:23", + "nodeType": "YulIdentifier", + "src": "21329:3:23" + }, + "nativeSrc": "21329:18:23", + "nodeType": "YulFunctionCall", + "src": "21329:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "21276:43:23", + "nodeType": "YulIdentifier", + "src": "21276:43:23" + }, + "nativeSrc": "21276:72:23", + "nodeType": "YulFunctionCall", + "src": "21276:72:23" + }, + "nativeSrc": "21276:72:23", + "nodeType": "YulExpressionStatement", + "src": "21276:72:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "21402:6:23", + "nodeType": "YulIdentifier", + "src": "21402:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21415:9:23", + "nodeType": "YulIdentifier", + "src": "21415:9:23" + }, + { + "kind": "number", + "nativeSrc": "21426:3:23", + "nodeType": "YulLiteral", + "src": "21426:3:23", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21411:3:23", + "nodeType": "YulIdentifier", + "src": "21411:3:23" + }, + "nativeSrc": "21411:19:23", + "nodeType": "YulFunctionCall", + "src": "21411:19:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "21358:43:23", + "nodeType": "YulIdentifier", + "src": "21358:43:23" + }, + "nativeSrc": "21358:73:23", + "nodeType": "YulFunctionCall", + "src": "21358:73:23" + }, + "nativeSrc": "21358:73:23", + "nodeType": "YulExpressionStatement", + "src": "21358:73:23" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "20683:755:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20853:9:23", + "nodeType": "YulTypedName", + "src": "20853:9:23", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "20865:6:23", + "nodeType": "YulTypedName", + "src": "20865:6:23", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20873:6:23", + "nodeType": "YulTypedName", + "src": "20873:6:23", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20881:6:23", + "nodeType": "YulTypedName", + "src": "20881:6:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20889:6:23", + "nodeType": "YulTypedName", + "src": "20889:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20897:6:23", + "nodeType": "YulTypedName", + "src": "20897:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20908:4:23", + "nodeType": "YulTypedName", + "src": "20908:4:23", + "type": "" + } + ], + "src": "20683:755:23" + }, + { + "body": { + "nativeSrc": "21472:152:23", + "nodeType": "YulBlock", + "src": "21472:152:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21489:1:23", + "nodeType": "YulLiteral", + "src": "21489:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21492:77:23", + "nodeType": "YulLiteral", + "src": "21492:77:23", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21482:6:23", + "nodeType": "YulIdentifier", + "src": "21482:6:23" + }, + "nativeSrc": "21482:88:23", + "nodeType": "YulFunctionCall", + "src": "21482:88:23" + }, + "nativeSrc": "21482:88:23", + "nodeType": "YulExpressionStatement", + "src": "21482:88:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21586:1:23", + "nodeType": "YulLiteral", + "src": "21586:1:23", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "21589:4:23", + "nodeType": "YulLiteral", + "src": "21589:4:23", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21579:6:23", + "nodeType": "YulIdentifier", + "src": "21579:6:23" + }, + "nativeSrc": "21579:15:23", + "nodeType": "YulFunctionCall", + "src": "21579:15:23" + }, + "nativeSrc": "21579:15:23", + "nodeType": "YulExpressionStatement", + "src": "21579:15:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21610:1:23", + "nodeType": "YulLiteral", + "src": "21610:1:23", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21613:4:23", + "nodeType": "YulLiteral", + "src": "21613:4:23", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21603:6:23", + "nodeType": "YulIdentifier", + "src": "21603:6:23" + }, + "nativeSrc": "21603:15:23", + "nodeType": "YulFunctionCall", + "src": "21603:15:23" + }, + "nativeSrc": "21603:15:23", + "nodeType": "YulExpressionStatement", + "src": "21603:15:23" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "21444:180:23", + "nodeType": "YulFunctionDefinition", + "src": "21444:180:23" + }, + { + "body": { + "nativeSrc": "21673:190:23", + "nodeType": "YulBlock", + "src": "21673:190:23", + "statements": [ + { + "nativeSrc": "21683:33:23", + "nodeType": "YulAssignment", + "src": "21683:33:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21710:5:23", + "nodeType": "YulIdentifier", + "src": "21710:5:23" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "21692:17:23", + "nodeType": "YulIdentifier", + "src": "21692:17:23" + }, + "nativeSrc": "21692:24:23", + "nodeType": "YulFunctionCall", + "src": "21692:24:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "21683:5:23", + "nodeType": "YulIdentifier", + "src": "21683:5:23" + } + ] + }, + { + "body": { + "nativeSrc": "21806:22:23", + "nodeType": "YulBlock", + "src": "21806:22:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "21808:16:23", + "nodeType": "YulIdentifier", + "src": "21808:16:23" + }, + "nativeSrc": "21808:18:23", + "nodeType": "YulFunctionCall", + "src": "21808:18:23" + }, + "nativeSrc": "21808:18:23", + "nodeType": "YulExpressionStatement", + "src": "21808:18:23" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21731:5:23", + "nodeType": "YulIdentifier", + "src": "21731:5:23" + }, + { + "kind": "number", + "nativeSrc": "21738:66:23", + "nodeType": "YulLiteral", + "src": "21738:66:23", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "21728:2:23", + "nodeType": "YulIdentifier", + "src": "21728:2:23" + }, + "nativeSrc": "21728:77:23", + "nodeType": "YulFunctionCall", + "src": "21728:77:23" + }, + "nativeSrc": "21725:103:23", + "nodeType": "YulIf", + "src": "21725:103:23" + }, + { + "nativeSrc": "21837:20:23", + "nodeType": "YulAssignment", + "src": "21837:20:23", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21848:5:23", + "nodeType": "YulIdentifier", + "src": "21848:5:23" + }, + { + "kind": "number", + "nativeSrc": "21855:1:23", + "nodeType": "YulLiteral", + "src": "21855:1:23", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21844:3:23", + "nodeType": "YulIdentifier", + "src": "21844:3:23" + }, + "nativeSrc": "21844:13:23", + "nodeType": "YulFunctionCall", + "src": "21844:13:23" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "21837:3:23", + "nodeType": "YulIdentifier", + "src": "21837:3:23" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "21630:233:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21659:5:23", + "nodeType": "YulTypedName", + "src": "21659:5:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "21669:3:23", + "nodeType": "YulTypedName", + "src": "21669:3:23", + "type": "" + } + ], + "src": "21630:233:23" + }, + { + "body": { + "nativeSrc": "21975:64:23", + "nodeType": "YulBlock", + "src": "21975:64:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "21997:6:23", + "nodeType": "YulIdentifier", + "src": "21997:6:23" + }, + { + "kind": "number", + "nativeSrc": "22005:1:23", + "nodeType": "YulLiteral", + "src": "22005:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21993:3:23", + "nodeType": "YulIdentifier", + "src": "21993:3:23" + }, + "nativeSrc": "21993:14:23", + "nodeType": "YulFunctionCall", + "src": "21993:14:23" + }, + { + "hexValue": "4576656e74206973206e6f74206163746976652e", + "kind": "string", + "nativeSrc": "22009:22:23", + "nodeType": "YulLiteral", + "src": "22009:22:23", + "type": "", + "value": "Event is not active." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21986:6:23", + "nodeType": "YulIdentifier", + "src": "21986:6:23" + }, + "nativeSrc": "21986:46:23", + "nodeType": "YulFunctionCall", + "src": "21986:46:23" + }, + "nativeSrc": "21986:46:23", + "nodeType": "YulExpressionStatement", + "src": "21986:46:23" + } + ] + }, + "name": "store_literal_in_memory_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305", + "nativeSrc": "21869:170:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "21967:6:23", + "nodeType": "YulTypedName", + "src": "21967:6:23", + "type": "" + } + ], + "src": "21869:170:23" + }, + { + "body": { + "nativeSrc": "22191:220:23", + "nodeType": "YulBlock", + "src": "22191:220:23", + "statements": [ + { + "nativeSrc": "22201:74:23", + "nodeType": "YulAssignment", + "src": "22201:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22267:3:23", + "nodeType": "YulIdentifier", + "src": "22267:3:23" + }, + { + "kind": "number", + "nativeSrc": "22272:2:23", + "nodeType": "YulLiteral", + "src": "22272:2:23", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "22208:58:23", + "nodeType": "YulIdentifier", + "src": "22208:58:23" + }, + "nativeSrc": "22208:67:23", + "nodeType": "YulFunctionCall", + "src": "22208:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "22201:3:23", + "nodeType": "YulIdentifier", + "src": "22201:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22373:3:23", + "nodeType": "YulIdentifier", + "src": "22373:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305", + "nativeSrc": "22284:88:23", + "nodeType": "YulIdentifier", + "src": "22284:88:23" + }, + "nativeSrc": "22284:93:23", + "nodeType": "YulFunctionCall", + "src": "22284:93:23" + }, + "nativeSrc": "22284:93:23", + "nodeType": "YulExpressionStatement", + "src": "22284:93:23" + }, + { + "nativeSrc": "22386:19:23", + "nodeType": "YulAssignment", + "src": "22386:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22397:3:23", + "nodeType": "YulIdentifier", + "src": "22397:3:23" + }, + { + "kind": "number", + "nativeSrc": "22402:2:23", + "nodeType": "YulLiteral", + "src": "22402:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22393:3:23", + "nodeType": "YulIdentifier", + "src": "22393:3:23" + }, + "nativeSrc": "22393:12:23", + "nodeType": "YulFunctionCall", + "src": "22393:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "22386:3:23", + "nodeType": "YulIdentifier", + "src": "22386:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22045:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "22179:3:23", + "nodeType": "YulTypedName", + "src": "22179:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "22187:3:23", + "nodeType": "YulTypedName", + "src": "22187:3:23", + "type": "" + } + ], + "src": "22045:366:23" + }, + { + "body": { + "nativeSrc": "22588:248:23", + "nodeType": "YulBlock", + "src": "22588:248:23", + "statements": [ + { + "nativeSrc": "22598:26:23", + "nodeType": "YulAssignment", + "src": "22598:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22610:9:23", + "nodeType": "YulIdentifier", + "src": "22610:9:23" + }, + { + "kind": "number", + "nativeSrc": "22621:2:23", + "nodeType": "YulLiteral", + "src": "22621:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22606:3:23", + "nodeType": "YulIdentifier", + "src": "22606:3:23" + }, + "nativeSrc": "22606:18:23", + "nodeType": "YulFunctionCall", + "src": "22606:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22598:4:23", + "nodeType": "YulIdentifier", + "src": "22598:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22645:9:23", + "nodeType": "YulIdentifier", + "src": "22645:9:23" + }, + { + "kind": "number", + "nativeSrc": "22656:1:23", + "nodeType": "YulLiteral", + "src": "22656:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22641:3:23", + "nodeType": "YulIdentifier", + "src": "22641:3:23" + }, + "nativeSrc": "22641:17:23", + "nodeType": "YulFunctionCall", + "src": "22641:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22664:4:23", + "nodeType": "YulIdentifier", + "src": "22664:4:23" + }, + { + "name": "headStart", + "nativeSrc": "22670:9:23", + "nodeType": "YulIdentifier", + "src": "22670:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22660:3:23", + "nodeType": "YulIdentifier", + "src": "22660:3:23" + }, + "nativeSrc": "22660:20:23", + "nodeType": "YulFunctionCall", + "src": "22660:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22634:6:23", + "nodeType": "YulIdentifier", + "src": "22634:6:23" + }, + "nativeSrc": "22634:47:23", + "nodeType": "YulFunctionCall", + "src": "22634:47:23" + }, + "nativeSrc": "22634:47:23", + "nodeType": "YulExpressionStatement", + "src": "22634:47:23" + }, + { + "nativeSrc": "22690:139:23", + "nodeType": "YulAssignment", + "src": "22690:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22824:4:23", + "nodeType": "YulIdentifier", + "src": "22824:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22698:124:23", + "nodeType": "YulIdentifier", + "src": "22698:124:23" + }, + "nativeSrc": "22698:131:23", + "nodeType": "YulFunctionCall", + "src": "22698:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22690:4:23", + "nodeType": "YulIdentifier", + "src": "22690:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "22417:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22568:9:23", + "nodeType": "YulTypedName", + "src": "22568:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22583:4:23", + "nodeType": "YulTypedName", + "src": "22583:4:23", + "type": "" + } + ], + "src": "22417:419:23" + }, + { + "body": { + "nativeSrc": "22948:74:23", + "nodeType": "YulBlock", + "src": "22948:74:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "22970:6:23", + "nodeType": "YulIdentifier", + "src": "22970:6:23" + }, + { + "kind": "number", + "nativeSrc": "22978:1:23", + "nodeType": "YulLiteral", + "src": "22978:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22966:3:23", + "nodeType": "YulIdentifier", + "src": "22966:3:23" + }, + "nativeSrc": "22966:14:23", + "nodeType": "YulFunctionCall", + "src": "22966:14:23" + }, + { + "hexValue": "4576656e7420726567697374726174696f6e2068617320636c6f7365642e", + "kind": "string", + "nativeSrc": "22982:32:23", + "nodeType": "YulLiteral", + "src": "22982:32:23", + "type": "", + "value": "Event registration has closed." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22959:6:23", + "nodeType": "YulIdentifier", + "src": "22959:6:23" + }, + "nativeSrc": "22959:56:23", + "nodeType": "YulFunctionCall", + "src": "22959:56:23" + }, + "nativeSrc": "22959:56:23", + "nodeType": "YulExpressionStatement", + "src": "22959:56:23" + } + ] + }, + "name": "store_literal_in_memory_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a", + "nativeSrc": "22842:180:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "22940:6:23", + "nodeType": "YulTypedName", + "src": "22940:6:23", + "type": "" + } + ], + "src": "22842:180:23" + }, + { + "body": { + "nativeSrc": "23174:220:23", + "nodeType": "YulBlock", + "src": "23174:220:23", + "statements": [ + { + "nativeSrc": "23184:74:23", + "nodeType": "YulAssignment", + "src": "23184:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23250:3:23", + "nodeType": "YulIdentifier", + "src": "23250:3:23" + }, + { + "kind": "number", + "nativeSrc": "23255:2:23", + "nodeType": "YulLiteral", + "src": "23255:2:23", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "23191:58:23", + "nodeType": "YulIdentifier", + "src": "23191:58:23" + }, + "nativeSrc": "23191:67:23", + "nodeType": "YulFunctionCall", + "src": "23191:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "23184:3:23", + "nodeType": "YulIdentifier", + "src": "23184:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23356:3:23", + "nodeType": "YulIdentifier", + "src": "23356:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a", + "nativeSrc": "23267:88:23", + "nodeType": "YulIdentifier", + "src": "23267:88:23" + }, + "nativeSrc": "23267:93:23", + "nodeType": "YulFunctionCall", + "src": "23267:93:23" + }, + "nativeSrc": "23267:93:23", + "nodeType": "YulExpressionStatement", + "src": "23267:93:23" + }, + { + "nativeSrc": "23369:19:23", + "nodeType": "YulAssignment", + "src": "23369:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23380:3:23", + "nodeType": "YulIdentifier", + "src": "23380:3:23" + }, + { + "kind": "number", + "nativeSrc": "23385:2:23", + "nodeType": "YulLiteral", + "src": "23385:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23376:3:23", + "nodeType": "YulIdentifier", + "src": "23376:3:23" + }, + "nativeSrc": "23376:12:23", + "nodeType": "YulFunctionCall", + "src": "23376:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "23369:3:23", + "nodeType": "YulIdentifier", + "src": "23369:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23028:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23162:3:23", + "nodeType": "YulTypedName", + "src": "23162:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23170:3:23", + "nodeType": "YulTypedName", + "src": "23170:3:23", + "type": "" + } + ], + "src": "23028:366:23" + }, + { + "body": { + "nativeSrc": "23571:248:23", + "nodeType": "YulBlock", + "src": "23571:248:23", + "statements": [ + { + "nativeSrc": "23581:26:23", + "nodeType": "YulAssignment", + "src": "23581:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23593:9:23", + "nodeType": "YulIdentifier", + "src": "23593:9:23" + }, + { + "kind": "number", + "nativeSrc": "23604:2:23", + "nodeType": "YulLiteral", + "src": "23604:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23589:3:23", + "nodeType": "YulIdentifier", + "src": "23589:3:23" + }, + "nativeSrc": "23589:18:23", + "nodeType": "YulFunctionCall", + "src": "23589:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23581:4:23", + "nodeType": "YulIdentifier", + "src": "23581:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23628:9:23", + "nodeType": "YulIdentifier", + "src": "23628:9:23" + }, + { + "kind": "number", + "nativeSrc": "23639:1:23", + "nodeType": "YulLiteral", + "src": "23639:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23624:3:23", + "nodeType": "YulIdentifier", + "src": "23624:3:23" + }, + "nativeSrc": "23624:17:23", + "nodeType": "YulFunctionCall", + "src": "23624:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23647:4:23", + "nodeType": "YulIdentifier", + "src": "23647:4:23" + }, + { + "name": "headStart", + "nativeSrc": "23653:9:23", + "nodeType": "YulIdentifier", + "src": "23653:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23643:3:23", + "nodeType": "YulIdentifier", + "src": "23643:3:23" + }, + "nativeSrc": "23643:20:23", + "nodeType": "YulFunctionCall", + "src": "23643:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23617:6:23", + "nodeType": "YulIdentifier", + "src": "23617:6:23" + }, + "nativeSrc": "23617:47:23", + "nodeType": "YulFunctionCall", + "src": "23617:47:23" + }, + "nativeSrc": "23617:47:23", + "nodeType": "YulExpressionStatement", + "src": "23617:47:23" + }, + { + "nativeSrc": "23673:139:23", + "nodeType": "YulAssignment", + "src": "23673:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23807:4:23", + "nodeType": "YulIdentifier", + "src": "23807:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23681:124:23", + "nodeType": "YulIdentifier", + "src": "23681:124:23" + }, + "nativeSrc": "23681:131:23", + "nodeType": "YulFunctionCall", + "src": "23681:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23673:4:23", + "nodeType": "YulIdentifier", + "src": "23673:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "23400:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23551:9:23", + "nodeType": "YulTypedName", + "src": "23551:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23566:4:23", + "nodeType": "YulTypedName", + "src": "23566:4:23", + "type": "" + } + ], + "src": "23400:419:23" + }, + { + "body": { + "nativeSrc": "23931:66:23", + "nodeType": "YulBlock", + "src": "23931:66:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23953:6:23", + "nodeType": "YulIdentifier", + "src": "23953:6:23" + }, + { + "kind": "number", + "nativeSrc": "23961:1:23", + "nodeType": "YulLiteral", + "src": "23961:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23949:3:23", + "nodeType": "YulIdentifier", + "src": "23949:3:23" + }, + "nativeSrc": "23949:14:23", + "nodeType": "YulFunctionCall", + "src": "23949:14:23" + }, + { + "hexValue": "4576656e742069732066756c6c7920626f6f6b65642e", + "kind": "string", + "nativeSrc": "23965:24:23", + "nodeType": "YulLiteral", + "src": "23965:24:23", + "type": "", + "value": "Event is fully booked." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23942:6:23", + "nodeType": "YulIdentifier", + "src": "23942:6:23" + }, + "nativeSrc": "23942:48:23", + "nodeType": "YulFunctionCall", + "src": "23942:48:23" + }, + "nativeSrc": "23942:48:23", + "nodeType": "YulExpressionStatement", + "src": "23942:48:23" + } + ] + }, + "name": "store_literal_in_memory_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b", + "nativeSrc": "23825:172:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "23923:6:23", + "nodeType": "YulTypedName", + "src": "23923:6:23", + "type": "" + } + ], + "src": "23825:172:23" + }, + { + "body": { + "nativeSrc": "24149:220:23", + "nodeType": "YulBlock", + "src": "24149:220:23", + "statements": [ + { + "nativeSrc": "24159:74:23", + "nodeType": "YulAssignment", + "src": "24159:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24225:3:23", + "nodeType": "YulIdentifier", + "src": "24225:3:23" + }, + { + "kind": "number", + "nativeSrc": "24230:2:23", + "nodeType": "YulLiteral", + "src": "24230:2:23", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "24166:58:23", + "nodeType": "YulIdentifier", + "src": "24166:58:23" + }, + "nativeSrc": "24166:67:23", + "nodeType": "YulFunctionCall", + "src": "24166:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "24159:3:23", + "nodeType": "YulIdentifier", + "src": "24159:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24331:3:23", + "nodeType": "YulIdentifier", + "src": "24331:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b", + "nativeSrc": "24242:88:23", + "nodeType": "YulIdentifier", + "src": "24242:88:23" + }, + "nativeSrc": "24242:93:23", + "nodeType": "YulFunctionCall", + "src": "24242:93:23" + }, + "nativeSrc": "24242:93:23", + "nodeType": "YulExpressionStatement", + "src": "24242:93:23" + }, + { + "nativeSrc": "24344:19:23", + "nodeType": "YulAssignment", + "src": "24344:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24355:3:23", + "nodeType": "YulIdentifier", + "src": "24355:3:23" + }, + { + "kind": "number", + "nativeSrc": "24360:2:23", + "nodeType": "YulLiteral", + "src": "24360:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24351:3:23", + "nodeType": "YulIdentifier", + "src": "24351:3:23" + }, + "nativeSrc": "24351:12:23", + "nodeType": "YulFunctionCall", + "src": "24351:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "24344:3:23", + "nodeType": "YulIdentifier", + "src": "24344:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "24003:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "24137:3:23", + "nodeType": "YulTypedName", + "src": "24137:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24145:3:23", + "nodeType": "YulTypedName", + "src": "24145:3:23", + "type": "" + } + ], + "src": "24003:366:23" + }, + { + "body": { + "nativeSrc": "24546:248:23", + "nodeType": "YulBlock", + "src": "24546:248:23", + "statements": [ + { + "nativeSrc": "24556:26:23", + "nodeType": "YulAssignment", + "src": "24556:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24568:9:23", + "nodeType": "YulIdentifier", + "src": "24568:9:23" + }, + { + "kind": "number", + "nativeSrc": "24579:2:23", + "nodeType": "YulLiteral", + "src": "24579:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24564:3:23", + "nodeType": "YulIdentifier", + "src": "24564:3:23" + }, + "nativeSrc": "24564:18:23", + "nodeType": "YulFunctionCall", + "src": "24564:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24556:4:23", + "nodeType": "YulIdentifier", + "src": "24556:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24603:9:23", + "nodeType": "YulIdentifier", + "src": "24603:9:23" + }, + { + "kind": "number", + "nativeSrc": "24614:1:23", + "nodeType": "YulLiteral", + "src": "24614:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24599:3:23", + "nodeType": "YulIdentifier", + "src": "24599:3:23" + }, + "nativeSrc": "24599:17:23", + "nodeType": "YulFunctionCall", + "src": "24599:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "24622:4:23", + "nodeType": "YulIdentifier", + "src": "24622:4:23" + }, + { + "name": "headStart", + "nativeSrc": "24628:9:23", + "nodeType": "YulIdentifier", + "src": "24628:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24618:3:23", + "nodeType": "YulIdentifier", + "src": "24618:3:23" + }, + "nativeSrc": "24618:20:23", + "nodeType": "YulFunctionCall", + "src": "24618:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24592:6:23", + "nodeType": "YulIdentifier", + "src": "24592:6:23" + }, + "nativeSrc": "24592:47:23", + "nodeType": "YulFunctionCall", + "src": "24592:47:23" + }, + "nativeSrc": "24592:47:23", + "nodeType": "YulExpressionStatement", + "src": "24592:47:23" + }, + { + "nativeSrc": "24648:139:23", + "nodeType": "YulAssignment", + "src": "24648:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "24782:4:23", + "nodeType": "YulIdentifier", + "src": "24782:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "24656:124:23", + "nodeType": "YulIdentifier", + "src": "24656:124:23" + }, + "nativeSrc": "24656:131:23", + "nodeType": "YulFunctionCall", + "src": "24656:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24648:4:23", + "nodeType": "YulIdentifier", + "src": "24648:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "24375:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24526:9:23", + "nodeType": "YulTypedName", + "src": "24526:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24541:4:23", + "nodeType": "YulTypedName", + "src": "24541:4:23", + "type": "" + } + ], + "src": "24375:419:23" + }, + { + "body": { + "nativeSrc": "24906:123:23", + "nodeType": "YulBlock", + "src": "24906:123:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24928:6:23", + "nodeType": "YulIdentifier", + "src": "24928:6:23" + }, + { + "kind": "number", + "nativeSrc": "24936:1:23", + "nodeType": "YulLiteral", + "src": "24936:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24924:3:23", + "nodeType": "YulIdentifier", + "src": "24924:3:23" + }, + "nativeSrc": "24924:14:23", + "nodeType": "YulFunctionCall", + "src": "24924:14:23" + }, + { + "hexValue": "596f752061726520616c7265616479207265676973746572656420666f722074", + "kind": "string", + "nativeSrc": "24940:34:23", + "nodeType": "YulLiteral", + "src": "24940:34:23", + "type": "", + "value": "You are already registered for t" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24917:6:23", + "nodeType": "YulIdentifier", + "src": "24917:6:23" + }, + "nativeSrc": "24917:58:23", + "nodeType": "YulFunctionCall", + "src": "24917:58:23" + }, + "nativeSrc": "24917:58:23", + "nodeType": "YulExpressionStatement", + "src": "24917:58:23" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24996:6:23", + "nodeType": "YulIdentifier", + "src": "24996:6:23" + }, + { + "kind": "number", + "nativeSrc": "25004:2:23", + "nodeType": "YulLiteral", + "src": "25004:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24992:3:23", + "nodeType": "YulIdentifier", + "src": "24992:3:23" + }, + "nativeSrc": "24992:15:23", + "nodeType": "YulFunctionCall", + "src": "24992:15:23" + }, + { + "hexValue": "686973206576656e742e", + "kind": "string", + "nativeSrc": "25009:12:23", + "nodeType": "YulLiteral", + "src": "25009:12:23", + "type": "", + "value": "his event." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24985:6:23", + "nodeType": "YulIdentifier", + "src": "24985:6:23" + }, + "nativeSrc": "24985:37:23", + "nodeType": "YulFunctionCall", + "src": "24985:37:23" + }, + "nativeSrc": "24985:37:23", + "nodeType": "YulExpressionStatement", + "src": "24985:37:23" + } + ] + }, + "name": "store_literal_in_memory_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62", + "nativeSrc": "24800:229:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "24898:6:23", + "nodeType": "YulTypedName", + "src": "24898:6:23", + "type": "" + } + ], + "src": "24800:229:23" + }, + { + "body": { + "nativeSrc": "25181:220:23", + "nodeType": "YulBlock", + "src": "25181:220:23", + "statements": [ + { + "nativeSrc": "25191:74:23", + "nodeType": "YulAssignment", + "src": "25191:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25257:3:23", + "nodeType": "YulIdentifier", + "src": "25257:3:23" + }, + { + "kind": "number", + "nativeSrc": "25262:2:23", + "nodeType": "YulLiteral", + "src": "25262:2:23", + "type": "", + "value": "42" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "25198:58:23", + "nodeType": "YulIdentifier", + "src": "25198:58:23" + }, + "nativeSrc": "25198:67:23", + "nodeType": "YulFunctionCall", + "src": "25198:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25191:3:23", + "nodeType": "YulIdentifier", + "src": "25191:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25363:3:23", + "nodeType": "YulIdentifier", + "src": "25363:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62", + "nativeSrc": "25274:88:23", + "nodeType": "YulIdentifier", + "src": "25274:88:23" + }, + "nativeSrc": "25274:93:23", + "nodeType": "YulFunctionCall", + "src": "25274:93:23" + }, + "nativeSrc": "25274:93:23", + "nodeType": "YulExpressionStatement", + "src": "25274:93:23" + }, + { + "nativeSrc": "25376:19:23", + "nodeType": "YulAssignment", + "src": "25376:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25387:3:23", + "nodeType": "YulIdentifier", + "src": "25387:3:23" + }, + { + "kind": "number", + "nativeSrc": "25392:2:23", + "nodeType": "YulLiteral", + "src": "25392:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25383:3:23", + "nodeType": "YulIdentifier", + "src": "25383:3:23" + }, + "nativeSrc": "25383:12:23", + "nodeType": "YulFunctionCall", + "src": "25383:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25376:3:23", + "nodeType": "YulIdentifier", + "src": "25376:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62_to_t_string_memory_ptr_fromStack", + "nativeSrc": "25035:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "25169:3:23", + "nodeType": "YulTypedName", + "src": "25169:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "25177:3:23", + "nodeType": "YulTypedName", + "src": "25177:3:23", + "type": "" + } + ], + "src": "25035:366:23" + }, + { + "body": { + "nativeSrc": "25578:248:23", + "nodeType": "YulBlock", + "src": "25578:248:23", + "statements": [ + { + "nativeSrc": "25588:26:23", + "nodeType": "YulAssignment", + "src": "25588:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25600:9:23", + "nodeType": "YulIdentifier", + "src": "25600:9:23" + }, + { + "kind": "number", + "nativeSrc": "25611:2:23", + "nodeType": "YulLiteral", + "src": "25611:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25596:3:23", + "nodeType": "YulIdentifier", + "src": "25596:3:23" + }, + "nativeSrc": "25596:18:23", + "nodeType": "YulFunctionCall", + "src": "25596:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25588:4:23", + "nodeType": "YulIdentifier", + "src": "25588:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25635:9:23", + "nodeType": "YulIdentifier", + "src": "25635:9:23" + }, + { + "kind": "number", + "nativeSrc": "25646:1:23", + "nodeType": "YulLiteral", + "src": "25646:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25631:3:23", + "nodeType": "YulIdentifier", + "src": "25631:3:23" + }, + "nativeSrc": "25631:17:23", + "nodeType": "YulFunctionCall", + "src": "25631:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25654:4:23", + "nodeType": "YulIdentifier", + "src": "25654:4:23" + }, + { + "name": "headStart", + "nativeSrc": "25660:9:23", + "nodeType": "YulIdentifier", + "src": "25660:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25650:3:23", + "nodeType": "YulIdentifier", + "src": "25650:3:23" + }, + "nativeSrc": "25650:20:23", + "nodeType": "YulFunctionCall", + "src": "25650:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25624:6:23", + "nodeType": "YulIdentifier", + "src": "25624:6:23" + }, + "nativeSrc": "25624:47:23", + "nodeType": "YulFunctionCall", + "src": "25624:47:23" + }, + "nativeSrc": "25624:47:23", + "nodeType": "YulExpressionStatement", + "src": "25624:47:23" + }, + { + "nativeSrc": "25680:139:23", + "nodeType": "YulAssignment", + "src": "25680:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25814:4:23", + "nodeType": "YulIdentifier", + "src": "25814:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62_to_t_string_memory_ptr_fromStack", + "nativeSrc": "25688:124:23", + "nodeType": "YulIdentifier", + "src": "25688:124:23" + }, + "nativeSrc": "25688:131:23", + "nodeType": "YulFunctionCall", + "src": "25688:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25680:4:23", + "nodeType": "YulIdentifier", + "src": "25680:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "25407:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25558:9:23", + "nodeType": "YulTypedName", + "src": "25558:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25573:4:23", + "nodeType": "YulTypedName", + "src": "25573:4:23", + "type": "" + } + ], + "src": "25407:419:23" + }, + { + "body": { + "nativeSrc": "25895:80:23", + "nodeType": "YulBlock", + "src": "25895:80:23", + "statements": [ + { + "nativeSrc": "25905:22:23", + "nodeType": "YulAssignment", + "src": "25905:22:23", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "25920:6:23", + "nodeType": "YulIdentifier", + "src": "25920:6:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25914:5:23", + "nodeType": "YulIdentifier", + "src": "25914:5:23" + }, + "nativeSrc": "25914:13:23", + "nodeType": "YulFunctionCall", + "src": "25914:13:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "25905:5:23", + "nodeType": "YulIdentifier", + "src": "25905:5:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25963:5:23", + "nodeType": "YulIdentifier", + "src": "25963:5:23" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "25936:26:23", + "nodeType": "YulIdentifier", + "src": "25936:26:23" + }, + "nativeSrc": "25936:33:23", + "nodeType": "YulFunctionCall", + "src": "25936:33:23" + }, + "nativeSrc": "25936:33:23", + "nodeType": "YulExpressionStatement", + "src": "25936:33:23" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "25832:143:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "25873:6:23", + "nodeType": "YulTypedName", + "src": "25873:6:23", + "type": "" + }, + { + "name": "end", + "nativeSrc": "25881:3:23", + "nodeType": "YulTypedName", + "src": "25881:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "25889:5:23", + "nodeType": "YulTypedName", + "src": "25889:5:23", + "type": "" + } + ], + "src": "25832:143:23" + }, + { + "body": { + "nativeSrc": "26058:274:23", + "nodeType": "YulBlock", + "src": "26058:274:23", + "statements": [ + { + "body": { + "nativeSrc": "26104:83:23", + "nodeType": "YulBlock", + "src": "26104:83:23", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "26106:77:23", + "nodeType": "YulIdentifier", + "src": "26106:77:23" + }, + "nativeSrc": "26106:79:23", + "nodeType": "YulFunctionCall", + "src": "26106:79:23" + }, + "nativeSrc": "26106:79:23", + "nodeType": "YulExpressionStatement", + "src": "26106:79:23" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "26079:7:23", + "nodeType": "YulIdentifier", + "src": "26079:7:23" + }, + { + "name": "headStart", + "nativeSrc": "26088:9:23", + "nodeType": "YulIdentifier", + "src": "26088:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26075:3:23", + "nodeType": "YulIdentifier", + "src": "26075:3:23" + }, + "nativeSrc": "26075:23:23", + "nodeType": "YulFunctionCall", + "src": "26075:23:23" + }, + { + "kind": "number", + "nativeSrc": "26100:2:23", + "nodeType": "YulLiteral", + "src": "26100:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "26071:3:23", + "nodeType": "YulIdentifier", + "src": "26071:3:23" + }, + "nativeSrc": "26071:32:23", + "nodeType": "YulFunctionCall", + "src": "26071:32:23" + }, + "nativeSrc": "26068:119:23", + "nodeType": "YulIf", + "src": "26068:119:23" + }, + { + "nativeSrc": "26197:128:23", + "nodeType": "YulBlock", + "src": "26197:128:23", + "statements": [ + { + "nativeSrc": "26212:15:23", + "nodeType": "YulVariableDeclaration", + "src": "26212:15:23", + "value": { + "kind": "number", + "nativeSrc": "26226:1:23", + "nodeType": "YulLiteral", + "src": "26226:1:23", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "26216:6:23", + "nodeType": "YulTypedName", + "src": "26216:6:23", + "type": "" + } + ] + }, + { + "nativeSrc": "26241:74:23", + "nodeType": "YulAssignment", + "src": "26241:74:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26287:9:23", + "nodeType": "YulIdentifier", + "src": "26287:9:23" + }, + { + "name": "offset", + "nativeSrc": "26298:6:23", + "nodeType": "YulIdentifier", + "src": "26298:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26283:3:23", + "nodeType": "YulIdentifier", + "src": "26283:3:23" + }, + "nativeSrc": "26283:22:23", + "nodeType": "YulFunctionCall", + "src": "26283:22:23" + }, + { + "name": "dataEnd", + "nativeSrc": "26307:7:23", + "nodeType": "YulIdentifier", + "src": "26307:7:23" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "26251:31:23", + "nodeType": "YulIdentifier", + "src": "26251:31:23" + }, + "nativeSrc": "26251:64:23", + "nodeType": "YulFunctionCall", + "src": "26251:64:23" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "26241:6:23", + "nodeType": "YulIdentifier", + "src": "26241:6:23" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "25981:351:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26028:9:23", + "nodeType": "YulTypedName", + "src": "26028:9:23", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "26039:7:23", + "nodeType": "YulTypedName", + "src": "26039:7:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "26051:6:23", + "nodeType": "YulTypedName", + "src": "26051:6:23", + "type": "" + } + ], + "src": "25981:351:23" + }, + { + "body": { + "nativeSrc": "26444:76:23", + "nodeType": "YulBlock", + "src": "26444:76:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "26466:6:23", + "nodeType": "YulIdentifier", + "src": "26466:6:23" + }, + { + "kind": "number", + "nativeSrc": "26474:1:23", + "nodeType": "YulLiteral", + "src": "26474:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26462:3:23", + "nodeType": "YulIdentifier", + "src": "26462:3:23" + }, + "nativeSrc": "26462:14:23", + "nodeType": "YulFunctionCall", + "src": "26462:14:23" + }, + { + "hexValue": "596f7520646f206e6f74206f776e20746865207265717569726564204e46542e", + "kind": "string", + "nativeSrc": "26478:34:23", + "nodeType": "YulLiteral", + "src": "26478:34:23", + "type": "", + "value": "You do not own the required NFT." + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26455:6:23", + "nodeType": "YulIdentifier", + "src": "26455:6:23" + }, + "nativeSrc": "26455:58:23", + "nodeType": "YulFunctionCall", + "src": "26455:58:23" + }, + "nativeSrc": "26455:58:23", + "nodeType": "YulExpressionStatement", + "src": "26455:58:23" + } + ] + }, + "name": "store_literal_in_memory_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2", + "nativeSrc": "26338:182:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "26436:6:23", + "nodeType": "YulTypedName", + "src": "26436:6:23", + "type": "" + } + ], + "src": "26338:182:23" + }, + { + "body": { + "nativeSrc": "26672:220:23", + "nodeType": "YulBlock", + "src": "26672:220:23", + "statements": [ + { + "nativeSrc": "26682:74:23", + "nodeType": "YulAssignment", + "src": "26682:74:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26748:3:23", + "nodeType": "YulIdentifier", + "src": "26748:3:23" + }, + { + "kind": "number", + "nativeSrc": "26753:2:23", + "nodeType": "YulLiteral", + "src": "26753:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "26689:58:23", + "nodeType": "YulIdentifier", + "src": "26689:58:23" + }, + "nativeSrc": "26689:67:23", + "nodeType": "YulFunctionCall", + "src": "26689:67:23" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "26682:3:23", + "nodeType": "YulIdentifier", + "src": "26682:3:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26854:3:23", + "nodeType": "YulIdentifier", + "src": "26854:3:23" + } + ], + "functionName": { + "name": "store_literal_in_memory_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2", + "nativeSrc": "26765:88:23", + "nodeType": "YulIdentifier", + "src": "26765:88:23" + }, + "nativeSrc": "26765:93:23", + "nodeType": "YulFunctionCall", + "src": "26765:93:23" + }, + "nativeSrc": "26765:93:23", + "nodeType": "YulExpressionStatement", + "src": "26765:93:23" + }, + { + "nativeSrc": "26867:19:23", + "nodeType": "YulAssignment", + "src": "26867:19:23", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26878:3:23", + "nodeType": "YulIdentifier", + "src": "26878:3:23" + }, + { + "kind": "number", + "nativeSrc": "26883:2:23", + "nodeType": "YulLiteral", + "src": "26883:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26874:3:23", + "nodeType": "YulIdentifier", + "src": "26874:3:23" + }, + "nativeSrc": "26874:12:23", + "nodeType": "YulFunctionCall", + "src": "26874:12:23" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "26867:3:23", + "nodeType": "YulIdentifier", + "src": "26867:3:23" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2_to_t_string_memory_ptr_fromStack", + "nativeSrc": "26526:366:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "26660:3:23", + "nodeType": "YulTypedName", + "src": "26660:3:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "26668:3:23", + "nodeType": "YulTypedName", + "src": "26668:3:23", + "type": "" + } + ], + "src": "26526:366:23" + }, + { + "body": { + "nativeSrc": "27069:248:23", + "nodeType": "YulBlock", + "src": "27069:248:23", + "statements": [ + { + "nativeSrc": "27079:26:23", + "nodeType": "YulAssignment", + "src": "27079:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27091:9:23", + "nodeType": "YulIdentifier", + "src": "27091:9:23" + }, + { + "kind": "number", + "nativeSrc": "27102:2:23", + "nodeType": "YulLiteral", + "src": "27102:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27087:3:23", + "nodeType": "YulIdentifier", + "src": "27087:3:23" + }, + "nativeSrc": "27087:18:23", + "nodeType": "YulFunctionCall", + "src": "27087:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "27079:4:23", + "nodeType": "YulIdentifier", + "src": "27079:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27126:9:23", + "nodeType": "YulIdentifier", + "src": "27126:9:23" + }, + { + "kind": "number", + "nativeSrc": "27137:1:23", + "nodeType": "YulLiteral", + "src": "27137:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27122:3:23", + "nodeType": "YulIdentifier", + "src": "27122:3:23" + }, + "nativeSrc": "27122:17:23", + "nodeType": "YulFunctionCall", + "src": "27122:17:23" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "27145:4:23", + "nodeType": "YulIdentifier", + "src": "27145:4:23" + }, + { + "name": "headStart", + "nativeSrc": "27151:9:23", + "nodeType": "YulIdentifier", + "src": "27151:9:23" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "27141:3:23", + "nodeType": "YulIdentifier", + "src": "27141:3:23" + }, + "nativeSrc": "27141:20:23", + "nodeType": "YulFunctionCall", + "src": "27141:20:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27115:6:23", + "nodeType": "YulIdentifier", + "src": "27115:6:23" + }, + "nativeSrc": "27115:47:23", + "nodeType": "YulFunctionCall", + "src": "27115:47:23" + }, + "nativeSrc": "27115:47:23", + "nodeType": "YulExpressionStatement", + "src": "27115:47:23" + }, + { + "nativeSrc": "27171:139:23", + "nodeType": "YulAssignment", + "src": "27171:139:23", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "27305:4:23", + "nodeType": "YulIdentifier", + "src": "27305:4:23" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2_to_t_string_memory_ptr_fromStack", + "nativeSrc": "27179:124:23", + "nodeType": "YulIdentifier", + "src": "27179:124:23" + }, + "nativeSrc": "27179:131:23", + "nodeType": "YulFunctionCall", + "src": "27179:131:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "27171:4:23", + "nodeType": "YulIdentifier", + "src": "27171:4:23" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "26898:419:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27049:9:23", + "nodeType": "YulTypedName", + "src": "27049:9:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "27064:4:23", + "nodeType": "YulTypedName", + "src": "27064:4:23", + "type": "" + } + ], + "src": "26898:419:23" + }, + { + "body": { + "nativeSrc": "27449:206:23", + "nodeType": "YulBlock", + "src": "27449:206:23", + "statements": [ + { + "nativeSrc": "27459:26:23", + "nodeType": "YulAssignment", + "src": "27459:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27471:9:23", + "nodeType": "YulIdentifier", + "src": "27471:9:23" + }, + { + "kind": "number", + "nativeSrc": "27482:2:23", + "nodeType": "YulLiteral", + "src": "27482:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27467:3:23", + "nodeType": "YulIdentifier", + "src": "27467:3:23" + }, + "nativeSrc": "27467:18:23", + "nodeType": "YulFunctionCall", + "src": "27467:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "27459:4:23", + "nodeType": "YulIdentifier", + "src": "27459:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "27539:6:23", + "nodeType": "YulIdentifier", + "src": "27539:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27552:9:23", + "nodeType": "YulIdentifier", + "src": "27552:9:23" + }, + { + "kind": "number", + "nativeSrc": "27563:1:23", + "nodeType": "YulLiteral", + "src": "27563:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27548:3:23", + "nodeType": "YulIdentifier", + "src": "27548:3:23" + }, + "nativeSrc": "27548:17:23", + "nodeType": "YulFunctionCall", + "src": "27548:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "27495:43:23", + "nodeType": "YulIdentifier", + "src": "27495:43:23" + }, + "nativeSrc": "27495:71:23", + "nodeType": "YulFunctionCall", + "src": "27495:71:23" + }, + "nativeSrc": "27495:71:23", + "nodeType": "YulExpressionStatement", + "src": "27495:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "27620:6:23", + "nodeType": "YulIdentifier", + "src": "27620:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27633:9:23", + "nodeType": "YulIdentifier", + "src": "27633:9:23" + }, + { + "kind": "number", + "nativeSrc": "27644:2:23", + "nodeType": "YulLiteral", + "src": "27644:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27629:3:23", + "nodeType": "YulIdentifier", + "src": "27629:3:23" + }, + "nativeSrc": "27629:18:23", + "nodeType": "YulFunctionCall", + "src": "27629:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "27576:43:23", + "nodeType": "YulIdentifier", + "src": "27576:43:23" + }, + "nativeSrc": "27576:72:23", + "nodeType": "YulFunctionCall", + "src": "27576:72:23" + }, + "nativeSrc": "27576:72:23", + "nodeType": "YulExpressionStatement", + "src": "27576:72:23" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "27323:332:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27413:9:23", + "nodeType": "YulTypedName", + "src": "27413:9:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "27425:6:23", + "nodeType": "YulTypedName", + "src": "27425:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "27433:6:23", + "nodeType": "YulTypedName", + "src": "27433:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "27444:4:23", + "nodeType": "YulTypedName", + "src": "27444:4:23", + "type": "" + } + ], + "src": "27323:332:23" + }, + { + "body": { + "nativeSrc": "27781:200:23", + "nodeType": "YulBlock", + "src": "27781:200:23", + "statements": [ + { + "nativeSrc": "27791:26:23", + "nodeType": "YulAssignment", + "src": "27791:26:23", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27803:9:23", + "nodeType": "YulIdentifier", + "src": "27803:9:23" + }, + { + "kind": "number", + "nativeSrc": "27814:2:23", + "nodeType": "YulLiteral", + "src": "27814:2:23", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27799:3:23", + "nodeType": "YulIdentifier", + "src": "27799:3:23" + }, + "nativeSrc": "27799:18:23", + "nodeType": "YulFunctionCall", + "src": "27799:18:23" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "27791:4:23", + "nodeType": "YulIdentifier", + "src": "27791:4:23" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "27871:6:23", + "nodeType": "YulIdentifier", + "src": "27871:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27884:9:23", + "nodeType": "YulIdentifier", + "src": "27884:9:23" + }, + { + "kind": "number", + "nativeSrc": "27895:1:23", + "nodeType": "YulLiteral", + "src": "27895:1:23", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27880:3:23", + "nodeType": "YulIdentifier", + "src": "27880:3:23" + }, + "nativeSrc": "27880:17:23", + "nodeType": "YulFunctionCall", + "src": "27880:17:23" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "27827:43:23", + "nodeType": "YulIdentifier", + "src": "27827:43:23" + }, + "nativeSrc": "27827:71:23", + "nodeType": "YulFunctionCall", + "src": "27827:71:23" + }, + "nativeSrc": "27827:71:23", + "nodeType": "YulExpressionStatement", + "src": "27827:71:23" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "27946:6:23", + "nodeType": "YulIdentifier", + "src": "27946:6:23" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27959:9:23", + "nodeType": "YulIdentifier", + "src": "27959:9:23" + }, + { + "kind": "number", + "nativeSrc": "27970:2:23", + "nodeType": "YulLiteral", + "src": "27970:2:23", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27955:3:23", + "nodeType": "YulIdentifier", + "src": "27955:3:23" + }, + "nativeSrc": "27955:18:23", + "nodeType": "YulFunctionCall", + "src": "27955:18:23" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "27908:37:23", + "nodeType": "YulIdentifier", + "src": "27908:37:23" + }, + "nativeSrc": "27908:66:23", + "nodeType": "YulFunctionCall", + "src": "27908:66:23" + }, + "nativeSrc": "27908:66:23", + "nodeType": "YulExpressionStatement", + "src": "27908:66:23" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed", + "nativeSrc": "27661:320:23", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27745:9:23", + "nodeType": "YulTypedName", + "src": "27745:9:23", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "27757:6:23", + "nodeType": "YulTypedName", + "src": "27757:6:23", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "27765:6:23", + "nodeType": "YulTypedName", + "src": "27765:6:23", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "27776:4:23", + "nodeType": "YulTypedName", + "src": "27776:4:23", + "type": "" + } + ], + "src": "27661:320:23" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_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_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_uint256t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(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 let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(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 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_string_memory_ptr_t_uint256_t_address_t_bool_t_uint256_t_uint256__to_t_string_memory_ptr_t_uint256_t_address_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 192)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value5, add(headStart, 160))\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_uint256t_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_uint256(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 abi_decode_tuple_t_uint256t_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_uint256(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 abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_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 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_encode_tuple_t_string_memory_ptr_t_uint256_t_address_t_uint256_t_uint256_t_bool__to_t_string_memory_ptr_t_uint256_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 192)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_bool_to_t_bool_fromStack(value5, add(headStart, 160))\n\n }\n\n function store_literal_in_memory_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761(memPtr) {\n\n mstore(add(memPtr, 0), \"Only the contract owner can call\")\n\n mstore(add(memPtr, 32), \" this function.\")\n\n }\n\n function abi_encode_t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761__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_e93a3f0421f1c81ff2cf5e4af9249f9c628bc6c5056119c94d1b558d29d45761_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4(memPtr) {\n\n mstore(add(memPtr, 0), \"Event date must be in the future\")\n\n mstore(add(memPtr, 32), \".\")\n\n }\n\n function abi_encode_t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4__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_4835dd4f365ccc51b462d4466a370927b99472f9f1b48ae7d5bbdf14599a0ad4_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c(memPtr) {\n\n mstore(add(memPtr, 0), \"Max capacity must be greater tha\")\n\n mstore(add(memPtr, 32), \"n zero.\")\n\n }\n\n function abi_encode_t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c__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_d082a523d4647df09069fe16dbb475e1e642631be6a48dc5c45140b4b971f94c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0(memPtr) {\n\n mstore(add(memPtr, 0), \"Required NFT address is not a co\")\n\n mstore(add(memPtr, 32), \"ntract\")\n\n }\n\n function abi_encode_t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0__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_5c07609ab81767bbbb6096c23027f3c93a386dc10cb4ba7bd33fe88ae8d408d0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf(memPtr) {\n\n mstore(add(memPtr, 0), \"Required NFT Address is not an E\")\n\n mstore(add(memPtr, 32), \"RC721 contract\")\n\n }\n\n function abi_encode_t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf__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_74131e0168aa8b86fdbfd278b8bf9bc8ca6d76db09e1b1127e161adeb07a4caf_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256_t_address_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256_t_address_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_address_to_t_address_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function store_literal_in_memory_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305(memPtr) {\n\n mstore(add(memPtr, 0), \"Event is not active.\")\n\n }\n\n function abi_encode_t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305__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_e4aa11c7747f9b9756d73ee3ed1b96922b889b7d78a095691d8c602d36360305_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a(memPtr) {\n\n mstore(add(memPtr, 0), \"Event registration has closed.\")\n\n }\n\n function abi_encode_t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a__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_18aaf55c0d4104e3e9e984ea26f118cb57c6a00f88df5b1bdbecc25dca3ec56a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b(memPtr) {\n\n mstore(add(memPtr, 0), \"Event is fully booked.\")\n\n }\n\n function abi_encode_t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b__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_77b8d03ebfda2d88dc6ab8d48ebd33c230b431cbc5e6bd9c40a897a13252fa6b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62(memPtr) {\n\n mstore(add(memPtr, 0), \"You are already registered for t\")\n\n mstore(add(memPtr, 32), \"his event.\")\n\n }\n\n function abi_encode_t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62__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_a4ab81ed27f041cd6272ba25ae43a2bb12334df45c99b6cfbf8674366e2b2c62_to_t_string_memory_ptr_fromStack( tail)\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_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2(memPtr) {\n\n mstore(add(memPtr, 0), \"You do not own the required NFT.\")\n\n }\n\n function abi_encode_t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2__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_57061c238235bcc40a6124f00e29ed4ae6e8405c61fdbe6ef9213a5fb95a1ac2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__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_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__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_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", + "id": 23, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100885760003560e01c806357f697991161005b57806357f69799146101165780638da5cb5b14610146578063e01a0ebe14610164578063ec38d5a01461018257610088565b8063018c97241461008d5780630b791430146100a9578063406db843146100de57806354484fb0146100fa575b600080fd5b6100a760048036038101906100a29190610d8b565b6101b7565b005b6100c360048036038101906100be9190610e0e565b6104f0565b6040516100d596959493929190610ef3565b60405180910390f35b6100f860048036038101906100f39190610e0e565b6105e1565b005b610114600480360381019061010f9190610f87565b6108f9565b005b610130600480360381019061012b9190610fc7565b6109fa565b60405161013d9190611007565b60405180910390f35b61014e610a65565b60405161015b9190611022565b60405180910390f35b61016c610a8b565b604051610179919061103d565b60405180910390f35b61019c60048036038101906101979190610e0e565b610a91565b6040516101ae96959493929190611058565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023e90611132565b60405180910390fd5b428311610289576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610280906111c4565b60405180910390fd5b600081116102cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c390611256565b60405180910390fd5b6000823b905060008163ffffffff161161031b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610312906112e8565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f80ac58cd000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016103749190611343565b602060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b59190611373565b6103f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103eb90611412565b60405180910390fd5b6000600160008054815260200190815260200160002090508581600001908161041d919061163e565b50848160010181905550838160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082816003018190555060018160020160146101000a81548160ff0219169083151502179055507f88f91a8cee50507bf8f67ddf436d225a426a493c10f4a94db0ad16d480de7dd7600054878787876040516104c9959493929190611710565b60405180910390a16000808154809291906104e390611799565b9190505550505050505050565b600160205280600052604060002060009150905080600001805461051390611461565b80601f016020809104026020016040519081016040528092919081815260200182805461053f90611461565b801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b5050505050908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154905086565b60006001600083815260200190815260200160002090508060020160149054906101000a900460ff16610649576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106409061182d565b60405180910390fd5b8060010154421061068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690611899565b60405180910390fd5b80600301548160040154106106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d090611905565b60405180910390fd5b8060050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90611997565b60405180910390fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016107c79190611022565b602060405180830381865afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080891906119cc565b11610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90611a45565b60405180910390fd5b60018160050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060040160008154809291906108b790611799565b91905055507fb442efe467d2ef30e62927a3cae0afcbc799a8a0944d8a143332e4e5e51cee5d82336040516108ed929190611a65565b60405180910390a15050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090611132565b60405180910390fd5b6000600160008481526020019081526020016000209050818160020160146101000a81548160ff0219169083151502179055507fa84e22267ca5f39c3dc082a44444f3f681b9f38a5287a019487a246f28a04b0983836040516109ed929190611a8e565b60405180910390a1505050565b60006001600084815260200190815260200160002060050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60606000806000806000806001600089815260200190815260200160002090508060000181600101548260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003015484600401548560020160149054906101000a900460ff16858054610b0790611461565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3390611461565b8015610b805780601f10610b5557610100808354040283529160200191610b80565b820191906000526020600020905b815481529060010190602001808311610b6357829003601f168201915b505050505095509650965096509650965096505091939550919395565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c0482610bbb565b810181811067ffffffffffffffff82111715610c2357610c22610bcc565b5b80604052505050565b6000610c36610b9d565b9050610c428282610bfb565b919050565b600067ffffffffffffffff821115610c6257610c61610bcc565b5b610c6b82610bbb565b9050602081019050919050565b82818337600083830152505050565b6000610c9a610c9584610c47565b610c2c565b905082815260208101848484011115610cb657610cb5610bb6565b5b610cc1848285610c78565b509392505050565b600082601f830112610cde57610cdd610bb1565b5b8135610cee848260208601610c87565b91505092915050565b6000819050919050565b610d0a81610cf7565b8114610d1557600080fd5b50565b600081359050610d2781610d01565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d5882610d2d565b9050919050565b610d6881610d4d565b8114610d7357600080fd5b50565b600081359050610d8581610d5f565b92915050565b60008060008060808587031215610da557610da4610ba7565b5b600085013567ffffffffffffffff811115610dc357610dc2610bac565b5b610dcf87828801610cc9565b9450506020610de087828801610d18565b9350506040610df187828801610d76565b9250506060610e0287828801610d18565b91505092959194509250565b600060208284031215610e2457610e23610ba7565b5b6000610e3284828501610d18565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e75578082015181840152602081019050610e5a565b60008484015250505050565b6000610e8c82610e3b565b610e968185610e46565b9350610ea6818560208601610e57565b610eaf81610bbb565b840191505092915050565b610ec381610cf7565b82525050565b610ed281610d4d565b82525050565b60008115159050919050565b610eed81610ed8565b82525050565b600060c0820190508181036000830152610f0d8189610e81565b9050610f1c6020830188610eba565b610f296040830187610ec9565b610f366060830186610ee4565b610f436080830185610eba565b610f5060a0830184610eba565b979650505050505050565b610f6481610ed8565b8114610f6f57600080fd5b50565b600081359050610f8181610f5b565b92915050565b60008060408385031215610f9e57610f9d610ba7565b5b6000610fac85828601610d18565b9250506020610fbd85828601610f72565b9150509250929050565b60008060408385031215610fde57610fdd610ba7565b5b6000610fec85828601610d18565b9250506020610ffd85828601610d76565b9150509250929050565b600060208201905061101c6000830184610ee4565b92915050565b60006020820190506110376000830184610ec9565b92915050565b60006020820190506110526000830184610eba565b92915050565b600060c08201905081810360008301526110728189610e81565b90506110816020830188610eba565b61108e6040830187610ec9565b61109b6060830186610eba565b6110a86080830185610eba565b6110b560a0830184610ee4565b979650505050505050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e2e0000000000000000000000000000000000602082015250565b600061111c602f83610e46565b9150611127826110c0565b604082019050919050565b6000602082019050818103600083015261114b8161110f565b9050919050565b7f4576656e742064617465206d75737420626520696e207468652066757475726560008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ae602183610e46565b91506111b982611152565b604082019050919050565b600060208201905081810360008301526111dd816111a1565b9050919050565b7f4d6178206361706163697479206d75737420626520677265617465722074686160008201527f6e207a65726f2e00000000000000000000000000000000000000000000000000602082015250565b6000611240602783610e46565b915061124b826111e4565b604082019050919050565b6000602082019050818103600083015261126f81611233565b9050919050565b7f5265717569726564204e46542061646472657373206973206e6f74206120636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006112d2602683610e46565b91506112dd82611276565b604082019050919050565b60006020820190508181036000830152611301816112c5565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61133d81611308565b82525050565b60006020820190506113586000830184611334565b92915050565b60008151905061136d81610f5b565b92915050565b60006020828403121561138957611388610ba7565b5b60006113978482850161135e565b91505092915050565b7f5265717569726564204e46542041646472657373206973206e6f7420616e204560008201527f524337323120636f6e7472616374000000000000000000000000000000000000602082015250565b60006113fc602e83610e46565b9150611407826113a0565b604082019050919050565b6000602082019050818103600083015261142b816113ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061147957607f821691505b60208210810361148c5761148b611432565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026114f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114b7565b6114fe86836114b7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061153b61153661153184610cf7565b611516565b610cf7565b9050919050565b6000819050919050565b61155583611520565b61156961156182611542565b8484546114c4565b825550505050565b600090565b61157e611571565b61158981848461154c565b505050565b5b818110156115ad576115a2600082611576565b60018101905061158f565b5050565b601f8211156115f2576115c381611492565b6115cc846114a7565b810160208510156115db578190505b6115ef6115e7856114a7565b83018261158e565b50505b505050565b600082821c905092915050565b6000611615600019846008026115f7565b1980831691505092915050565b600061162e8383611604565b9150826002028217905092915050565b61164782610e3b565b67ffffffffffffffff8111156116605761165f610bcc565b5b61166a8254611461565b6116758282856115b1565b600060209050601f8311600181146116a85760008415611696578287015190505b6116a08582611622565b865550611708565b601f1984166116b686611492565b60005b828110156116de578489015182556001820191506020850194506020810190506116b9565b868310156116fb57848901516116f7601f891682611604565b8355505b6001600288020188555050505b505050505050565b600060a0820190506117256000830188610eba565b81810360208301526117378187610e81565b90506117466040830186610eba565b6117536060830185610ec9565b6117606080830184610eba565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117a482610cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117d6576117d561176a565b5b600182019050919050565b7f4576656e74206973206e6f74206163746976652e000000000000000000000000600082015250565b6000611817601483610e46565b9150611822826117e1565b602082019050919050565b600060208201905081810360008301526118468161180a565b9050919050565b7f4576656e7420726567697374726174696f6e2068617320636c6f7365642e0000600082015250565b6000611883601e83610e46565b915061188e8261184d565b602082019050919050565b600060208201905081810360008301526118b281611876565b9050919050565b7f4576656e742069732066756c6c7920626f6f6b65642e00000000000000000000600082015250565b60006118ef601683610e46565b91506118fa826118b9565b602082019050919050565b6000602082019050818103600083015261191e816118e2565b9050919050565b7f596f752061726520616c7265616479207265676973746572656420666f72207460008201527f686973206576656e742e00000000000000000000000000000000000000000000602082015250565b6000611981602a83610e46565b915061198c82611925565b604082019050919050565b600060208201905081810360008301526119b081611974565b9050919050565b6000815190506119c681610d01565b92915050565b6000602082840312156119e2576119e1610ba7565b5b60006119f0848285016119b7565b91505092915050565b7f596f7520646f206e6f74206f776e20746865207265717569726564204e46542e600082015250565b6000611a2f602083610e46565b9150611a3a826119f9565b602082019050919050565b60006020820190508181036000830152611a5e81611a22565b9050919050565b6000604082019050611a7a6000830185610eba565b611a876020830184610ec9565b9392505050565b6000604082019050611aa36000830185610eba565b611ab06020830184610ee4565b939250505056fea2646970667358221220b81122f3d7fa77d393f93b387b6461c781010b6213edb81c2d5b17c3c36778a064736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57F69799 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x57F69799 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0xE01A0EBE EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0xEC38D5A0 EQ PUSH2 0x182 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x18C9724 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0xB791430 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x406DB843 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x54484FB0 EQ PUSH2 0xFA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0xD8B JUMP JUMPDEST PUSH2 0x1B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xEF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x5E1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x114 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10F SWAP2 SWAP1 PUSH2 0xF87 JUMP JUMPDEST PUSH2 0x8F9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xFC7 JUMP JUMPDEST PUSH2 0x9FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14E PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15B SWAP2 SWAP1 PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16C PUSH2 0xA8B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x103D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x197 SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1058 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x247 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23E SWAP1 PUSH2 0x1132 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP4 GT PUSH2 0x289 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x280 SWAP1 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2CC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2C3 SWAP1 PUSH2 0x1256 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 PUSH4 0xFFFFFFFF AND GT PUSH2 0x31B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x312 SWAP1 PUSH2 0x12E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x374 SWAP2 SWAP1 PUSH2 0x1343 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x391 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 0x3B5 SWAP2 SWAP1 PUSH2 0x1373 JUMP JUMPDEST PUSH2 0x3F4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3EB SWAP1 PUSH2 0x1412 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP6 DUP2 PUSH1 0x0 ADD SWAP1 DUP2 PUSH2 0x41D SWAP2 SWAP1 PUSH2 0x163E JUMP JUMPDEST POP DUP5 DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP4 DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x1 DUP2 PUSH1 0x2 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x88F91A8CEE50507BF8F67DDF436D225A426A493C10F4A94DB0AD16D480DE7DD7 PUSH1 0x0 SLOAD DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4C9 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1710 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x4E3 SWAP1 PUSH2 0x1799 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x513 SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x53F SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x58C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x561 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x58C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x56F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x649 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x640 SWAP1 PUSH2 0x182D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD TIMESTAMP LT PUSH2 0x68F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x686 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 ADD SLOAD DUP2 PUSH1 0x4 ADD SLOAD LT PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6D0 SWAP1 PUSH2 0x1905 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 ADD 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 ISZERO PUSH2 0x768 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75F SWAP1 PUSH2 0x1997 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C7 SWAP2 SWAP1 PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7E4 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 0x808 SWAP2 SWAP1 PUSH2 0x19CC JUMP JUMPDEST GT PUSH2 0x848 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x83F SWAP1 PUSH2 0x1A45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x5 ADD 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x4 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x8B7 SWAP1 PUSH2 0x1799 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH32 0xB442EFE467D2EF30E62927A3CAE0AFCBC799A8A0944D8A143332E4E5E51CEE5D DUP3 CALLER PUSH1 0x40 MLOAD PUSH2 0x8ED SWAP3 SWAP2 SWAP1 PUSH2 0x1A65 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x989 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP1 PUSH2 0x1132 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xA84E22267CA5F39C3DC082A44444F3F681B9F38A5287A019487A246F28A04B09 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x9ED SWAP3 SWAP2 SWAP1 PUSH2 0x1A8E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD 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 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x0 ADD DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x3 ADD SLOAD DUP5 PUSH1 0x4 ADD SLOAD DUP6 PUSH1 0x2 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP6 DUP1 SLOAD PUSH2 0xB07 SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB33 SWAP1 PUSH2 0x1461 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB80 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB55 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB80 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB63 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP6 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP POP SWAP2 SWAP4 SWAP6 POP SWAP2 SWAP4 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT 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 0xC04 DUP3 PUSH2 0xBBB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xC23 JUMPI PUSH2 0xC22 PUSH2 0xBCC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC36 PUSH2 0xB9D JUMP JUMPDEST SWAP1 POP PUSH2 0xC42 DUP3 DUP3 PUSH2 0xBFB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xC62 JUMPI PUSH2 0xC61 PUSH2 0xBCC JUMP JUMPDEST JUMPDEST PUSH2 0xC6B DUP3 PUSH2 0xBBB 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 0xC9A PUSH2 0xC95 DUP5 PUSH2 0xC47 JUMP JUMPDEST PUSH2 0xC2C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xCB6 JUMPI PUSH2 0xCB5 PUSH2 0xBB6 JUMP JUMPDEST JUMPDEST PUSH2 0xCC1 DUP5 DUP3 DUP6 PUSH2 0xC78 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCDE JUMPI PUSH2 0xCDD PUSH2 0xBB1 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCEE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xC87 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD0A DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP2 EQ PUSH2 0xD15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD27 DUP2 PUSH2 0xD01 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD58 DUP3 PUSH2 0xD2D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD68 DUP2 PUSH2 0xD4D JUMP JUMPDEST DUP2 EQ PUSH2 0xD73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD85 DUP2 PUSH2 0xD5F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xDA5 JUMPI PUSH2 0xDA4 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC3 JUMPI PUSH2 0xDC2 PUSH2 0xBAC JUMP JUMPDEST JUMPDEST PUSH2 0xDCF DUP8 DUP3 DUP9 ADD PUSH2 0xCC9 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0xDE0 DUP8 DUP3 DUP9 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0xDF1 DUP8 DUP3 DUP9 ADD PUSH2 0xD76 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0xE02 DUP8 DUP3 DUP9 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE24 JUMPI PUSH2 0xE23 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xE32 DUP5 DUP3 DUP6 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP2 POP POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE75 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xE5A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE8C DUP3 PUSH2 0xE3B JUMP JUMPDEST PUSH2 0xE96 DUP2 DUP6 PUSH2 0xE46 JUMP JUMPDEST SWAP4 POP PUSH2 0xEA6 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xE57 JUMP JUMPDEST PUSH2 0xEAF DUP2 PUSH2 0xBBB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEC3 DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xED2 DUP2 PUSH2 0xD4D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEED DUP2 PUSH2 0xED8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF0D DUP2 DUP10 PUSH2 0xE81 JUMP JUMPDEST SWAP1 POP PUSH2 0xF1C PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0xF29 PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0xEC9 JUMP JUMPDEST PUSH2 0xF36 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xEE4 JUMP JUMPDEST PUSH2 0xF43 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0xF50 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF64 DUP2 PUSH2 0xED8 JUMP JUMPDEST DUP2 EQ PUSH2 0xF6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF81 DUP2 PUSH2 0xF5B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF9E JUMPI PUSH2 0xF9D PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFAC DUP6 DUP3 DUP7 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFBD DUP6 DUP3 DUP7 ADD PUSH2 0xF72 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFDE JUMPI PUSH2 0xFDD PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFEC DUP6 DUP3 DUP7 ADD PUSH2 0xD18 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFFD DUP6 DUP3 DUP7 ADD PUSH2 0xD76 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x101C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1037 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1052 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1072 DUP2 DUP10 PUSH2 0xE81 JUMP JUMPDEST SWAP1 POP PUSH2 0x1081 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x108E PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0xEC9 JUMP JUMPDEST PUSH2 0x109B PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x10A8 PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x10B5 PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0xEE4 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4F6E6C792074686520636F6E7472616374206F776E65722063616E2063616C6C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20746869732066756E6374696F6E2E0000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x111C PUSH1 0x2F DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1127 DUP3 PUSH2 0x10C0 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 0x114B DUP2 PUSH2 0x110F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E742064617465206D75737420626520696E2074686520667574757265 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x2E00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11AE PUSH1 0x21 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B9 DUP3 PUSH2 0x1152 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 0x11DD DUP2 PUSH2 0x11A1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6178206361706163697479206D757374206265206772656174657220746861 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E207A65726F2E00000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1240 PUSH1 0x27 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x124B DUP3 PUSH2 0x11E4 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 0x126F DUP2 PUSH2 0x1233 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5265717569726564204E46542061646472657373206973206E6F74206120636F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E74726163740000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12D2 PUSH1 0x26 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x12DD DUP3 PUSH2 0x1276 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 0x1301 DUP2 PUSH2 0x12C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x133D DUP2 PUSH2 0x1308 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1358 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1334 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x136D DUP2 PUSH2 0xF5B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1389 JUMPI PUSH2 0x1388 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1397 DUP5 DUP3 DUP6 ADD PUSH2 0x135E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5265717569726564204E46542041646472657373206973206E6F7420616E2045 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x524337323120636F6E7472616374000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13FC PUSH1 0x2E DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1407 DUP3 PUSH2 0x13A0 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 0x142B DUP2 PUSH2 0x13EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1479 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x148C JUMPI PUSH2 0x148B PUSH2 0x1432 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x14F4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x14B7 JUMP JUMPDEST PUSH2 0x14FE DUP7 DUP4 PUSH2 0x14B7 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x153B PUSH2 0x1536 PUSH2 0x1531 DUP5 PUSH2 0xCF7 JUMP JUMPDEST PUSH2 0x1516 JUMP JUMPDEST PUSH2 0xCF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1555 DUP4 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0x1569 PUSH2 0x1561 DUP3 PUSH2 0x1542 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x14C4 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x157E PUSH2 0x1571 JUMP JUMPDEST PUSH2 0x1589 DUP2 DUP5 DUP5 PUSH2 0x154C JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x15AD JUMPI PUSH2 0x15A2 PUSH1 0x0 DUP3 PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x158F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x15F2 JUMPI PUSH2 0x15C3 DUP2 PUSH2 0x1492 JUMP JUMPDEST PUSH2 0x15CC DUP5 PUSH2 0x14A7 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x15DB JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x15EF PUSH2 0x15E7 DUP6 PUSH2 0x14A7 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x158E JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1615 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x15F7 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x162E DUP4 DUP4 PUSH2 0x1604 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1647 DUP3 PUSH2 0xE3B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1660 JUMPI PUSH2 0x165F PUSH2 0xBCC JUMP JUMPDEST JUMPDEST PUSH2 0x166A DUP3 SLOAD PUSH2 0x1461 JUMP JUMPDEST PUSH2 0x1675 DUP3 DUP3 DUP6 PUSH2 0x15B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1696 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x16A0 DUP6 DUP3 PUSH2 0x1622 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1708 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x16B6 DUP7 PUSH2 0x1492 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x16DE JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x16B9 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x16FB JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x16F7 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1604 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1725 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0xEBA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1737 DUP2 DUP8 PUSH2 0xE81 JUMP JUMPDEST SWAP1 POP PUSH2 0x1746 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x1753 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xEC9 JUMP JUMPDEST PUSH2 0x1760 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP7 SWAP6 POP POP 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 0x17A4 DUP3 PUSH2 0xCF7 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x17D6 JUMPI PUSH2 0x17D5 PUSH2 0x176A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E74206973206E6F74206163746976652E000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1817 PUSH1 0x14 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1822 DUP3 PUSH2 0x17E1 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 0x1846 DUP2 PUSH2 0x180A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E7420726567697374726174696F6E2068617320636C6F7365642E0000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1883 PUSH1 0x1E DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x188E DUP3 PUSH2 0x184D 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 0x18B2 DUP2 PUSH2 0x1876 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4576656E742069732066756C6C7920626F6F6B65642E00000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18EF PUSH1 0x16 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x18FA DUP3 PUSH2 0x18B9 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 0x191E DUP2 PUSH2 0x18E2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F752061726520616C7265616479207265676973746572656420666F722074 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x686973206576656E742E00000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1981 PUSH1 0x2A DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x198C DUP3 PUSH2 0x1925 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 0x19B0 DUP2 PUSH2 0x1974 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x19C6 DUP2 PUSH2 0xD01 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0xBA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x19F0 DUP5 DUP3 DUP6 ADD PUSH2 0x19B7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F7520646F206E6F74206F776E20746865207265717569726564204E46542E PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A2F PUSH1 0x20 DUP4 PUSH2 0xE46 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A3A DUP3 PUSH2 0x19F9 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 0x1A5E DUP2 PUSH2 0x1A22 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A7A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x1A87 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xEC9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1AA3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST PUSH2 0x1AB0 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xEE4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 GT 0x22 RETURN 0xD7 STATICCALL PUSH24 0xD393F93B387B6461C781010B6213EDB81C2D5B17C3C36778 LOG0 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "165:4810:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1514:1373;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;734:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;2949:926;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4468:270;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4797:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;813:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;666:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3915:495;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;1514:1373;949:5;;;;;;;;;;;935:19;;:10;:19;;;913:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;1731:15:::1;1718:10;:28;1696:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;1841:1;1826:12;:16;1818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1958:11;2024:12;2012:25;2004:33;;2073:1;2066:4;:8;;;2058:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2224:12;2216:39;;;2256:25;2216:66;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2194:162;;;;;;;;;;;;:::i;:::-;;;;;;;;;2369:22;2394:6;:22;2401:14:::0;::::1;2394:22;;;;;;;;;;;2369:47;;2448:10;2427:8;:18;;:31;;;;;;:::i;:::-;;2490:10;2469:8;:18;;:31;;;;2534:12;2511:8;:20;;;:35;;;;;;;;;;;;;;;;;;2580:12;2557:8;:20;;:35;;;;2623:4;2603:8;:17;;;:24;;;;;;;;;;;;;;;;;;2645:156;2672:14;;2701:10;2726;2751:12;2778;2645:156;;;;;;;;;;:::i;:::-;;;;;;;;2814:14;::::0;:16:::1;;;;;;;;;:::i;:::-;;;;;;1685:1202;;1514:1373:::0;;;;:::o;734:39::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2949:926::-;3013:26;3042:6;:16;3049:8;3042:16;;;;;;;;;;;3013:45;;3077:12;:21;;;;;;;;;;;;3069:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;3174:12;:22;;;3156:15;:40;3134:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3318:12;:24;;;3287:12;:28;;;:55;3265:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;3426:12;:25;;:37;3452:10;3426:37;;;;;;;;;;;;;;;;;;;;;;;;;3425:38;3403:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;3624:1;3574:12;:24;;;;;;;;;;;;3566:43;;;3610:10;3566:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:59;3544:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;3768:4;3728:12;:25;;:37;3754:10;3728:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;3783:12;:28;;;:30;;;;;;;;;:::i;:::-;;;;;;3831:36;3846:8;3856:10;3831:36;;;;;;;:::i;:::-;;;;;;;;3002:873;2949:926;:::o;4468:270::-;949:5;;;;;;;;;;;935:19;;:10;:19;;;913:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;4584:26:::1;4613:6;:16;4620:8;4613:16;;;;;;;;;;;4584:45;;4664:9;4640:12;:21;;;:33;;;;;;;;;;;;;;;;;;4691:39;4710:8;4720:9;4691:39;;;;;;;:::i;:::-;;;;;;;;4573:165;4468:270:::0;;:::o;4797:175::-;4904:4;4928:6;:16;4935:8;4928:16;;;;;;;;;;;:29;;:36;4958:5;4928:36;;;;;;;;;;;;;;;;;;;;;;;;;4921:43;;4797:175;;;;:::o;813:20::-;;;;;;;;;;;;;:::o;666:29::-;;;;:::o;3915:495::-;4024:13;4039:7;4048;4057;4066;4075:4;4097:26;4126:6;:16;4133:8;4126:16;;;;;;;;;;;4097:45;;4175:12;:22;;4212:12;:22;;;4249:12;:24;;;;;;;;;;;;4288:12;:24;;;4327:12;:28;;;4370:12;:21;;;;;;;;;;;;4153:249;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3915:495;;;;;;;:::o;7:75:23:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:146::-;1707:6;1702:3;1697;1684:30;1748:1;1739:6;1734:3;1730:16;1723:27;1610:146;;;:::o;1762:425::-;1840:5;1865:66;1881:49;1923:6;1881:49;:::i;:::-;1865:66;:::i;:::-;1856:75;;1954:6;1947:5;1940:21;1992:4;1985:5;1981:16;2030:3;2021:6;2016:3;2012:16;2009:25;2006:112;;;2037:79;;:::i;:::-;2006:112;2127:54;2174:6;2169:3;2164;2127:54;:::i;:::-;1846:341;1762:425;;;;;:::o;2207:340::-;2263:5;2312:3;2305:4;2297:6;2293:17;2289:27;2279:122;;2320:79;;:::i;:::-;2279:122;2437:6;2424:20;2462:79;2537:3;2529:6;2522:4;2514:6;2510:17;2462:79;:::i;:::-;2453:88;;2269:278;2207:340;;;;:::o;2553:77::-;2590:7;2619:5;2608:16;;2553:77;;;:::o;2636:122::-;2709:24;2727:5;2709:24;:::i;:::-;2702:5;2699:35;2689:63;;2748:1;2745;2738:12;2689:63;2636:122;:::o;2764:139::-;2810:5;2848:6;2835:20;2826:29;;2864:33;2891:5;2864:33;:::i;:::-;2764:139;;;;:::o;2909:126::-;2946:7;2986:42;2979:5;2975:54;2964:65;;2909:126;;;:::o;3041:96::-;3078:7;3107:24;3125:5;3107:24;:::i;:::-;3096:35;;3041:96;;;:::o;3143:122::-;3216:24;3234:5;3216:24;:::i;:::-;3209:5;3206:35;3196:63;;3255:1;3252;3245:12;3196:63;3143:122;:::o;3271:139::-;3317:5;3355:6;3342:20;3333:29;;3371:33;3398:5;3371:33;:::i;:::-;3271:139;;;;:::o;3416:945::-;3512:6;3520;3528;3536;3585:3;3573:9;3564:7;3560:23;3556:33;3553:120;;;3592:79;;:::i;:::-;3553:120;3740:1;3729:9;3725:17;3712:31;3770:18;3762:6;3759:30;3756:117;;;3792:79;;:::i;:::-;3756:117;3897:63;3952:7;3943:6;3932:9;3928:22;3897:63;:::i;:::-;3887:73;;3683:287;4009:2;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3980:118;4137:2;4163:53;4208:7;4199:6;4188:9;4184:22;4163:53;:::i;:::-;4153:63;;4108:118;4265:2;4291:53;4336:7;4327:6;4316:9;4312:22;4291:53;:::i;:::-;4281:63;;4236:118;3416:945;;;;;;;:::o;4367:329::-;4426:6;4475:2;4463:9;4454:7;4450:23;4446:32;4443:119;;;4481:79;;:::i;:::-;4443:119;4601:1;4626:53;4671:7;4662:6;4651:9;4647:22;4626:53;:::i;:::-;4616:63;;4572:117;4367:329;;;;:::o;4702:99::-;4754:6;4788:5;4782:12;4772:22;;4702:99;;;:::o;4807:169::-;4891:11;4925:6;4920:3;4913:19;4965:4;4960:3;4956:14;4941:29;;4807:169;;;;:::o;4982:246::-;5063:1;5073:113;5087:6;5084:1;5081:13;5073:113;;;5172:1;5167:3;5163:11;5157:18;5153:1;5148:3;5144:11;5137:39;5109:2;5106:1;5102:10;5097:15;;5073:113;;;5220:1;5211:6;5206:3;5202:16;5195:27;5044:184;4982:246;;;:::o;5234:377::-;5322:3;5350:39;5383:5;5350:39;:::i;:::-;5405:71;5469:6;5464:3;5405:71;:::i;:::-;5398:78;;5485:65;5543:6;5538:3;5531:4;5524:5;5520:16;5485:65;:::i;:::-;5575:29;5597:6;5575:29;:::i;:::-;5570:3;5566:39;5559:46;;5326:285;5234:377;;;;:::o;5617:118::-;5704:24;5722:5;5704:24;:::i;:::-;5699:3;5692:37;5617:118;;:::o;5741:::-;5828:24;5846:5;5828:24;:::i;:::-;5823:3;5816:37;5741:118;;:::o;5865:90::-;5899:7;5942:5;5935:13;5928:21;5917:32;;5865:90;;;:::o;5961:109::-;6042:21;6057:5;6042:21;:::i;:::-;6037:3;6030:34;5961:109;;:::o;6076:854::-;6323:4;6361:3;6350:9;6346:19;6338:27;;6411:9;6405:4;6401:20;6397:1;6386:9;6382:17;6375:47;6439:78;6512:4;6503:6;6439:78;:::i;:::-;6431:86;;6527:72;6595:2;6584:9;6580:18;6571:6;6527:72;:::i;:::-;6609;6677:2;6666:9;6662:18;6653:6;6609:72;:::i;:::-;6691:66;6753:2;6742:9;6738:18;6729:6;6691:66;:::i;:::-;6767:73;6835:3;6824:9;6820:19;6811:6;6767:73;:::i;:::-;6850;6918:3;6907:9;6903:19;6894:6;6850:73;:::i;:::-;6076:854;;;;;;;;;:::o;6936:116::-;7006:21;7021:5;7006:21;:::i;:::-;6999:5;6996:32;6986:60;;7042:1;7039;7032:12;6986:60;6936:116;:::o;7058:133::-;7101:5;7139:6;7126:20;7117:29;;7155:30;7179:5;7155:30;:::i;:::-;7058:133;;;;:::o;7197:468::-;7262:6;7270;7319:2;7307:9;7298:7;7294:23;7290:32;7287:119;;;7325:79;;:::i;:::-;7287:119;7445:1;7470:53;7515:7;7506:6;7495:9;7491:22;7470:53;:::i;:::-;7460:63;;7416:117;7572:2;7598:50;7640:7;7631:6;7620:9;7616:22;7598:50;:::i;:::-;7588:60;;7543:115;7197:468;;;;;:::o;7671:474::-;7739:6;7747;7796:2;7784:9;7775:7;7771:23;7767:32;7764:119;;;7802:79;;:::i;:::-;7764:119;7922:1;7947:53;7992:7;7983:6;7972:9;7968:22;7947:53;:::i;:::-;7937:63;;7893:117;8049:2;8075:53;8120:7;8111:6;8100:9;8096:22;8075:53;:::i;:::-;8065:63;;8020:118;7671:474;;;;;:::o;8151:210::-;8238:4;8276:2;8265:9;8261:18;8253:26;;8289:65;8351:1;8340:9;8336:17;8327:6;8289:65;:::i;:::-;8151:210;;;;:::o;8367:222::-;8460:4;8498:2;8487:9;8483:18;8475:26;;8511:71;8579:1;8568:9;8564:17;8555:6;8511:71;:::i;:::-;8367:222;;;;:::o;8595:::-;8688:4;8726:2;8715:9;8711:18;8703:26;;8739:71;8807:1;8796:9;8792:17;8783:6;8739:71;:::i;:::-;8595:222;;;;:::o;8823:854::-;9070:4;9108:3;9097:9;9093:19;9085:27;;9158:9;9152:4;9148:20;9144:1;9133:9;9129:17;9122:47;9186:78;9259:4;9250:6;9186:78;:::i;:::-;9178:86;;9274:72;9342:2;9331:9;9327:18;9318:6;9274:72;:::i;:::-;9356;9424:2;9413:9;9409:18;9400:6;9356:72;:::i;:::-;9438;9506:2;9495:9;9491:18;9482:6;9438:72;:::i;:::-;9520:73;9588:3;9577:9;9573:19;9564:6;9520:73;:::i;:::-;9603:67;9665:3;9654:9;9650:19;9641:6;9603:67;:::i;:::-;8823:854;;;;;;;;;:::o;9683:234::-;9823:34;9819:1;9811:6;9807:14;9800:58;9892:17;9887:2;9879:6;9875:15;9868:42;9683:234;:::o;9923:366::-;10065:3;10086:67;10150:2;10145:3;10086:67;:::i;:::-;10079:74;;10162:93;10251:3;10162:93;:::i;:::-;10280:2;10275:3;10271:12;10264:19;;9923:366;;;:::o;10295:419::-;10461:4;10499:2;10488:9;10484:18;10476:26;;10548:9;10542:4;10538:20;10534:1;10523:9;10519:17;10512:47;10576:131;10702:4;10576:131;:::i;:::-;10568:139;;10295:419;;;:::o;10720:220::-;10860:34;10856:1;10848:6;10844:14;10837:58;10929:3;10924:2;10916:6;10912:15;10905:28;10720:220;:::o;10946:366::-;11088:3;11109:67;11173:2;11168:3;11109:67;:::i;:::-;11102:74;;11185:93;11274:3;11185:93;:::i;:::-;11303:2;11298:3;11294:12;11287:19;;10946:366;;;:::o;11318:419::-;11484:4;11522:2;11511:9;11507:18;11499:26;;11571:9;11565:4;11561:20;11557:1;11546:9;11542:17;11535:47;11599:131;11725:4;11599:131;:::i;:::-;11591:139;;11318:419;;;:::o;11743:226::-;11883:34;11879:1;11871:6;11867:14;11860:58;11952:9;11947:2;11939:6;11935:15;11928:34;11743:226;:::o;11975:366::-;12117:3;12138:67;12202:2;12197:3;12138:67;:::i;:::-;12131:74;;12214:93;12303:3;12214:93;:::i;:::-;12332:2;12327:3;12323:12;12316:19;;11975:366;;;:::o;12347:419::-;12513:4;12551:2;12540:9;12536:18;12528:26;;12600:9;12594:4;12590:20;12586:1;12575:9;12571:17;12564:47;12628:131;12754:4;12628:131;:::i;:::-;12620:139;;12347:419;;;:::o;12772:225::-;12912:34;12908:1;12900:6;12896:14;12889:58;12981:8;12976:2;12968:6;12964:15;12957:33;12772:225;:::o;13003:366::-;13145:3;13166:67;13230:2;13225:3;13166:67;:::i;:::-;13159:74;;13242:93;13331:3;13242:93;:::i;:::-;13360:2;13355:3;13351:12;13344:19;;13003:366;;;:::o;13375:419::-;13541:4;13579:2;13568:9;13564:18;13556:26;;13628:9;13622:4;13618:20;13614:1;13603:9;13599:17;13592:47;13656:131;13782:4;13656:131;:::i;:::-;13648:139;;13375:419;;;:::o;13800:149::-;13836:7;13876:66;13869:5;13865:78;13854:89;;13800:149;;;:::o;13955:115::-;14040:23;14057:5;14040:23;:::i;:::-;14035:3;14028:36;13955:115;;:::o;14076:218::-;14167:4;14205:2;14194:9;14190:18;14182:26;;14218:69;14284:1;14273:9;14269:17;14260:6;14218:69;:::i;:::-;14076:218;;;;:::o;14300:137::-;14354:5;14385:6;14379:13;14370:22;;14401:30;14425:5;14401:30;:::i;:::-;14300:137;;;;:::o;14443:345::-;14510:6;14559:2;14547:9;14538:7;14534:23;14530:32;14527:119;;;14565:79;;:::i;:::-;14527:119;14685:1;14710:61;14763:7;14754:6;14743:9;14739:22;14710:61;:::i;:::-;14700:71;;14656:125;14443:345;;;;:::o;14794:233::-;14934:34;14930:1;14922:6;14918:14;14911:58;15003:16;14998:2;14990:6;14986:15;14979:41;14794:233;:::o;15033:366::-;15175:3;15196:67;15260:2;15255:3;15196:67;:::i;:::-;15189:74;;15272:93;15361:3;15272:93;:::i;:::-;15390:2;15385:3;15381:12;15374:19;;15033:366;;;:::o;15405:419::-;15571:4;15609:2;15598:9;15594:18;15586:26;;15658:9;15652:4;15648:20;15644:1;15633:9;15629:17;15622:47;15686:131;15812:4;15686:131;:::i;:::-;15678:139;;15405:419;;;:::o;15830:180::-;15878:77;15875:1;15868:88;15975:4;15972:1;15965:15;15999:4;15996:1;15989:15;16016:320;16060:6;16097:1;16091:4;16087:12;16077:22;;16144:1;16138:4;16134:12;16165:18;16155:81;;16221:4;16213:6;16209:17;16199:27;;16155:81;16283:2;16275:6;16272:14;16252:18;16249:38;16246:84;;16302:18;;:::i;:::-;16246:84;16067:269;16016:320;;;:::o;16342:141::-;16391:4;16414:3;16406:11;;16437:3;16434:1;16427:14;16471:4;16468:1;16458:18;16450:26;;16342:141;;;:::o;16489:93::-;16526:6;16573:2;16568;16561:5;16557:14;16553:23;16543:33;;16489:93;;;:::o;16588:107::-;16632:8;16682:5;16676:4;16672:16;16651:37;;16588:107;;;;:::o;16701:393::-;16770:6;16820:1;16808:10;16804:18;16843:97;16873:66;16862:9;16843:97;:::i;:::-;16961:39;16991:8;16980:9;16961:39;:::i;:::-;16949:51;;17033:4;17029:9;17022:5;17018:21;17009:30;;17082:4;17072:8;17068:19;17061:5;17058:30;17048:40;;16777:317;;16701:393;;;;;:::o;17100:60::-;17128:3;17149:5;17142:12;;17100:60;;;:::o;17166:142::-;17216:9;17249:53;17267:34;17276:24;17294:5;17276:24;:::i;:::-;17267:34;:::i;:::-;17249:53;:::i;:::-;17236:66;;17166:142;;;:::o;17314:75::-;17357:3;17378:5;17371:12;;17314:75;;;:::o;17395:269::-;17505:39;17536:7;17505:39;:::i;:::-;17566:91;17615:41;17639:16;17615:41;:::i;:::-;17607:6;17600:4;17594:11;17566:91;:::i;:::-;17560:4;17553:105;17471:193;17395:269;;;:::o;17670:73::-;17715:3;17670:73;:::o;17749:189::-;17826:32;;:::i;:::-;17867:65;17925:6;17917;17911:4;17867:65;:::i;:::-;17802:136;17749:189;;:::o;17944:186::-;18004:120;18021:3;18014:5;18011:14;18004:120;;;18075:39;18112:1;18105:5;18075:39;:::i;:::-;18048:1;18041:5;18037:13;18028:22;;18004:120;;;17944:186;;:::o;18136:543::-;18237:2;18232:3;18229:11;18226:446;;;18271:38;18303:5;18271:38;:::i;:::-;18355:29;18373:10;18355:29;:::i;:::-;18345:8;18341:44;18538:2;18526:10;18523:18;18520:49;;;18559:8;18544:23;;18520:49;18582:80;18638:22;18656:3;18638:22;:::i;:::-;18628:8;18624:37;18611:11;18582:80;:::i;:::-;18241:431;;18226:446;18136:543;;;:::o;18685:117::-;18739:8;18789:5;18783:4;18779:16;18758:37;;18685:117;;;;:::o;18808:169::-;18852:6;18885:51;18933:1;18929:6;18921:5;18918:1;18914:13;18885:51;:::i;:::-;18881:56;18966:4;18960;18956:15;18946:25;;18859:118;18808:169;;;;:::o;18982:295::-;19058:4;19204:29;19229:3;19223:4;19204:29;:::i;:::-;19196:37;;19266:3;19263:1;19259:11;19253:4;19250:21;19242:29;;18982:295;;;;:::o;19282:1395::-;19399:37;19432:3;19399:37;:::i;:::-;19501:18;19493:6;19490:30;19487:56;;;19523:18;;:::i;:::-;19487:56;19567:38;19599:4;19593:11;19567:38;:::i;:::-;19652:67;19712:6;19704;19698:4;19652:67;:::i;:::-;19746:1;19770:4;19757:17;;19802:2;19794:6;19791:14;19819:1;19814:618;;;;20476:1;20493:6;20490:77;;;20542:9;20537:3;20533:19;20527:26;20518:35;;20490:77;20593:67;20653:6;20646:5;20593:67;:::i;:::-;20587:4;20580:81;20449:222;19784:887;;19814:618;19866:4;19862:9;19854:6;19850:22;19900:37;19932:4;19900:37;:::i;:::-;19959:1;19973:208;19987:7;19984:1;19981:14;19973:208;;;20066:9;20061:3;20057:19;20051:26;20043:6;20036:42;20117:1;20109:6;20105:14;20095:24;;20164:2;20153:9;20149:18;20136:31;;20010:4;20007:1;20003:12;19998:17;;19973:208;;;20209:6;20200:7;20197:19;20194:179;;;20267:9;20262:3;20258:19;20252:26;20310:48;20352:4;20344:6;20340:17;20329:9;20310:48;:::i;:::-;20302:6;20295:64;20217:156;20194:179;20419:1;20415;20407:6;20403:14;20399:22;20393:4;20386:36;19821:611;;;19784:887;;19374:1303;;;19282:1395;;:::o;20683:755::-;20908:4;20946:3;20935:9;20931:19;20923:27;;20960:71;21028:1;21017:9;21013:17;21004:6;20960:71;:::i;:::-;21078:9;21072:4;21068:20;21063:2;21052:9;21048:18;21041:48;21106:78;21179:4;21170:6;21106:78;:::i;:::-;21098:86;;21194:72;21262:2;21251:9;21247:18;21238:6;21194:72;:::i;:::-;21276;21344:2;21333:9;21329:18;21320:6;21276:72;:::i;:::-;21358:73;21426:3;21415:9;21411:19;21402:6;21358:73;:::i;:::-;20683:755;;;;;;;;:::o;21444:180::-;21492:77;21489:1;21482:88;21589:4;21586:1;21579:15;21613:4;21610:1;21603:15;21630:233;21669:3;21692:24;21710:5;21692:24;:::i;:::-;21683:33;;21738:66;21731:5;21728:77;21725:103;;21808:18;;:::i;:::-;21725:103;21855:1;21848:5;21844:13;21837:20;;21630:233;;;:::o;21869:170::-;22009:22;22005:1;21997:6;21993:14;21986:46;21869:170;:::o;22045:366::-;22187:3;22208:67;22272:2;22267:3;22208:67;:::i;:::-;22201:74;;22284:93;22373:3;22284:93;:::i;:::-;22402:2;22397:3;22393:12;22386:19;;22045:366;;;:::o;22417:419::-;22583:4;22621:2;22610:9;22606:18;22598:26;;22670:9;22664:4;22660:20;22656:1;22645:9;22641:17;22634:47;22698:131;22824:4;22698:131;:::i;:::-;22690:139;;22417:419;;;:::o;22842:180::-;22982:32;22978:1;22970:6;22966:14;22959:56;22842:180;:::o;23028:366::-;23170:3;23191:67;23255:2;23250:3;23191:67;:::i;:::-;23184:74;;23267:93;23356:3;23267:93;:::i;:::-;23385:2;23380:3;23376:12;23369:19;;23028:366;;;:::o;23400:419::-;23566:4;23604:2;23593:9;23589:18;23581:26;;23653:9;23647:4;23643:20;23639:1;23628:9;23624:17;23617:47;23681:131;23807:4;23681:131;:::i;:::-;23673:139;;23400:419;;;:::o;23825:172::-;23965:24;23961:1;23953:6;23949:14;23942:48;23825:172;:::o;24003:366::-;24145:3;24166:67;24230:2;24225:3;24166:67;:::i;:::-;24159:74;;24242:93;24331:3;24242:93;:::i;:::-;24360:2;24355:3;24351:12;24344:19;;24003:366;;;:::o;24375:419::-;24541:4;24579:2;24568:9;24564:18;24556:26;;24628:9;24622:4;24618:20;24614:1;24603:9;24599:17;24592:47;24656:131;24782:4;24656:131;:::i;:::-;24648:139;;24375:419;;;:::o;24800:229::-;24940:34;24936:1;24928:6;24924:14;24917:58;25009:12;25004:2;24996:6;24992:15;24985:37;24800:229;:::o;25035:366::-;25177:3;25198:67;25262:2;25257:3;25198:67;:::i;:::-;25191:74;;25274:93;25363:3;25274:93;:::i;:::-;25392:2;25387:3;25383:12;25376:19;;25035:366;;;:::o;25407:419::-;25573:4;25611:2;25600:9;25596:18;25588:26;;25660:9;25654:4;25650:20;25646:1;25635:9;25631:17;25624:47;25688:131;25814:4;25688:131;:::i;:::-;25680:139;;25407:419;;;:::o;25832:143::-;25889:5;25920:6;25914:13;25905:22;;25936:33;25963:5;25936:33;:::i;:::-;25832:143;;;;:::o;25981:351::-;26051:6;26100:2;26088:9;26079:7;26075:23;26071:32;26068:119;;;26106:79;;:::i;:::-;26068:119;26226:1;26251:64;26307:7;26298:6;26287:9;26283:22;26251:64;:::i;:::-;26241:74;;26197:128;25981:351;;;;:::o;26338:182::-;26478:34;26474:1;26466:6;26462:14;26455:58;26338:182;:::o;26526:366::-;26668:3;26689:67;26753:2;26748:3;26689:67;:::i;:::-;26682:74;;26765:93;26854:3;26765:93;:::i;:::-;26883:2;26878:3;26874:12;26867:19;;26526:366;;;:::o;26898:419::-;27064:4;27102:2;27091:9;27087:18;27079:26;;27151:9;27145:4;27141:20;27137:1;27126:9;27122:17;27115:47;27179:131;27305:4;27179:131;:::i;:::-;27171:139;;26898:419;;;:::o;27323:332::-;27444:4;27482:2;27471:9;27467:18;27459:26;;27495:71;27563:1;27552:9;27548:17;27539:6;27495:71;:::i;:::-;27576:72;27644:2;27633:9;27629:18;27620:6;27576:72;:::i;:::-;27323:332;;;;;:::o;27661:320::-;27776:4;27814:2;27803:9;27799:18;27791:26;;27827:71;27895:1;27884:9;27880:17;27871:6;27827:71;:::i;:::-;27908:66;27970:2;27959:9;27955:18;27946:6;27908:66;:::i;:::-;27661:320;;;;;:::o" + }, + "methodIdentifiers": { + "createEvent(string,uint256,address,uint256)": "018c9724", + "eventIdCounter()": "e01a0ebe", + "events(uint256)": "0b791430", + "getEventDetails(uint256)": "ec38d5a0", + "isUserRegistered(uint256,address)": "57f69799", + "owner()": "8da5cb5b", + "registerForEvent(uint256)": "406db843", + "updateEventStatus(uint256,bool)": "54484fb0" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eventId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"eventName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eventDate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nftRequired\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxCapacity\",\"type\":\"uint256\"}],\"name\":\"EventCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eventId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"newStatus\",\"type\":\"bool\"}],\"name\":\"EventStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eventId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"UserRegistered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_eventName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_eventDate\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_nftRequired\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_maxCapacity\",\"type\":\"uint256\"}],\"name\":\"createEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eventIdCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"events\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"eventName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"eventDate\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"nftRequired\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxCapacity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"registeredCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"}],\"name\":\"getEventDetails\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"isUserRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"}],\"name\":\"registerForEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isActive\",\"type\":\"bool\"}],\"name\":\"updateEventStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/NFTGatedEventManager.sol\":\"NFTGatedEventManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/NFTGatedEventManager.sol\":{\"keccak256\":\"0x5608dfbb98953859042ef0d4fa7d2a5bbe2533a0181428347be8f7480e3c9ee1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://019ae3787aaa7892a2b9f2a768f5cdcd4ae52e93ece68d86c10e0902b4a3a1a8\",\"dweb:/ipfs/QmPDvDqqfNXUTk8VXNuBpsVw4VfX8tnurWqqi86NTSpZny\"]},\"contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x52e04d65c69f2e030225d6d8626a334af202bef1b1da0bf2fea5de05d5fd3db2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4eec6272f0dffdec7b338302311cf3a358ba48537edf87a2b1439d93492db69\",\"dweb:/ipfs/QmbgDXvQaqzb5dNJwV8LgGUDFsYSnZSVB5qWL1GK1YGEm6\"]},\"contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0x3eee01fcae8d1016234ed8daaf3d809346631e18f88d7e5d6aa4901eeaa9410e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b77dfe18c30eb4343a04645c707a0a61eb58c608ec583f087b4c5b525786823\",\"dweb:/ipfs/QmYNryzjZvjRH6LKxmZ2vChismEZjVV7Ev773hrVqwWHZi\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x52e04d65c69f2e030225d6d8626a334af202bef1b1da0bf2fea5de05d5fd3db2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4eec6272f0dffdec7b338302311cf3a358ba48537edf87a2b1439d93492db69\",\"dweb:/ipfs/QmbgDXvQaqzb5dNJwV8LgGUDFsYSnZSVB5qWL1GK1YGEm6\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IERC721.sol": { + "IERC721": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC-721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x52e04d65c69f2e030225d6d8626a334af202bef1b1da0bf2fea5de05d5fd3db2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4eec6272f0dffdec7b338302311cf3a358ba48537edf87a2b1439d93492db69\",\"dweb:/ipfs/QmbgDXvQaqzb5dNJwV8LgGUDFsYSnZSVB5qWL1GK1YGEm6\"]},\"contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0x3eee01fcae8d1016234ed8daaf3d809346631e18f88d7e5d6aa4901eeaa9410e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b77dfe18c30eb4343a04645c707a0a61eb58c608ec583f087b4c5b525786823\",\"dweb:/ipfs/QmYNryzjZvjRH6LKxmZ2vChismEZjVV7Ev773hrVqwWHZi\"]}},\"version\":1}" + } + }, + "contracts/interfaces/INFTGatedEvent.sol": { + "INFTGatedEventManager": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_eventName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_eventDate", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_nftRequired", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_maxCapacity", + "type": "uint256" + } + ], + "name": "createEvent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + } + ], + "name": "getEventDetails", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "isUserRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + } + ], + "name": "registerForEvent", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "_isActive", + "type": "bool" + } + ], + "name": "updateEventStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createEvent(string,uint256,address,uint256)": "018c9724", + "getEventDetails(uint256)": "ec38d5a0", + "isUserRegistered(uint256,address)": "57f69799", + "registerForEvent(uint256)": "406db843", + "updateEventStatus(uint256,bool)": "54484fb0" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_eventName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_eventDate\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_nftRequired\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_maxCapacity\",\"type\":\"uint256\"}],\"name\":\"createEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"}],\"name\":\"getEventDetails\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"isUserRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"}],\"name\":\"registerForEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isActive\",\"type\":\"bool\"}],\"name\":\"updateEventStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/INFTGatedEvent.sol\":\"INFTGatedEventManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/INFTGatedEvent.sol\":{\"keccak256\":\"0xaf741c17097dceb31143a0b480e774ca01a336dc1949a3d4767f59ef5d2c7537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37fb98e7ab4b4e611625798b080775173401e9c51fc14afefb10bcb70194eb6\",\"dweb:/ipfs/QmU5V7eW1jSe8FjJS2tzcBeqppYgzcgXaQ2HS7hfLFpdTU\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/build-info/a5e6012c322ce369f659c28c705923da.json b/ignition/deployments/chain-4202/build-info/a5e6012c322ce369f659c28c705923da.json new file mode 100644 index 0000000..46ae1ca --- /dev/null +++ b/ignition/deployments/chain-4202/build-info/a5e6012c322ce369f659c28c705923da.json @@ -0,0 +1,100351 @@ +{ + "id": "a5e6012c322ce369f659c28c705923da", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.24", + "solcLongVersion": "0.8.24+commit.e11b9ed9", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n" + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC4906.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\nimport {IERC721} from \"./IERC721.sol\";\n\n/// @title EIP-721 Metadata Update Extension\ninterface IERC4906 is IERC165, IERC721 {\n /// @dev This event emits when the metadata of a token is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFT.\n event MetadataUpdate(uint256 _tokenId);\n\n /// @dev This event emits when the metadata of a range of tokens is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFTs.\n event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../token/ERC721/IERC721.sol\";\n" + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Receiver} from \"./IERC721Receiver.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n mapping(uint256 tokenId => address) private _owners;\n\n mapping(address owner => uint256) private _balances;\n\n mapping(uint256 tokenId => address) private _tokenApprovals;\n\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual returns (uint256) {\n if (owner == address(0)) {\n revert ERC721InvalidOwner(address(0));\n }\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\n return _requireOwned(tokenId);\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n _requireOwned(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual {\n _approve(to, tokenId, _msgSender());\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual returns (address) {\n _requireOwned(tokenId);\n\n return _getApproved(tokenId);\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n address previousOwner = _update(to, tokenId, _msgSender());\n if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n transferFrom(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n *\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n */\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n * particular (ignoring whether it is owned by `owner`).\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n return\n spender != address(0) &&\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n * the `spender` for the specific `tokenId`.\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n if (!_isAuthorized(owner, spender, tokenId)) {\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else {\n revert ERC721InsufficientApproval(spender, tokenId);\n }\n }\n }\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n *\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n * remain consistent with one another.\n */\n function _increaseBalance(address account, uint128 value) internal virtual {\n unchecked {\n _balances[account] += value;\n }\n }\n\n /**\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n *\n * Emits a {Transfer} event.\n *\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n address from = _ownerOf(tokenId);\n\n // Perform (optional) operator check\n if (auth != address(0)) {\n _checkAuthorized(from, auth, tokenId);\n }\n\n // Execute the update\n if (from != address(0)) {\n // Clear approval. No need to re-authorize or emit the Approval event\n _approve(address(0), tokenId, address(0), false);\n\n unchecked {\n _balances[from] -= 1;\n }\n }\n\n if (to != address(0)) {\n unchecked {\n _balances[to] += 1;\n }\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n return from;\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner != address(0)) {\n revert ERC721InvalidSender(address(0));\n }\n }\n\n /**\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n _mint(to, tokenId);\n _checkOnERC721Received(address(0), to, tokenId, data);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal {\n address previousOwner = _update(address(0), tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is like {safeTransferFrom} in the sense that it invokes\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `tokenId` token must exist and be owned by `from`.\n * - `to` cannot be the zero address.\n * - `from` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\n _safeTransfer(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n _transfer(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n * either the owner of the token, or approved to operate on all tokens held by this owner.\n *\n * Emits an {Approval} event.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address to, uint256 tokenId, address auth) internal {\n _approve(to, tokenId, auth, true);\n }\n\n /**\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n * emitted in the context of transfers.\n */\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n // Avoid reading the owner unless necessary\n if (emitEvent || auth != address(0)) {\n address owner = _requireOwned(tokenId);\n\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n revert ERC721InvalidApprover(auth);\n }\n\n if (emitEvent) {\n emit Approval(owner, to, tokenId);\n }\n }\n\n _tokenApprovals[tokenId] = to;\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Requirements:\n * - operator can't be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC721InvalidOperator(operator);\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n * Returns the owner.\n *\n * Overrides to ownership logic should be done to {_ownerOf}.\n */\n function _requireOwned(uint256 tokenId) internal view returns (address) {\n address owner = _ownerOf(tokenId);\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n return owner;\n }\n\n /**\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\n if (to.code.length > 0) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n if (retval != IERC721Receiver.onERC721Received.selector) {\n revert ERC721InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert ERC721InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {Strings} from \"../../../utils/Strings.sol\";\nimport {IERC4906} from \"../../../interfaces/IERC4906.sol\";\nimport {IERC165} from \"../../../interfaces/IERC165.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is IERC4906, ERC721 {\n using Strings for uint256;\n\n // Interface ID as defined in ERC-4906. This does not correspond to a traditional interface ID as ERC-4906 only\n // defines events and does not include any external function.\n bytes4 private constant ERC4906_INTERFACE_ID = bytes4(0x49064906);\n\n // Optional mapping for token URIs\n mapping(uint256 tokenId => string) private _tokenURIs;\n\n /**\n * @dev See {IERC165-supportsInterface}\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {\n return interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireOwned(tokenId);\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = _baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via string.concat).\n if (bytes(_tokenURI).length > 0) {\n return string.concat(base, _tokenURI);\n }\n\n return super.tokenURI(tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Emits {MetadataUpdate}.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n _tokenURIs[tokenId] = _tokenURI;\n emit MetadataUpdate(tokenId);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n * reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" + }, + "contracts/Base64.sol": { + "content": "// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.2) (utils/Base64.sol)\r\n\r\npragma solidity ^0.8.20;\r\n\r\n/**\r\n * @dev Provides a set of functions to operate with Base64 strings.\r\n */\r\nlibrary Base64 {\r\n /**\r\n * @dev Base64 Encoding/Decoding Table\r\n * See sections 4 and 5 of https://datatracker.ietf.org/doc/html/rfc4648\r\n */\r\n string internal constant _TABLE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n string internal constant _TABLE_URL = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\";\r\n\r\n /**\r\n * @dev Converts a `bytes` to its Bytes64 `string` representation.\r\n */\r\n function encode(bytes memory data) internal pure returns (string memory) {\r\n return _encode(data, _TABLE, true);\r\n }\r\n\r\n /**\r\n * @dev Converts a `bytes` to its Bytes64Url `string` representation.\r\n * Output is not padded with `=` as specified in https://www.rfc-editor.org/rfc/rfc4648[rfc4648].\r\n */\r\n function encodeURL(bytes memory data) internal pure returns (string memory) {\r\n return _encode(data, _TABLE_URL, false);\r\n }\r\n\r\n /**\r\n * @dev Internal table-agnostic conversion\r\n */\r\n function _encode(bytes memory data, string memory table, bool withPadding) private pure returns (string memory) {\r\n /**\r\n * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\r\n * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\r\n */\r\n if (data.length == 0) return \"\";\r\n\r\n // If padding is enabled, the final length should be `bytes` data length divided by 3 rounded up and then\r\n // multiplied by 4 so that it leaves room for padding the last chunk\r\n // - `data.length + 2` -> Prepare for division rounding up\r\n // - `/ 3` -> Number of 3-bytes chunks (rounded up)\r\n // - `4 *` -> 4 characters for each chunk\r\n // This is equivalent to: 4 * Math.ceil(data.length / 3)\r\n //\r\n // If padding is disabled, the final length should be `bytes` data length multiplied by 4/3 rounded up as\r\n // opposed to when padding is required to fill the last chunk.\r\n // - `4 * data.length` -> 4 characters for each chunk\r\n // - ` + 2` -> Prepare for division rounding up\r\n // - `/ 3` -> Number of 3-bytes chunks (rounded up)\r\n // This is equivalent to: Math.ceil((4 * data.length) / 3)\r\n uint256 resultLength = withPadding ? 4 * ((data.length + 2) / 3) : (4 * data.length + 2) / 3;\r\n\r\n string memory result = new string(resultLength);\r\n\r\n assembly (\"memory-safe\") {\r\n // Prepare the lookup table (skip the first \"length\" byte)\r\n let tablePtr := add(table, 1)\r\n\r\n // Prepare result pointer, jump over length\r\n let resultPtr := add(result, 0x20)\r\n let dataPtr := data\r\n let endPtr := add(data, mload(data))\r\n\r\n // In some cases, the last iteration will read bytes after the end of the data. We cache the value, and\r\n // set it to zero to make sure no dirty bytes are read in that section.\r\n let afterPtr := add(endPtr, 0x20)\r\n let afterCache := mload(afterPtr)\r\n mstore(afterPtr, 0x00)\r\n\r\n // Run over the input, 3 bytes at a time\r\n for {\r\n\r\n } lt(dataPtr, endPtr) {\r\n\r\n } {\r\n // Advance 3 bytes\r\n dataPtr := add(dataPtr, 3)\r\n let input := mload(dataPtr)\r\n\r\n // To write each character, shift the 3 byte (24 bits) chunk\r\n // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\r\n // and apply logical AND with 0x3F to bitmask the least significant 6 bits.\r\n // Use this as an index into the lookup table, mload an entire word\r\n // so the desired character is in the least significant byte, and\r\n // mstore8 this least significant byte into the result and continue.\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n\r\n mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\r\n resultPtr := add(resultPtr, 1) // Advance\r\n }\r\n\r\n // Reset the value that was cached\r\n mstore(afterPtr, afterCache)\r\n\r\n if withPadding {\r\n // When data `bytes` is not exactly 3 bytes long\r\n // it is padded with `=` characters at the end\r\n switch mod(mload(data), 3)\r\n case 1 {\r\n mstore8(sub(resultPtr, 1), 0x3d)\r\n mstore8(sub(resultPtr, 2), 0x3d)\r\n }\r\n case 2 {\r\n mstore8(sub(resultPtr, 1), 0x3d)\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}" + }, + "contracts/CaveParty.sol": { + "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.24;\r\n\r\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ncontract CaveParty is ERC721, ERC721URIStorage, Ownable(msg.sender) {\r\n // events\r\n event Minted(uint256 tokenId);\r\n\r\n // statet variables\r\n uint256 public totalMints = 0;\r\n uint256 public mintPrice = 0.0001 ether;\r\n uint256 public maxSupply = 5000000000000000e18;\r\n uint256 public maxPerWallet = 1;\r\n string private assetMetadata =\r\n \"ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS\";\r\n\r\n // mappings\r\n mapping(address => uint256) walletMints;\r\n // event to nft token mapping \r\n mapping(uint256 => uint256) public tokenToEventMapping;\r\n\r\n // functions\r\n constructor() ERC721(\"CavePartyy\", \"CPY\") {}\r\n\r\n function _baseURI() internal view override returns (string memory) {\r\n return assetMetadata;\r\n }\r\n\r\n function safeMint(address _to, uint256 _eventId) internal {\r\n uint256 tokenId = totalMints;\r\n totalMints++;\r\n\r\n _safeMint(_to, tokenId);\r\n _setTokenURI(tokenId, assetMetadata);\r\n\r\n tokenToEventMapping[tokenId] = _eventId;\r\n }\r\n\r\n function mintToken(uint256 _eventId) external payable {\r\n require(mintPrice == msg.value, \"wrong amount sent\");\r\n require(\r\n walletMints[msg.sender] <= maxPerWallet,\r\n \"mints per wallet exceeded\"\r\n );\r\n\r\n walletMints[msg.sender] += 1;\r\n safeMint(msg.sender, _eventId);\r\n }\r\n\r\n // The following functions are overrides required by Solidity.\r\n function tokenURI(uint256 tokenId)\r\n public\r\n view\r\n override(ERC721, ERC721URIStorage)\r\n returns (string memory)\r\n {\r\n return super.tokenURI(tokenId);\r\n }\r\n\r\n function supportsInterface(bytes4 interfaceId)\r\n public\r\n view\r\n override(ERC721, ERC721URIStorage)\r\n returns (bool)\r\n {\r\n return super.supportsInterface(interfaceId);\r\n }\r\n\r\n function getEventIdForToken(uint256 _tokenId) public view returns (uint256) {\r\n return tokenToEventMapping[_tokenId];\r\n }\r\n\r\n function getMyWalletMints() external view returns (uint256) {\r\n return walletMints[msg.sender];\r\n }\r\n\r\n function withdrawFunds() external {\r\n require(msg.sender == owner(), \"You're not the owner\");\r\n\r\n (bool sent, ) = owner().call{value: address(this).balance}(\"\");\r\n require(sent, \"withdrawal failed\");\r\n }\r\n\r\n function updateMetadata(string memory _newAssetMetadata) external {\r\n require(msg.sender == owner(), \"You're not the owner\");\r\n require(checkMetadata(_newAssetMetadata), \"Invalid asset metadata: must include 'ipfs://'\");\r\n\r\n assetMetadata = _newAssetMetadata;\r\n }\r\n\r\n function checkMetadata(string memory _newAssetMetadata) private pure returns (bool) {\r\n bytes memory metadataBytes = bytes(_newAssetMetadata);\r\n bytes memory ipfsBytes = bytes(\"ipfs://\");\r\n\r\n if (metadataBytes.length < ipfsBytes.length) return false;\r\n\r\n for (uint256 i = 0; i <= metadataBytes.length - ipfsBytes.length; i++) {\r\n bool check = true;\r\n for (uint256 j = 0; j < ipfsBytes.length; j++) {\r\n if (metadataBytes[i + j] != ipfsBytes[j]) {\r\n check = false;\r\n break;\r\n }\r\n }\r\n if (check) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n" + }, + "contracts/FluffyFuryNFT.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.4;\n\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\nimport {Base64} from \"./Base64.sol\";\n\ncontract FluffyFury is ERC721URIStorage, Ownable(msg.sender) {\n event Minted(uint256 tokenId);\n\n\n uint256 private _tokenIdCounter;\n uint256 public mintPrice = 0.0001 ether; // Specify the mint price in ether\n string public svgData; // The SVG stored in the contract\n\n constructor(string memory initialSvg) ERC721(\"FluffyFury\", \"FFY\") {\n require(bytes(initialSvg).length > 0, \"SVG data cannot be empty\");\n require(bytes(initialSvg).length <= 5000, \"SVG data too large\");\n svgData = initialSvg; // Initialize the SVG during deployment\n }\n\n // Modifier to check if the payment sent is correct\n modifier mintPricePaid() {\n require(msg.value == mintPrice, \"0.0001 ether required to mint\");\n _;\n }\n\n // Converts an SVG to a Base64 string\n function svgToImageURI(string memory svg) public pure returns (string memory) {\n string memory baseURL = \"data:image/svg+xml;base64,\";\n string memory svgBase64Encoded = Base64.encode(bytes(svg));\n return string(abi.encodePacked(baseURL, svgBase64Encoded));\n }\n\n // Generates a tokenURI using the Base64 string as the image\n function formatTokenURI(string memory imageURI) public pure returns (string memory) {\n return\n string(\n abi.encodePacked(\n \"data:application/json;base64,\",\n Base64.encode(\n bytes(\n abi.encodePacked(\n '{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"',\n imageURI,\n '\"}'\n )\n )\n )\n )\n );\n }\n\n // Mints the token, only anyone can mint after paying the mintPrice\n function mint() external payable mintPricePaid {\n string memory imageURI = svgToImageURI(svgData); // Use stored SVG\n string memory tokenURI = formatTokenURI(imageURI);\n\n _tokenIdCounter++;\n uint256 newItemId = _tokenIdCounter;\n\n _safeMint(msg.sender, newItemId);\n _setTokenURI(newItemId, tokenURI);\n\n emit Minted(newItemId);\n }\n\n // Withdraws all funds in the contract to the owner's address\n function withdrawFunds() external onlyOwner {\n uint256 balance = address(this).balance;\n require(balance > 0, \"No funds available\");\n\n (bool sent, ) = owner().call{value: balance}(\"\");\n require(sent, \"Withdrawal failed\");\n }\n\n // Allows the owner to update the SVG, after validating that the new SVG contains \"ipfs://\"\n function updateSVG(string memory _newSvg) external onlyOwner {\n require(bytes(_newSvg).length > 0, \"SVG data cannot be empty\");\n require(bytes(_newSvg).length <= 5000, \"SVG data too large\"); // Add size validation if needed\n\n svgData = _newSvg; // Update the SVG data\n }\n\n // Transfer ownership (inherited from Ownable)\n function transferOwnership(address newOwner) public override onlyOwner {\n require(newOwner != address(0), \"New owner cannot be the zero address\");\n _transferOwnership(newOwner);\n }\n\n // Fallback function to receive Ether\n receive() external payable {}\n}" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 1644 + ], + "Ownable": [ + 147 + ] + }, + "id": 148, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 148, + "sourceUnit": 1645, + "src": "128:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "136:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5, + "name": "Context", + "nameLocations": [ + "692:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1644, + "src": "692:7:0" + }, + "id": 6, + "nodeType": "InheritanceSpecifier", + "src": "692:7:0" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4, + "nodeType": "StructuredDocumentation", + "src": "175:487:0", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 147, + "linearizedBaseContracts": [ + 147, + 1644 + ], + "name": "Ownable", + "nameLocation": "681:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "706:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 9, + "nodeType": "StructuredDocumentation", + "src": "735:85:0", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 13, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:0", + "nodeType": "VariableDeclaration", + "scope": 13, + "src": "858:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:0" + }, + "src": "825:50:0" + }, + { + "documentation": { + "id": 14, + "nodeType": "StructuredDocumentation", + "src": "881:82:0", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 18, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:0", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "994:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:0" + }, + "src": "968:41:0" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 24, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1042:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:0", + "nodeType": "VariableDeclaration", + "scope": 24, + "src": "1073:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:0" + }, + "src": "1015:84:0" + }, + { + "body": { + "id": 49, + "nodeType": "Block", + "src": "1259:153:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 30, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1273:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 31, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:0", + "typeDescriptions": {} + } + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 44, + "nodeType": "IfStatement", + "src": "1269:95:0", + "trueBody": { + "id": 43, + "nodeType": "Block", + "src": "1301:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:0", + "typeDescriptions": {} + } + }, + "id": 40, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 36, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "1322:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 42, + "nodeType": "RevertStatement", + "src": "1315:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 46, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "1392:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 45, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "1373:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 47, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 48, + "nodeType": "ExpressionStatement", + "src": "1373:32:0" + } + ] + }, + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "1105:115:0", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 50, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:0", + "nodeType": "VariableDeclaration", + "scope": 50, + "src": "1237:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:0" + }, + "returnParameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:0" + }, + "scope": 147, + "src": "1225:187:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 57, + "nodeType": "Block", + "src": "1521:41:0", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 53, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "1531:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "1531:13:0" + }, + { + "id": 56, + "nodeType": "PlaceholderStatement", + "src": "1554:1:0" + } + ] + }, + "documentation": { + "id": 51, + "nodeType": "StructuredDocumentation", + "src": "1418:77:0", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 58, + "name": "onlyOwner", + "nameLocation": "1509:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:0" + }, + "src": "1500:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 66, + "nodeType": "Block", + "src": "1693:30:0", + "statements": [ + { + "expression": { + "id": 64, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "1710:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 63, + "id": 65, + "nodeType": "Return", + "src": "1703:13:0" + } + ] + }, + "documentation": { + "id": 59, + "nodeType": "StructuredDocumentation", + "src": "1568:65:0", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 67, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 60, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:0" + }, + "returnParameters": { + "id": 63, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 67, + "src": "1684:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:0" + }, + "scope": 147, + "src": "1638:85:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 83, + "nodeType": "Block", + "src": "1841:117:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 71, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "1855:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 73, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "1866:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 82, + "nodeType": "IfStatement", + "src": "1851:101:0", + "trueBody": { + "id": 81, + "nodeType": "Block", + "src": "1880:72:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 77, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "1928:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 76, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "1901:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 80, + "nodeType": "RevertStatement", + "src": "1894:47:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 68, + "nodeType": "StructuredDocumentation", + "src": "1729:62:0", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 84, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 69, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:0" + }, + "scope": 147, + "src": "1796:162:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 97, + "nodeType": "Block", + "src": "2347:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 91, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:0", + "typeDescriptions": {} + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 90, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2357:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 95, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 96, + "nodeType": "ExpressionStatement", + "src": "2357:30:0" + } + ] + }, + "documentation": { + "id": 85, + "nodeType": "StructuredDocumentation", + "src": "1964:324:0", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 98, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 88, + "kind": "modifierInvocation", + "modifierName": { + "id": 87, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2337:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:0" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:0" + }, + "returnParameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:0" + }, + "scope": 147, + "src": "2293:101:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 125, + "nodeType": "Block", + "src": "2613:145:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 106, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2627:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:0", + "typeDescriptions": {} + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 120, + "nodeType": "IfStatement", + "src": "2623:91:0", + "trueBody": { + "id": 119, + "nodeType": "Block", + "src": "2651:63:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:0", + "typeDescriptions": {} + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 112, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "2672:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 118, + "nodeType": "RevertStatement", + "src": "2665:38:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 122, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "2742:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 121, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "2723:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "2723:28:0" + } + ] + }, + "documentation": { + "id": 99, + "nodeType": "StructuredDocumentation", + "src": "2400:138:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 104, + "kind": "modifierInvocation", + "modifierName": { + "id": 103, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2603:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:0" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:0", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "2570:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:0" + }, + "returnParameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:0" + }, + "scope": 147, + "src": "2543:215:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "2975:124:0", + "statements": [ + { + "assignments": [ + 133 + ], + "declarations": [ + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:0", + "nodeType": "VariableDeclaration", + "scope": 145, + "src": "2985:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 135, + "initialValue": { + "id": 134, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3004:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:0" + }, + { + "expression": { + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 136, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "3020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 137, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3020:17:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 141, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "3073:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 142, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 129, + "src": "3083:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 140, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 144, + "nodeType": "EmitStatement", + "src": "3047:45:0" + } + ] + }, + "documentation": { + "id": 127, + "nodeType": "StructuredDocumentation", + "src": "2764:143:0", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 146, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:0", + "nodeType": "VariableDeclaration", + "scope": 146, + "src": "2940:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:0" + }, + "returnParameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:0" + }, + "scope": 147, + "src": "2912:187:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 148, + "src": "663:2438:0", + "usedErrors": [ + 13, + 18 + ], + "usedEvents": [ + 24 + ] + } + ], + "src": "102:3000:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/interfaces/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ] + }, + "id": 152, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 149, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:1" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../utils/introspection/IERC165.sol", + "id": 151, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 152, + "sourceUnit": 1936, + "src": "132:59:1", + "symbolAliases": [ + { + "foreign": { + "id": 150, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "140:7:1", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "106:86:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC4906.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ], + "IERC4906": [ + 175 + ], + "IERC721": [ + 1442 + ] + }, + "id": 176, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 153, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:2" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "file": "./IERC165.sol", + "id": 155, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 176, + "sourceUnit": 152, + "src": "133:38:2", + "symbolAliases": [ + { + "foreign": { + "id": 154, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "141:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC721.sol", + "file": "./IERC721.sol", + "id": 157, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 176, + "sourceUnit": 180, + "src": "172:38:2", + "symbolAliases": [ + { + "foreign": { + "id": 156, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "180:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 159, + "name": "IERC165", + "nameLocations": [ + "279:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "279:7:2" + }, + "id": 160, + "nodeType": "InheritanceSpecifier", + "src": "279:7:2" + }, + { + "baseName": { + "id": 161, + "name": "IERC721", + "nameLocations": [ + "288:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "288:7:2" + }, + "id": 162, + "nodeType": "InheritanceSpecifier", + "src": "288:7:2" + } + ], + "canonicalName": "IERC4906", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 158, + "nodeType": "StructuredDocumentation", + "src": "212:45:2", + "text": "@title EIP-721 Metadata Update Extension" + }, + "fullyImplemented": false, + "id": 175, + "linearizedBaseContracts": [ + 175, + 1442, + 1935 + ], + "name": "IERC4906", + "nameLocation": "267:8:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 163, + "nodeType": "StructuredDocumentation", + "src": "302:201:2", + "text": "@dev This event emits when the metadata of a token is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFT." + }, + "eventSelector": "f8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7", + "id": 167, + "name": "MetadataUpdate", + "nameLocation": "514:14:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 165, + "indexed": false, + "mutability": "mutable", + "name": "_tokenId", + "nameLocation": "537:8:2", + "nodeType": "VariableDeclaration", + "scope": 167, + "src": "529:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "529:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "528:18:2" + }, + "src": "508:39:2" + }, + { + "anonymous": false, + "documentation": { + "id": 168, + "nodeType": "StructuredDocumentation", + "src": "553:212:2", + "text": "@dev This event emits when the metadata of a range of tokens is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFTs." + }, + "eventSelector": "6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c", + "id": 174, + "name": "BatchMetadataUpdate", + "nameLocation": "776:19:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "indexed": false, + "mutability": "mutable", + "name": "_fromTokenId", + "nameLocation": "804:12:2", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "796:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "796:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "indexed": false, + "mutability": "mutable", + "name": "_toTokenId", + "nameLocation": "826:10:2", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "818:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "818:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "795:42:2" + }, + "src": "770:68:2" + } + ], + "scope": 176, + "src": "257:583:2", + "usedErrors": [], + "usedEvents": [ + 167, + 174, + 1341, + 1350, + 1359 + ] + } + ], + "src": "107:734:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/interfaces/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC721.sol", + "exportedSymbols": { + "IERC721": [ + 1442 + ] + }, + "id": 180, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 177, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "106:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../token/ERC721/IERC721.sol", + "id": 179, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 180, + "sourceUnit": 1443, + "src": "132:52:3", + "symbolAliases": [ + { + "foreign": { + "id": 178, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "140:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + } + ], + "src": "106:79:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 316 + ], + "IERC20Errors": [ + 221 + ], + "IERC721Errors": [ + 269 + ] + }, + "id": 317, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 181, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 182, + "nodeType": "StructuredDocumentation", + "src": "138:139:4", + "text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens." + }, + "fullyImplemented": true, + "id": 221, + "linearizedBaseContracts": [ + 221 + ], + "name": "IERC20Errors", + "nameLocation": "288:12:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 183, + "nodeType": "StructuredDocumentation", + "src": "307:309:4", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 191, + "name": "ERC20InsufficientBalance", + "nameLocation": "627:24:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "sender", + "nameLocation": "660:6:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "652:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 187, + "mutability": "mutable", + "name": "balance", + "nameLocation": "676:7:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "668:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 189, + "mutability": "mutable", + "name": "needed", + "nameLocation": "693:6:4", + "nodeType": "VariableDeclaration", + "scope": 191, + "src": "685:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "651:49:4" + }, + "src": "621:80:4" + }, + { + "documentation": { + "id": 192, + "nodeType": "StructuredDocumentation", + "src": "707:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 196, + "name": "ERC20InvalidSender", + "nameLocation": "870:18:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "sender", + "nameLocation": "897:6:4", + "nodeType": "VariableDeclaration", + "scope": 196, + "src": "889:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:4" + }, + "src": "864:41:4" + }, + { + "documentation": { + "id": 197, + "nodeType": "StructuredDocumentation", + "src": "911:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 201, + "name": "ERC20InvalidReceiver", + "nameLocation": "1081:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 199, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1110:8:4", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "1102:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1101:18:4" + }, + "src": "1075:45:4" + }, + { + "documentation": { + "id": 202, + "nodeType": "StructuredDocumentation", + "src": "1126:345:4", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 210, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1482:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1517:7:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1509:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 203, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1534:9:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1526:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1526:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1553:6:4", + "nodeType": "VariableDeclaration", + "scope": 210, + "src": "1545:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1508:52:4" + }, + "src": "1476:85:4" + }, + { + "documentation": { + "id": 211, + "nodeType": "StructuredDocumentation", + "src": "1567:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 215, + "name": "ERC20InvalidApprover", + "nameLocation": "1752:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 213, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1781:8:4", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "1773:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1773:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1772:18:4" + }, + "src": "1746:45:4" + }, + { + "documentation": { + "id": 216, + "nodeType": "StructuredDocumentation", + "src": "1797:195:4", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 220, + "name": "ERC20InvalidSpender", + "nameLocation": "2003:19:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 219, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 218, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2031:7:4", + "nodeType": "VariableDeclaration", + "scope": 220, + "src": "2023:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2023:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2022:17:4" + }, + "src": "1997:43:4" + } + ], + "scope": 317, + "src": "278:1764:4", + "usedErrors": [ + 191, + 196, + 201, + 210, + 215, + 220 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 222, + "nodeType": "StructuredDocumentation", + "src": "2044:141:4", + "text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens." + }, + "fullyImplemented": true, + "id": 269, + "linearizedBaseContracts": [ + 269 + ], + "name": "IERC721Errors", + "nameLocation": "2196:13:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 223, + "nodeType": "StructuredDocumentation", + "src": "2216:219:4", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 227, + "name": "ERC721InvalidOwner", + "nameLocation": "2446:18:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2473:5:4", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "2465:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2465:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2464:15:4" + }, + "src": "2440:40:4" + }, + { + "documentation": { + "id": 228, + "nodeType": "StructuredDocumentation", + "src": "2486:132:4", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 232, + "name": "ERC721NonexistentToken", + "nameLocation": "2629:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2660:7:4", + "nodeType": "VariableDeclaration", + "scope": 232, + "src": "2652:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2651:17:4" + }, + "src": "2623:46:4" + }, + { + "documentation": { + "id": 233, + "nodeType": "StructuredDocumentation", + "src": "2675:289:4", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 241, + "name": "ERC721IncorrectOwner", + "nameLocation": "2975:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3004:6:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "2996:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3020:7:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3012:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3037:5:4", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "3029:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2995:48:4" + }, + "src": "2969:75:4" + }, + { + "documentation": { + "id": 242, + "nodeType": "StructuredDocumentation", + "src": "3050:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 246, + "name": "ERC721InvalidSender", + "nameLocation": "3213:19:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 244, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3241:6:4", + "nodeType": "VariableDeclaration", + "scope": 246, + "src": "3233:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:16:4" + }, + "src": "3207:42:4" + }, + { + "documentation": { + "id": 247, + "nodeType": "StructuredDocumentation", + "src": "3255:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 251, + "name": "ERC721InvalidReceiver", + "nameLocation": "3425:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3455:8:4", + "nodeType": "VariableDeclaration", + "scope": 251, + "src": "3447:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3446:18:4" + }, + "src": "3419:46:4" + }, + { + "documentation": { + "id": 252, + "nodeType": "StructuredDocumentation", + "src": "3471:247:4", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 258, + "name": "ERC721InsufficientApproval", + "nameLocation": "3729:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 254, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3764:8:4", + "nodeType": "VariableDeclaration", + "scope": 258, + "src": "3756:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3756:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3782:7:4", + "nodeType": "VariableDeclaration", + "scope": 258, + "src": "3774:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3774:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3755:35:4" + }, + "src": "3723:68:4" + }, + { + "documentation": { + "id": 259, + "nodeType": "StructuredDocumentation", + "src": "3797:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 263, + "name": "ERC721InvalidApprover", + "nameLocation": "3982:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 261, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4012:8:4", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "4004:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4004:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:18:4" + }, + "src": "3976:46:4" + }, + { + "documentation": { + "id": 264, + "nodeType": "StructuredDocumentation", + "src": "4028:197:4", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 268, + "name": "ERC721InvalidOperator", + "nameLocation": "4236:21:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4266:8:4", + "nodeType": "VariableDeclaration", + "scope": 268, + "src": "4258:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4258:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4257:18:4" + }, + "src": "4230:46:4" + } + ], + "scope": 317, + "src": "2186:2092:4", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 270, + "nodeType": "StructuredDocumentation", + "src": "4280:143:4", + "text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens." + }, + "fullyImplemented": true, + "id": 316, + "linearizedBaseContracts": [ + 316 + ], + "name": "IERC1155Errors", + "nameLocation": "4434:14:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 271, + "nodeType": "StructuredDocumentation", + "src": "4455:361:4", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 281, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4827:26:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4862:6:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4854:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4854:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 275, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4878:7:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4870:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4870:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 277, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4895:6:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4887:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 279, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4911:7:4", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "4903:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4903:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4853:66:4" + }, + "src": "4821:99:4" + }, + { + "documentation": { + "id": 282, + "nodeType": "StructuredDocumentation", + "src": "4926:152:4", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 286, + "name": "ERC1155InvalidSender", + "nameLocation": "5089:20:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 284, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5118:6:4", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "5110:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 283, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5110:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5109:16:4" + }, + "src": "5083:43:4" + }, + { + "documentation": { + "id": 287, + "nodeType": "StructuredDocumentation", + "src": "5132:159:4", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 291, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5302:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 289, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5333:8:4", + "nodeType": "VariableDeclaration", + "scope": 291, + "src": "5325:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5325:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5324:18:4" + }, + "src": "5296:47:4" + }, + { + "documentation": { + "id": 292, + "nodeType": "StructuredDocumentation", + "src": "5349:256:4", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 298, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5616:28:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 294, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5653:8:4", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "5645:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5645:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 296, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5671:5:4", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "5663:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5663:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5644:33:4" + }, + "src": "5610:68:4" + }, + { + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "5684:174:4", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 303, + "name": "ERC1155InvalidApprover", + "nameLocation": "5869:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5900:8:4", + "nodeType": "VariableDeclaration", + "scope": 303, + "src": "5892:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5892:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5891:18:4" + }, + "src": "5863:47:4" + }, + { + "documentation": { + "id": 304, + "nodeType": "StructuredDocumentation", + "src": "5916:197:4", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 308, + "name": "ERC1155InvalidOperator", + "nameLocation": "6124:22:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 306, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6155:8:4", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6147:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6147:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6146:18:4" + }, + "src": "6118:47:4" + }, + { + "documentation": { + "id": 309, + "nodeType": "StructuredDocumentation", + "src": "6171:280:4", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 315, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6462:25:4", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6496:9:4", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "6488:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6488:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6515:12:4", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "6507:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6507:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6487:41:4" + }, + "src": "6456:73:4" + } + ], + "scope": 317, + "src": "4424:2107:4", + "usedErrors": [ + 281, + 286, + 291, + 298, + 303, + 308, + 315 + ], + "usedEvents": [] + } + ], + "src": "112:6420:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "exportedSymbols": { + "Context": [ + 1644 + ], + "ERC165": [ + 1923 + ], + "ERC721": [ + 1325 + ], + "IERC165": [ + 1935 + ], + "IERC721": [ + 1442 + ], + "IERC721Errors": [ + 269 + ], + "IERC721Metadata": [ + 1614 + ], + "IERC721Receiver": [ + 1460 + ], + "Strings": [ + 1899 + ] + }, + "id": 1326, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 318, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "./IERC721.sol", + "id": 320, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1443, + "src": "133:38:5", + "symbolAliases": [ + { + "foreign": { + "id": 319, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "141:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "./IERC721Receiver.sol", + "id": 322, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1461, + "src": "172:54:5", + "symbolAliases": [ + { + "foreign": { + "id": 321, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "180:15:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "file": "./extensions/IERC721Metadata.sol", + "id": 324, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1615, + "src": "227:65:5", + "symbolAliases": [ + { + "foreign": { + "id": 323, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1614, + "src": "235:15:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 326, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1645, + "src": "293:48:5", + "symbolAliases": [ + { + "foreign": { + "id": 325, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1644, + "src": "301:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../utils/Strings.sol", + "id": 328, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1900, + "src": "342:48:5", + "symbolAliases": [ + { + "foreign": { + "id": 327, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "350:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../utils/introspection/ERC165.sol", + "id": 331, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 1924, + "src": "391:69:5", + "symbolAliases": [ + { + "foreign": { + "id": 329, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "399:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 330, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1923, + "src": "408:6:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 333, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1326, + "sourceUnit": 317, + "src": "461:66:5", + "symbolAliases": [ + { + "foreign": { + "id": 332, + "name": "IERC721Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 269, + "src": "469:13:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 335, + "name": "Context", + "nameLocations": [ + "804:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1644, + "src": "804:7:5" + }, + "id": 336, + "nodeType": "InheritanceSpecifier", + "src": "804:7:5" + }, + { + "baseName": { + "id": 337, + "name": "ERC165", + "nameLocations": [ + "813:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1923, + "src": "813:6:5" + }, + "id": 338, + "nodeType": "InheritanceSpecifier", + "src": "813:6:5" + }, + { + "baseName": { + "id": 339, + "name": "IERC721", + "nameLocations": [ + "821:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "821:7:5" + }, + "id": 340, + "nodeType": "InheritanceSpecifier", + "src": "821:7:5" + }, + { + "baseName": { + "id": 341, + "name": "IERC721Metadata", + "nameLocations": [ + "830:15:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1614, + "src": "830:15:5" + }, + "id": 342, + "nodeType": "InheritanceSpecifier", + "src": "830:15:5" + }, + { + "baseName": { + "id": 343, + "name": "IERC721Errors", + "nameLocations": [ + "847:13:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 269, + "src": "847:13:5" + }, + "id": 344, + "nodeType": "InheritanceSpecifier", + "src": "847:13:5" + } + ], + "canonicalName": "ERC721", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 334, + "nodeType": "StructuredDocumentation", + "src": "529:246:5", + "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." + }, + "fullyImplemented": true, + "id": 1325, + "linearizedBaseContracts": [ + 1325, + 269, + 1614, + 1442, + 1923, + 1935, + 1644 + ], + "name": "ERC721", + "nameLocation": "794:6:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 347, + "libraryName": { + "id": 345, + "name": "Strings", + "nameLocations": [ + "873:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1899, + "src": "873:7:5" + }, + "nodeType": "UsingForDirective", + "src": "867:26:5", + "typeName": { + "id": 346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "885:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "_name", + "nameLocation": "932:5:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "917:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 348, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "917:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "979:7:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "964:22:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 350, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "964:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 355, + "mutability": "mutable", + "name": "_owners", + "nameLocation": "1037:7:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "993:51:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 354, + "keyName": "tokenId", + "keyNameLocation": "1009:7:5", + "keyType": { + "id": 352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1001:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "993:35:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1020:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 359, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1093:9:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1051:51:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 358, + "keyName": "owner", + "keyNameLocation": "1067:5:5", + "keyType": { + "id": 356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1059:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1051:33:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 363, + "mutability": "mutable", + "name": "_tokenApprovals", + "nameLocation": "1153:15:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1109:59:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 362, + "keyName": "tokenId", + "keyNameLocation": "1125:7:5", + "keyType": { + "id": 360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1109:35:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1136:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1243:18:5", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "1175:86:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 368, + "keyName": "owner", + "keyNameLocation": "1191:5:5", + "keyType": { + "id": 364, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1183:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1175:59:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 367, + "keyName": "operator", + "keyNameLocation": "1216:8:5", + "keyType": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1208:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1200:33:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 366, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1228:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 385, + "nodeType": "Block", + "src": "1437:57:5", + "statements": [ + { + "expression": { + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 377, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "1447:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 378, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 372, + "src": "1455:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1447:13:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 380, + "nodeType": "ExpressionStatement", + "src": "1447:13:5" + }, + { + "expression": { + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 381, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "1470:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 382, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 374, + "src": "1480:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "1470:17:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 384, + "nodeType": "ExpressionStatement", + "src": "1470:17:5" + } + ] + }, + "documentation": { + "id": 370, + "nodeType": "StructuredDocumentation", + "src": "1268:108:5", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 386, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "name_", + "nameLocation": "1407:5:5", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1393:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 371, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1393:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "1428:7:5", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1414:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 373, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1414:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1392:44:5" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "1437:0:5" + }, + "scope": 1325, + "src": "1381:113:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1922, + 1934 + ], + "body": { + "id": 416, + "nodeType": "Block", + "src": "1669:192:5", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 397, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1698:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 399, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "1718:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$1442_$", + "typeString": "type(contract IERC721)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721_$1442_$", + "typeString": "type(contract IERC721)" + } + ], + "id": 398, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1713:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1713:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$1442", + "typeString": "type(contract IERC721)" + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1727:11:5", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1713:25:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1698:40:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 403, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1754:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 405, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1614, + "src": "1774:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$1614_$", + "typeString": "type(contract IERC721Metadata)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$1614_$", + "typeString": "type(contract IERC721Metadata)" + } + ], + "id": 404, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1769:4:5", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1769:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$1614", + "typeString": "type(contract IERC721Metadata)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1791:11:5", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1769:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1754:48:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1698:104:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 412, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "1842:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 410, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1818:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721_$1325_$", + "typeString": "type(contract super ERC721)" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1824:17:5", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1922, + "src": "1818:23:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1818:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1698:156:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 396, + "id": 415, + "nodeType": "Return", + "src": "1679:175:5" + } + ] + }, + "documentation": { + "id": 387, + "nodeType": "StructuredDocumentation", + "src": "1500:56:5", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 417, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1570:17:5", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 393, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 391, + "name": "ERC165", + "nameLocations": [ + "1637:6:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1923, + "src": "1637:6:5" + }, + { + "id": 392, + "name": "IERC165", + "nameLocations": [ + "1645:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "1645:7:5" + } + ], + "src": "1628:25:5" + }, + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1595:11:5", + "nodeType": "VariableDeclaration", + "scope": 417, + "src": "1588:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 388, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1588:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1587:20:5" + }, + "returnParameters": { + "id": 396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 395, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 417, + "src": "1663:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 394, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1663:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1662:6:5" + }, + "scope": 1325, + "src": "1561:300:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1367 + ], + "body": { + "id": 444, + "nodeType": "Block", + "src": "1992:136:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 425, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2006:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2023:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2015:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2015:7:5", + "typeDescriptions": {} + } + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2015:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2006:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 439, + "nodeType": "IfStatement", + "src": "2002:87:5", + "trueBody": { + "id": 438, + "nodeType": "Block", + "src": "2027:62:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2075:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2067:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:5", + "typeDescriptions": {} + } + }, + "id": 435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2067:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 431, + "name": "ERC721InvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "2048:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2048:30:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "RevertStatement", + "src": "2041:37:5" + } + ] + } + }, + { + "expression": { + "baseExpression": { + "id": 440, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "2105:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 442, + "indexExpression": { + "id": 441, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 420, + "src": "2115:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2105:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 424, + "id": 443, + "nodeType": "Return", + "src": "2098:23:5" + } + ] + }, + "documentation": { + "id": 418, + "nodeType": "StructuredDocumentation", + "src": "1867:48:5", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 445, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1929:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1947:5:5", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "1939:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1939:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1938:15:5" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "1983:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1983:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1982:9:5" + }, + "scope": 1325, + "src": "1920:208:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1375 + ], + "body": { + "id": 457, + "nodeType": "Block", + "src": "2257:46:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 454, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "2288:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 453, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "2274:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2274:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 452, + "id": 456, + "nodeType": "Return", + "src": "2267:29:5" + } + ] + }, + "documentation": { + "id": 446, + "nodeType": "StructuredDocumentation", + "src": "2134:46:5", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 458, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "2194:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2210:7:5", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "2202:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2202:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2201:17:5" + }, + "returnParameters": { + "id": 452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 451, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "2248:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2248:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2247:9:5" + }, + "scope": 1325, + "src": "2185:118:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1599 + ], + "body": { + "id": 466, + "nodeType": "Block", + "src": "2425:29:5", + "statements": [ + { + "expression": { + "id": 464, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "2442:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 463, + "id": 465, + "nodeType": "Return", + "src": "2435:12:5" + } + ] + }, + "documentation": { + "id": 459, + "nodeType": "StructuredDocumentation", + "src": "2309:51:5", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 467, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "2374:4:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "2378:2:5" + }, + "returnParameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 467, + "src": "2410:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 461, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2410:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2409:15:5" + }, + "scope": 1325, + "src": "2365:89:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1605 + ], + "body": { + "id": 475, + "nodeType": "Block", + "src": "2580:31:5", + "statements": [ + { + "expression": { + "id": 473, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "2597:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 472, + "id": 474, + "nodeType": "Return", + "src": "2590:14:5" + } + ] + }, + "documentation": { + "id": 468, + "nodeType": "StructuredDocumentation", + "src": "2460:53:5", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "2527:6:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [], + "src": "2533:2:5" + }, + "returnParameters": { + "id": 472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 471, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "2565:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2565:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2564:15:5" + }, + "scope": 1325, + "src": "2518:93:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1613 + ], + "body": { + "id": 511, + "nodeType": "Block", + "src": "2756:176:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 485, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "2780:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 484, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "2766:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2766:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 487, + "nodeType": "ExpressionStatement", + "src": "2766:22:5" + }, + { + "assignments": [ + 489 + ], + "declarations": [ + { + "constant": false, + "id": 489, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "2813:7:5", + "nodeType": "VariableDeclaration", + "scope": 511, + "src": "2799:21:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 488, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2799:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 492, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 490, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "2823:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2823:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2799:34:5" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 495, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "2856:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2850:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 493, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2850:5:5", + "typeDescriptions": {} + } + }, + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2850:14:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2865:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2850:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2874:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2850:25:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2923:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2850:75:5", + "trueExpression": { + "arguments": [ + { + "id": 503, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "2892:7:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 504, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "2901:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2909:8:5", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 1712, + "src": "2901:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2901:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2878:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 500, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2878:6:5", + "typeDescriptions": {} + } + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2885:6:5", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2878:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2878:42:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 483, + "id": 510, + "nodeType": "Return", + "src": "2843:82:5" + } + ] + }, + "documentation": { + "id": 477, + "nodeType": "StructuredDocumentation", + "src": "2617:55:5", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "2686:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 479, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2703:7:5", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "2695:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2695:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2694:17:5" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 512, + "src": "2741:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 481, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2741:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2740:15:5" + }, + "scope": 1325, + "src": "2677:255:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 520, + "nodeType": "Block", + "src": "3240:26:5", + "statements": [ + { + "expression": { + "hexValue": "", + "id": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3257:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 517, + "id": 519, + "nodeType": "Return", + "src": "3250:9:5" + } + ] + }, + "documentation": { + "id": 513, + "nodeType": "StructuredDocumentation", + "src": "2938:231:5", + "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts." + }, + "id": 521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "3183:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "3191:2:5" + }, + "returnParameters": { + "id": 517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 521, + "src": "3225:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 515, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3225:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3224:15:5" + }, + "scope": 1325, + "src": "3174:92:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1415 + ], + "body": { + "id": 536, + "nodeType": "Block", + "src": "3384:52:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 530, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "3403:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 531, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 526, + "src": "3407:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 532, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "3416:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3416:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 529, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1128, + "src": "3394:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3394:35:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "3394:35:5" + } + ] + }, + "documentation": { + "id": 522, + "nodeType": "StructuredDocumentation", + "src": "3272:46:5", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 537, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "3332:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 524, + "mutability": "mutable", + "name": "to", + "nameLocation": "3348:2:5", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "3340:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3340:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 526, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3360:7:5", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "3352:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3339:29:5" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [], + "src": "3384:0:5" + }, + "scope": 1325, + "src": "3323:113:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1431 + ], + "body": { + "id": 553, + "nodeType": "Block", + "src": "3573:78:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 546, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3597:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 545, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "3583:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3583:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "3583:22:5" + }, + { + "expression": { + "arguments": [ + { + "id": 550, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3636:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 549, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "3623:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3623:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 544, + "id": 552, + "nodeType": "Return", + "src": "3616:28:5" + } + ] + }, + "documentation": { + "id": 538, + "nodeType": "StructuredDocumentation", + "src": "3442:50:5", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 554, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "3506:11:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 540, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3526:7:5", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "3518:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3518:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3517:17:5" + }, + "returnParameters": { + "id": 544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 543, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "3564:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3564:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3563:9:5" + }, + "scope": 1325, + "src": "3497:154:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1423 + ], + "body": { + "id": 569, + "nodeType": "Block", + "src": "3793:69:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 563, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "3822:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3822:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 565, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "3836:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 566, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "3846:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 562, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1231, + "src": "3803:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3803:52:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 568, + "nodeType": "ExpressionStatement", + "src": "3803:52:5" + } + ] + }, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "3657:56:5", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 570, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "3727:17:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3753:8:5", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3745:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3745:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "mutability": "mutable", + "name": "approved", + "nameLocation": "3768:8:5", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3763:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 558, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3763:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3744:33:5" + }, + "returnParameters": { + "id": 561, + "nodeType": "ParameterList", + "parameters": [], + "src": "3793:0:5" + }, + "scope": 1325, + "src": "3718:144:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1441 + ], + "body": { + "id": 586, + "nodeType": "Block", + "src": "4022:59:5", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 580, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "4039:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 582, + "indexExpression": { + "id": 581, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "4058:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:25:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 584, + "indexExpression": { + "id": 583, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "4065:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 579, + "id": 585, + "nodeType": "Return", + "src": "4032:42:5" + } + ] + }, + "documentation": { + "id": 571, + "nodeType": "StructuredDocumentation", + "src": "3868:55:5", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 587, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "3937:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3962:5:5", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "3954:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3954:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3977:8:5", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "3969:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3969:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3953:33:5" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 587, + "src": "4016:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 577, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4016:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4015:6:5" + }, + "scope": 1325, + "src": "3928:153:5", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1407 + ], + "body": { + "id": 632, + "nodeType": "Block", + "src": "4223:498:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 597, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4237:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4251:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4243:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4243:7:5", + "typeDescriptions": {} + } + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4243:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4237:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 611, + "nodeType": "IfStatement", + "src": "4233:87:5", + "trueBody": { + "id": 610, + "nodeType": "Block", + "src": "4255:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4306:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4298:7:5", + "typeDescriptions": {} + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4298:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 603, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "4276:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4276:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 609, + "nodeType": "RevertStatement", + "src": "4269:40:5" + } + ] + } + }, + { + "assignments": [ + 613 + ], + "declarations": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "4546:13:5", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "4538:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4538:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 620, + "initialValue": { + "arguments": [ + { + "id": 615, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4570:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 616, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "4574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 617, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "4583:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4583:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 614, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "4562:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4562:34:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4538:58:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 621, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "4610:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 622, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "4627:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4610:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 631, + "nodeType": "IfStatement", + "src": "4606:109:5", + "trueBody": { + "id": 630, + "nodeType": "Block", + "src": "4633:82:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 625, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "4675:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 626, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "4681:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 627, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 613, + "src": "4690:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 624, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "4654:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address) pure" + } + }, + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4654:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 629, + "nodeType": "RevertStatement", + "src": "4647:57:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 588, + "nodeType": "StructuredDocumentation", + "src": "4087:51:5", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 633, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "4152:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "from", + "nameLocation": "4173:4:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4165:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4165:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "mutability": "mutable", + "name": "to", + "nameLocation": "4187:2:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4179:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4179:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4199:7:5", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "4191:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4191:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4164:43:5" + }, + "returnParameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [], + "src": "4223:0:5" + }, + "scope": 1325, + "src": "4143:578:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1397 + ], + "body": { + "id": 650, + "nodeType": "Block", + "src": "4863:56:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 644, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 636, + "src": "4890:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 645, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 638, + "src": "4896:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 646, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 640, + "src": "4900:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4909:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 643, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 651, + 677 + ], + "referencedDeclaration": 677, + "src": "4873:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4873:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 649, + "nodeType": "ExpressionStatement", + "src": "4873:39:5" + } + ] + }, + "documentation": { + "id": 634, + "nodeType": "StructuredDocumentation", + "src": "4727:55:5", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 651, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "4796:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 636, + "mutability": "mutable", + "name": "from", + "nameLocation": "4821:4:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4813:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 635, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4813:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 638, + "mutability": "mutable", + "name": "to", + "nameLocation": "4835:2:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4827:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4827:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4847:7:5", + "nodeType": "VariableDeclaration", + "scope": 651, + "src": "4839:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4839:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4812:43:5" + }, + "returnParameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [], + "src": "4863:0:5" + }, + "scope": 1325, + "src": "4787:132:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1387 + ], + "body": { + "id": 676, + "nodeType": "Block", + "src": "5088:105:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 664, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "5111:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 665, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "5117:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 666, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "5121:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 663, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "5098:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5098:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 668, + "nodeType": "ExpressionStatement", + "src": "5098:31:5" + }, + { + "expression": { + "arguments": [ + { + "id": 670, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "5162:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 671, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "5168:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 672, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "5172:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 673, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "5181:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 669, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "5139:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5139:47:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 675, + "nodeType": "ExpressionStatement", + "src": "5139:47:5" + } + ] + }, + "documentation": { + "id": 652, + "nodeType": "StructuredDocumentation", + "src": "4925:55:5", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 677, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "4994:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 654, + "mutability": "mutable", + "name": "from", + "nameLocation": "5019:4:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5011:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5011:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 656, + "mutability": "mutable", + "name": "to", + "nameLocation": "5033:2:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5025:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 655, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5025:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5045:7:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5037:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5037:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "mutability": "mutable", + "name": "data", + "nameLocation": "5067:4:5", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "5054:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 659, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5054:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5010:62:5" + }, + "returnParameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [], + "src": "5088:0:5" + }, + "scope": 1325, + "src": "4985:208:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 689, + "nodeType": "Block", + "src": "5782:40:5", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 685, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "5799:7:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 687, + "indexExpression": { + "id": 686, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "5807:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5799:16:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 684, + "id": 688, + "nodeType": "Return", + "src": "5792:23:5" + } + ] + }, + "documentation": { + "id": 678, + "nodeType": "StructuredDocumentation", + "src": "5199:503:5", + "text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`." + }, + "id": 690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ownerOf", + "nameLocation": "5716:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 680, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5733:7:5", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "5725:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5725:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5724:17:5" + }, + "returnParameters": { + "id": 684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "5773:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5773:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5772:9:5" + }, + "scope": 1325, + "src": "5707:115:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 702, + "nodeType": "Block", + "src": "6017:48:5", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 698, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "6034:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 700, + "indexExpression": { + "id": 699, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "6050:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6034:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 697, + "id": 701, + "nodeType": "Return", + "src": "6027:31:5" + } + ] + }, + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "5828:105:5", + "text": " @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted." + }, + "id": 703, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getApproved", + "nameLocation": "5947:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5968:7:5", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "5960:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5960:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5959:17:5" + }, + "returnParameters": { + "id": 697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 696, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 703, + "src": "6008:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 695, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6008:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6007:9:5" + }, + "scope": 1325, + "src": "5938:127:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 738, + "nodeType": "Block", + "src": "6485:163:5", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 715, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6514:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6533:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6525:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6525:7:5", + "typeDescriptions": {} + } + }, + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6525:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6514:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 721, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "6552:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 722, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6561:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6552:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 725, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "6589:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 726, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6596:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 724, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "6572:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6572:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6552:52:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 730, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "6621:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 729, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "6608:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6608:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 732, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "6633:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6608:32:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6552:88:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 735, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6551:90:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6514:127:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 714, + "id": 737, + "nodeType": "Return", + "src": "6495:146:5" + } + ] + }, + "documentation": { + "id": 704, + "nodeType": "StructuredDocumentation", + "src": "6071:300:5", + "text": " @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 739, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isAuthorized", + "nameLocation": "6385:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6407:5:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6399:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 705, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6399:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "spender", + "nameLocation": "6422:7:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6414:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6414:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6439:7:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6431:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6431:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6398:49:5" + }, + "returnParameters": { + "id": 714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 713, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "6479:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6479:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6478:6:5" + }, + "scope": 1325, + "src": "6376:272:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 775, + "nodeType": "Block", + "src": "7179:271:5", + "statements": [ + { + "condition": { + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7193:39:5", + "subExpression": { + "arguments": [ + { + "id": 750, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 742, + "src": "7208:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 751, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "7215:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 752, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7224:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 749, + "name": "_isAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 739, + "src": "7194:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) view returns (bool)" + } + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7194:38:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 774, + "nodeType": "IfStatement", + "src": "7189:255:5", + "trueBody": { + "id": 773, + "nodeType": "Block", + "src": "7234:210:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 755, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 742, + "src": "7252:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7269:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7261:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7261:7:5", + "typeDescriptions": {} + } + }, + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7261:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7252:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 771, + "nodeType": "Block", + "src": "7350:84:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 767, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "7402:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 768, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7411:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 766, + "name": "ERC721InsufficientApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "7375:26:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) pure" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7375:44:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 770, + "nodeType": "RevertStatement", + "src": "7368:51:5" + } + ] + }, + "id": 772, + "nodeType": "IfStatement", + "src": "7248:186:5", + "trueBody": { + "id": 765, + "nodeType": "Block", + "src": "7273:71:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 762, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "7321:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 761, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "7298:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7298:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 764, + "nodeType": "RevertStatement", + "src": "7291:38:5" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 740, + "nodeType": "StructuredDocumentation", + "src": "6654:423:5", + "text": " @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n the `spender` for the specific `tokenId`.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkAuthorized", + "nameLocation": "7091:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "owner", + "nameLocation": "7116:5:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7108:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7108:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 744, + "mutability": "mutable", + "name": "spender", + "nameLocation": "7131:7:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7123:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7148:7:5", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "7140:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7140:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7107:49:5" + }, + "returnParameters": { + "id": 748, + "nodeType": "ParameterList", + "parameters": [], + "src": "7179:0:5" + }, + "scope": 1325, + "src": "7082:368:5", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 791, + "nodeType": "Block", + "src": "8167:78:5", + "statements": [ + { + "id": 790, + "nodeType": "UncheckedBlock", + "src": "8177:62:5", + "statements": [ + { + "expression": { + "id": 788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 784, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "8201:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 786, + "indexExpression": { + "id": 785, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "8211:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8201:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 787, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "8223:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "8201:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 789, + "nodeType": "ExpressionStatement", + "src": "8201:27:5" + } + ] + } + ] + }, + "documentation": { + "id": 777, + "nodeType": "StructuredDocumentation", + "src": "7456:631:5", + "text": " @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another." + }, + "id": 792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_increaseBalance", + "nameLocation": "8101:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "account", + "nameLocation": "8126:7:5", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "8118:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8118:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 781, + "mutability": "mutable", + "name": "value", + "nameLocation": "8143:5:5", + "nodeType": "VariableDeclaration", + "scope": 792, + "src": "8135:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 780, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "8135:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "8117:32:5" + }, + "returnParameters": { + "id": 783, + "nodeType": "ParameterList", + "parameters": [], + "src": "8167:0:5" + }, + "scope": 1325, + "src": "8092:153:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "8933:700:5", + "statements": [ + { + "assignments": [ + 805 + ], + "declarations": [ + { + "constant": false, + "id": 805, + "mutability": "mutable", + "name": "from", + "nameLocation": "8951:4:5", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "8943:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8943:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 809, + "initialValue": { + "arguments": [ + { + "id": 807, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "8967:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 806, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "8958:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8958:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8943:32:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 810, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "9035:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9051:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9043:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 811, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9043:7:5", + "typeDescriptions": {} + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9043:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9035:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 823, + "nodeType": "IfStatement", + "src": "9031:86:5", + "trueBody": { + "id": 822, + "nodeType": "Block", + "src": "9055:62:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 817, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9086:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 818, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "9092:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 819, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9098:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 816, + "name": "_checkAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "9069:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) view" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9069:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "9069:37:5" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 824, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9161:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9177:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9169:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 825, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9169:7:5", + "typeDescriptions": {} + } + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9169:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9161:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 851, + "nodeType": "IfStatement", + "src": "9157:256:5", + "trueBody": { + "id": 850, + "nodeType": "Block", + "src": "9181:232:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9294:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9286:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9286:7:5", + "typeDescriptions": {} + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9286:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 835, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9315:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9307:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9307:7:5", + "typeDescriptions": {} + } + }, + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9307:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "66616c7365", + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9319:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 830, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1194, + "src": "9277:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9277:48:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 842, + "nodeType": "ExpressionStatement", + "src": "9277:48:5" + }, + { + "id": 849, + "nodeType": "UncheckedBlock", + "src": "9340:63:5", + "statements": [ + { + "expression": { + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 843, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "9368:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 845, + "indexExpression": { + "id": 844, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9378:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9368:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9368:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 848, + "nodeType": "ExpressionStatement", + "src": "9368:20:5" + } + ] + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 852, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9427:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9441:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 853, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9433:7:5", + "typeDescriptions": {} + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9433:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9427:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 866, + "nodeType": "IfStatement", + "src": "9423:107:5", + "trueBody": { + "id": 865, + "nodeType": "Block", + "src": "9445:85:5", + "statements": [ + { + "id": 864, + "nodeType": "UncheckedBlock", + "src": "9459:61:5", + "statements": [ + { + "expression": { + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 858, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 359, + "src": "9487:9:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 860, + "indexExpression": { + "id": 859, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9497:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9487:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9504:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9487:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 863, + "nodeType": "ExpressionStatement", + "src": "9487:18:5" + } + ] + } + ] + } + }, + { + "expression": { + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 867, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 355, + "src": "9540:7:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 869, + "indexExpression": { + "id": 868, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9548:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9540:16:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 870, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9559:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9540:21:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 872, + "nodeType": "ExpressionStatement", + "src": "9540:21:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 874, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9586:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 875, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "9592:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 876, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "9596:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 873, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "9577:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9577:27:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 878, + "nodeType": "EmitStatement", + "src": "9572:32:5" + }, + { + "expression": { + "id": 879, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "9622:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 803, + "id": 880, + "nodeType": "Return", + "src": "9615:11:5" + } + ] + }, + "documentation": { + "id": 793, + "nodeType": "StructuredDocumentation", + "src": "8251:582:5", + "text": " @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}." + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "8847:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 795, + "mutability": "mutable", + "name": "to", + "nameLocation": "8863:2:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8855:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8855:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 797, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8875:7:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8867:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8867:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "auth", + "nameLocation": "8892:4:5", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8884:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8884:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8854:43:5" + }, + "returnParameters": { + "id": 803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 802, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "8924:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8924:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8923:9:5" + }, + "scope": 1325, + "src": "8838:795:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 931, + "nodeType": "Block", + "src": "10008:274:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 890, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "10022:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10036:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10028:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10028:7:5", + "typeDescriptions": {} + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10028:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10022:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 904, + "nodeType": "IfStatement", + "src": "10018:87:5", + "trueBody": { + "id": 903, + "nodeType": "Block", + "src": "10040:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10091:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10083:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 897, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10083:7:5", + "typeDescriptions": {} + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10083:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 896, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "10061:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10061:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 902, + "nodeType": "RevertStatement", + "src": "10054:40:5" + } + ] + } + }, + { + "assignments": [ + 906 + ], + "declarations": [ + { + "constant": false, + "id": 906, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "10122:13:5", + "nodeType": "VariableDeclaration", + "scope": 931, + "src": "10114:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10114:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 915, + "initialValue": { + "arguments": [ + { + "id": 908, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "10146:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 909, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "10150:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10159:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10159:7:5", + "typeDescriptions": {} + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10159:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 907, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "10138:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10138:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10114:56:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 916, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 906, + "src": "10184:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10209:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10201:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10201:7:5", + "typeDescriptions": {} + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10201:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10184:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 930, + "nodeType": "IfStatement", + "src": "10180:96:5", + "trueBody": { + "id": 929, + "nodeType": "Block", + "src": "10213:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10262:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10254:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10254:7:5", + "typeDescriptions": {} + } + }, + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10254:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 922, + "name": "ERC721InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "10234:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10234:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 928, + "nodeType": "RevertStatement", + "src": "10227:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "9639:311:5", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 932, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "9964:5:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "to", + "nameLocation": "9978:2:5", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "9970:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 884, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9970:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "9990:7:5", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "9982:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9982:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9969:29:5" + }, + "returnParameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [], + "src": "10008:0:5" + }, + "scope": 1325, + "src": "9955:327:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 946, + "nodeType": "Block", + "src": "10690:43:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 941, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "10710:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 942, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "10714:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10723:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 940, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 973, + "src": "10700:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10700:26:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 945, + "nodeType": "ExpressionStatement", + "src": "10700:26:5" + } + ] + }, + "documentation": { + "id": 933, + "nodeType": "StructuredDocumentation", + "src": "10288:340:5", + "text": " @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 947, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "10642:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "to", + "nameLocation": "10660:2:5", + "nodeType": "VariableDeclaration", + "scope": 947, + "src": "10652:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 934, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10652:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10672:7:5", + "nodeType": "VariableDeclaration", + "scope": 947, + "src": "10664:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10664:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10651:29:5" + }, + "returnParameters": { + "id": 939, + "nodeType": "ParameterList", + "parameters": [], + "src": "10690:0:5" + }, + "scope": 1325, + "src": "10633:100:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 972, + "nodeType": "Block", + "src": "11038:98:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 958, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "11054:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 959, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "11058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 957, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "11048:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11048:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 961, + "nodeType": "ExpressionStatement", + "src": "11048:18:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11107:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11099:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11099:7:5", + "typeDescriptions": {} + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11099:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 967, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "11111:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 968, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "11115:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 969, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 954, + "src": "11124:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 962, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "11076:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11076:53:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "11076:53:5" + } + ] + }, + "documentation": { + "id": 948, + "nodeType": "StructuredDocumentation", + "src": "10739:210:5", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 973, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "10963:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 950, + "mutability": "mutable", + "name": "to", + "nameLocation": "10981:2:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "10973:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 949, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10973:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 952, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10993:7:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "10985:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10985:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 954, + "mutability": "mutable", + "name": "data", + "nameLocation": "11015:4:5", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "11002:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 953, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11002:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "10972:48:5" + }, + "returnParameters": { + "id": 956, + "nodeType": "ParameterList", + "parameters": [], + "src": "11038:0:5" + }, + "scope": 1325, + "src": "10954:182:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1005, + "nodeType": "Block", + "src": "11503:186:5", + "statements": [ + { + "assignments": [ + 980 + ], + "declarations": [ + { + "constant": false, + "id": 980, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "11521:13:5", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "11513:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11513:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 992, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11553:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11545:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11545:7:5", + "typeDescriptions": {} + } + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11545:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 986, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 976, + "src": "11557:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11574:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11566:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11566:7:5", + "typeDescriptions": {} + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11566:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 981, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "11537:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11537:40:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11513:64:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 993, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 980, + "src": "11591:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11616:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11608:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 994, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11608:7:5", + "typeDescriptions": {} + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11608:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11591:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1004, + "nodeType": "IfStatement", + "src": "11587:96:5", + "trueBody": { + "id": 1003, + "nodeType": "Block", + "src": "11620:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1000, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 976, + "src": "11664:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 999, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "11641:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11641:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1002, + "nodeType": "RevertStatement", + "src": "11634:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 974, + "nodeType": "StructuredDocumentation", + "src": "11142:315:5", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 1006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "11471:5:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 976, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "11485:7:5", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "11477:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11477:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11476:17:5" + }, + "returnParameters": { + "id": 978, + "nodeType": "ParameterList", + "parameters": [], + "src": "11503:0:5" + }, + "scope": 1325, + "src": "11462:227:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1065, + "nodeType": "Block", + "src": "12084:389:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1016, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12098:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12112:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12104:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12104:7:5", + "typeDescriptions": {} + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12104:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12098:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1030, + "nodeType": "IfStatement", + "src": "12094:87:5", + "trueBody": { + "id": 1029, + "nodeType": "Block", + "src": "12116:65:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12167:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12159:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12159:7:5", + "typeDescriptions": {} + } + }, + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12159:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1022, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "12137:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12137:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1028, + "nodeType": "RevertStatement", + "src": "12130:40:5" + } + ] + } + }, + { + "assignments": [ + 1032 + ], + "declarations": [ + { + "constant": false, + "id": 1032, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "12198:13:5", + "nodeType": "VariableDeclaration", + "scope": 1065, + "src": "12190:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12190:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1041, + "initialValue": { + "arguments": [ + { + "id": 1034, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12222:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1035, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12226:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12243:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12235:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12235:7:5", + "typeDescriptions": {} + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12235:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1033, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 882, + "src": "12214:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12214:32:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12190:56:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1042, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12260:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12285:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12277:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12277:7:5", + "typeDescriptions": {} + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12277:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12260:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1053, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12362:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1054, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1009, + "src": "12379:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12362:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1063, + "nodeType": "IfStatement", + "src": "12358:109:5", + "trueBody": { + "id": 1062, + "nodeType": "Block", + "src": "12385:82:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1057, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1009, + "src": "12427:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1058, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1059, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "12442:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1056, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "12406:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address) pure" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12406:50:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1061, + "nodeType": "RevertStatement", + "src": "12399:57:5" + } + ] + } + }, + "id": 1064, + "nodeType": "IfStatement", + "src": "12256:211:5", + "trueBody": { + "id": 1052, + "nodeType": "Block", + "src": "12289:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1049, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1013, + "src": "12333:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1048, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "12310:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12310:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1051, + "nodeType": "RevertStatement", + "src": "12303:38:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1007, + "nodeType": "StructuredDocumentation", + "src": "11695:313:5", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 1066, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "12022:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1009, + "mutability": "mutable", + "name": "from", + "nameLocation": "12040:4:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12032:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1008, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12032:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1011, + "mutability": "mutable", + "name": "to", + "nameLocation": "12054:2:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12046:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12046:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1013, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12066:7:5", + "nodeType": "VariableDeclaration", + "scope": 1066, + "src": "12058:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12031:43:5" + }, + "returnParameters": { + "id": 1015, + "nodeType": "ParameterList", + "parameters": [], + "src": "12084:0:5" + }, + "scope": 1325, + "src": "12013:460:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1083, + "nodeType": "Block", + "src": "13481:53:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1077, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "13505:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1078, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1071, + "src": "13511:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1079, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1073, + "src": "13515:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13524:2:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1076, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1084, + 1110 + ], + "referencedDeclaration": 1110, + "src": "13491:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13491:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1082, + "nodeType": "ExpressionStatement", + "src": "13491:36:5" + } + ] + }, + "documentation": { + "id": 1067, + "nodeType": "StructuredDocumentation", + "src": "12479:922:5", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1084, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "13415:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "from", + "nameLocation": "13437:4:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13429:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1068, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13429:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1071, + "mutability": "mutable", + "name": "to", + "nameLocation": "13451:2:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13443:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13443:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1073, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13463:7:5", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "13455:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13455:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13428:43:5" + }, + "returnParameters": { + "id": 1075, + "nodeType": "ParameterList", + "parameters": [], + "src": "13481:0:5" + }, + "scope": 1325, + "src": "13406:128:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "13873:102:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1097, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13893:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1098, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13899:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1099, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "13903:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1096, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "13883:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13883:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1101, + "nodeType": "ExpressionStatement", + "src": "13883:28:5" + }, + { + "expression": { + "arguments": [ + { + "id": 1103, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "13944:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1104, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13950:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1105, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "13954:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1106, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "13963:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1102, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "13921:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13921:47:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1108, + "nodeType": "ExpressionStatement", + "src": "13921:47:5" + } + ] + }, + "documentation": { + "id": 1085, + "nodeType": "StructuredDocumentation", + "src": "13540:226:5", + "text": " @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "13780:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1087, + "mutability": "mutable", + "name": "from", + "nameLocation": "13802:4:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13794:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1086, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13794:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "to", + "nameLocation": "13816:2:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13808:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13808:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13828:7:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13820:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13820:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "data", + "nameLocation": "13850:4:5", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "13837:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1092, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13837:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13793:62:5" + }, + "returnParameters": { + "id": 1095, + "nodeType": "ParameterList", + "parameters": [], + "src": "13873:0:5" + }, + "scope": 1325, + "src": "13771:204:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1127, + "nodeType": "Block", + "src": "14488:50:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1121, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "14507:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1122, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "14511:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1123, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "14520:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14526:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1120, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1128, + 1194 + ], + "referencedDeclaration": 1194, + "src": "14498:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14498:33:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1126, + "nodeType": "ExpressionStatement", + "src": "14498:33:5" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "13981:432:5", + "text": " @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 1128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "14427:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "to", + "nameLocation": "14444:2:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14436:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14436:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14456:7:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14448:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14448:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "auth", + "nameLocation": "14473:4:5", + "nodeType": "VariableDeclaration", + "scope": 1128, + "src": "14465:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14465:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14435:43:5" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [], + "src": "14488:0:5" + }, + "scope": 1325, + "src": "14418:120:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1193, + "nodeType": "Block", + "src": "14814:568:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1140, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "14880:9:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1141, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "14893:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14909:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14901:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14901:7:5", + "typeDescriptions": {} + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14901:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "14893:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14880:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1186, + "nodeType": "IfStatement", + "src": "14876:460:5", + "trueBody": { + "id": 1185, + "nodeType": "Block", + "src": "14913:423:5", + "statements": [ + { + "assignments": [ + 1149 + ], + "declarations": [ + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "owner", + "nameLocation": "14935:5:5", + "nodeType": "VariableDeclaration", + "scope": 1185, + "src": "14927:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14927:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1153, + "initialValue": { + "arguments": [ + { + "id": 1151, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "14957:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1150, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "14943:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14943:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14927:38:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1154, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15093:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15109:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15101:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15101:7:5", + "typeDescriptions": {} + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15101:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15093:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15115:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1161, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15124:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15115:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15093:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15132:30:5", + "subExpression": { + "arguments": [ + { + "id": 1165, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15150:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1166, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15157:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1164, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "15133:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15133:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15093:69:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1175, + "nodeType": "IfStatement", + "src": "15089:142:5", + "trueBody": { + "id": 1174, + "nodeType": "Block", + "src": "15164:67:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1171, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1135, + "src": "15211:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1170, + "name": "ERC721InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 263, + "src": "15189:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15189:27:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1173, + "nodeType": "RevertStatement", + "src": "15182:34:5" + } + ] + } + }, + { + "condition": { + "id": 1176, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1137, + "src": "15249:9:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1184, + "nodeType": "IfStatement", + "src": "15245:81:5", + "trueBody": { + "id": 1183, + "nodeType": "Block", + "src": "15260:66:5", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 1178, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "15292:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1179, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "15299:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1180, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "15303:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1177, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "15283:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15283:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1182, + "nodeType": "EmitStatement", + "src": "15278:33:5" + } + ] + } + } + ] + } + }, + { + "expression": { + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1187, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "15346:15:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1189, + "indexExpression": { + "id": 1188, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1133, + "src": "15362:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15346:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1190, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "15373:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15346:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "15346:29:5" + } + ] + }, + "documentation": { + "id": 1129, + "nodeType": "StructuredDocumentation", + "src": "14544:171:5", + "text": " @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers." + }, + "id": 1194, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "14729:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "to", + "nameLocation": "14746:2:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14738:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14738:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1133, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "14758:7:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14750:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14750:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1135, + "mutability": "mutable", + "name": "auth", + "nameLocation": "14775:4:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14767:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14767:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1137, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "14786:9:5", + "nodeType": "VariableDeclaration", + "scope": 1194, + "src": "14781:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1136, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14781:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14737:59:5" + }, + "returnParameters": { + "id": 1139, + "nodeType": "ParameterList", + "parameters": [], + "src": "14814:0:5" + }, + "scope": 1325, + "src": "14720:662:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1230, + "nodeType": "Block", + "src": "15684:219:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1204, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15698:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15718:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15710:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15710:7:5", + "typeDescriptions": {} + } + }, + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15710:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15698:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1215, + "nodeType": "IfStatement", + "src": "15694:91:5", + "trueBody": { + "id": 1214, + "nodeType": "Block", + "src": "15722:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1211, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15765:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1210, + "name": "ERC721InvalidOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "15743:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15743:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1213, + "nodeType": "RevertStatement", + "src": "15736:38:5" + } + ] + } + }, + { + "expression": { + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1216, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 369, + "src": "15794:18:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1219, + "indexExpression": { + "id": 1217, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "15813:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15794:25:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1220, + "indexExpression": { + "id": 1218, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15820:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15794:35:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1221, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "15832:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15794:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1223, + "nodeType": "ExpressionStatement", + "src": "15794:46:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1225, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "15870:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1199, + "src": "15877:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1227, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "15887:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1224, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1359, + "src": "15855:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15855:41:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1229, + "nodeType": "EmitStatement", + "src": "15850:46:5" + } + ] + }, + "documentation": { + "id": 1195, + "nodeType": "StructuredDocumentation", + "src": "15388:198:5", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event." + }, + "id": 1231, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "15600:18:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1197, + "mutability": "mutable", + "name": "owner", + "nameLocation": "15627:5:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15619:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15619:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "mutability": "mutable", + "name": "operator", + "nameLocation": "15642:8:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15634:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15634:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "mutability": "mutable", + "name": "approved", + "nameLocation": "15657:8:5", + "nodeType": "VariableDeclaration", + "scope": 1231, + "src": "15652:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1200, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15652:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15618:48:5" + }, + "returnParameters": { + "id": 1203, + "nodeType": "ParameterList", + "parameters": [], + "src": "15684:0:5" + }, + "scope": 1325, + "src": "15591:312:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1259, + "nodeType": "Block", + "src": "16210:169:5", + "statements": [ + { + "assignments": [ + 1240 + ], + "declarations": [ + { + "constant": false, + "id": 1240, + "mutability": "mutable", + "name": "owner", + "nameLocation": "16228:5:5", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "16220:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16220:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1244, + "initialValue": { + "arguments": [ + { + "id": 1242, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "16245:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1241, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 690, + "src": "16236:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16236:17:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16220:33:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1245, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "16267:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16284:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16276:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1246, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16276:7:5", + "typeDescriptions": {} + } + }, + "id": 1249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16276:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16267:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1256, + "nodeType": "IfStatement", + "src": "16263:88:5", + "trueBody": { + "id": 1255, + "nodeType": "Block", + "src": "16288:63:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1252, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "16332:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1251, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "16309:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16309:31:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1254, + "nodeType": "RevertStatement", + "src": "16302:38:5" + } + ] + } + }, + { + "expression": { + "id": 1257, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1240, + "src": "16367:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1238, + "id": 1258, + "nodeType": "Return", + "src": "16360:12:5" + } + ] + }, + "documentation": { + "id": 1232, + "nodeType": "StructuredDocumentation", + "src": "15909:224:5", + "text": " @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}." + }, + "id": 1260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireOwned", + "nameLocation": "16147:13:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1234, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16169:7:5", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "16161:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16161:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16160:17:5" + }, + "returnParameters": { + "id": 1238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1260, + "src": "16201:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16201:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16200:9:5" + }, + "scope": 1325, + "src": "16138:241:5", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1323, + "nodeType": "Block", + "src": "17020:680:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1272, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17034:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17037:4:5", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "17034:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17042:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17034:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17051:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17034:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1322, + "nodeType": "IfStatement", + "src": "17030:664:5", + "trueBody": { + "id": 1321, + "nodeType": "Block", + "src": "17054:640:5", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1301, + "nodeType": "Block", + "src": "17168:162:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1290, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1288, + "src": "17190:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 1291, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "17200:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$1460_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17216:16:5", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1459, + "src": "17200:32:5", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17233:8:5", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "17200:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "17190:51:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1300, + "nodeType": "IfStatement", + "src": "17186:130:5", + "trueBody": { + "id": 1299, + "nodeType": "Block", + "src": "17243:73:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1296, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17294:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1295, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "17272:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17272:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1298, + "nodeType": "RevertStatement", + "src": "17265:32:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1302, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1288, + "mutability": "mutable", + "name": "retval", + "nameLocation": "17160:6:5", + "nodeType": "VariableDeclaration", + "scope": 1302, + "src": "17153:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1287, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "17153:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "17152:15:5" + }, + "src": "17144:186:5" + }, + { + "block": { + "id": 1318, + "nodeType": "Block", + "src": "17359:325:5", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1306, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1304, + "src": "17381:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17388:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17381:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17398:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17381:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1316, + "nodeType": "Block", + "src": "17480:190:5", + "statements": [ + { + "AST": { + "nativeSrc": "17566:86:5", + "nodeType": "YulBlock", + "src": "17566:86:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17603:2:5", + "nodeType": "YulLiteral", + "src": "17603:2:5", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "17607:6:5", + "nodeType": "YulIdentifier", + "src": "17607:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17599:3:5", + "nodeType": "YulIdentifier", + "src": "17599:3:5" + }, + "nativeSrc": "17599:15:5", + "nodeType": "YulFunctionCall", + "src": "17599:15:5" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "17622:6:5", + "nodeType": "YulIdentifier", + "src": "17622:6:5" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17616:5:5", + "nodeType": "YulIdentifier", + "src": "17616:5:5" + }, + "nativeSrc": "17616:13:5", + "nodeType": "YulFunctionCall", + "src": "17616:13:5" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17592:6:5", + "nodeType": "YulIdentifier", + "src": "17592:6:5" + }, + "nativeSrc": "17592:38:5", + "nodeType": "YulFunctionCall", + "src": "17592:38:5" + }, + "nativeSrc": "17592:38:5", + "nodeType": "YulExpressionStatement", + "src": "17592:38:5" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1304, + "isOffset": false, + "isSlot": false, + "src": "17607:6:5", + "valueSize": 1 + }, + { + "declaration": 1304, + "isOffset": false, + "isSlot": false, + "src": "17622:6:5", + "valueSize": 1 + } + ], + "id": 1315, + "nodeType": "InlineAssembly", + "src": "17557:95:5" + } + ] + }, + "id": 1317, + "nodeType": "IfStatement", + "src": "17377:293:5", + "trueBody": { + "id": 1314, + "nodeType": "Block", + "src": "17401:73:5", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1311, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17452:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1310, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "17430:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17430:25:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1313, + "nodeType": "RevertStatement", + "src": "17423:32:5" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1319, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1304, + "mutability": "mutable", + "name": "reason", + "nameLocation": "17351:6:5", + "nodeType": "VariableDeclaration", + "scope": 1319, + "src": "17338:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17338:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "17337:21:5" + }, + "src": "17331:353:5" + } + ], + "externalCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1281, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "17109:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17109:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1283, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "17123:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1284, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "17129:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "17138:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1278, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "17088:2:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1277, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "17072:15:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$1460_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17072:19:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$1460", + "typeString": "contract IERC721Receiver" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17092:16:5", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1459, + "src": "17072:36:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17072:71:5", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1320, + "nodeType": "TryStatement", + "src": "17068:616:5" + } + ] + } + } + ] + }, + "documentation": { + "id": 1261, + "nodeType": "StructuredDocumentation", + "src": "16385:528:5", + "text": " @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call" + }, + "id": 1324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nameLocation": "16927:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "from", + "nameLocation": "16958:4:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16950:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16950:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1265, + "mutability": "mutable", + "name": "to", + "nameLocation": "16972:2:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16964:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16964:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1267, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16984:7:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16976:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16976:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1269, + "mutability": "mutable", + "name": "data", + "nameLocation": "17006:4:5", + "nodeType": "VariableDeclaration", + "scope": 1324, + "src": "16993:17:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1268, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16993:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "16949:62:5" + }, + "returnParameters": { + "id": 1271, + "nodeType": "ParameterList", + "parameters": [], + "src": "17020:0:5" + }, + "scope": 1325, + "src": "16918:782:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1326, + "src": "776:16926:5", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "107:17596:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ], + "IERC721": [ + 1442 + ] + }, + "id": 1443, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1327, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 1329, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1443, + "sourceUnit": 1936, + "src": "134:62:6", + "symbolAliases": [ + { + "foreign": { + "id": 1328, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "142:7:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1331, + "name": "IERC165", + "nameLocations": [ + "287:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "287:7:6" + }, + "id": 1332, + "nodeType": "InheritanceSpecifier", + "src": "287:7:6" + } + ], + "canonicalName": "IERC721", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1330, + "nodeType": "StructuredDocumentation", + "src": "198:67:6", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 1442, + "linearizedBaseContracts": [ + 1442, + 1935 + ], + "name": "IERC721", + "nameLocation": "276:7:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1333, + "nodeType": "StructuredDocumentation", + "src": "301:88:6", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 1341, + "name": "Transfer", + "nameLocation": "400:8:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1335, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "425:4:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "409:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "409:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1337, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "447:2:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "431:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "431:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1339, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "467:7:6", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "451:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "451:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "408:67:6" + }, + "src": "394:82:6" + }, + { + "anonymous": false, + "documentation": { + "id": 1342, + "nodeType": "StructuredDocumentation", + "src": "482:94:6", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 1350, + "name": "Approval", + "nameLocation": "587:8:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1344, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "612:5:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "596:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "596:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1346, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nameLocation": "635:8:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "619:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "619:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1348, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "661:7:6", + "nodeType": "VariableDeclaration", + "scope": 1350, + "src": "645:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "645:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "595:74:6" + }, + "src": "581:89:6" + }, + { + "anonymous": false, + "documentation": { + "id": 1351, + "nodeType": "StructuredDocumentation", + "src": "676:117:6", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 1359, + "name": "ApprovalForAll", + "nameLocation": "804:14:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 1358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1353, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "835:5:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "819:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "819:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1355, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "858:8:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "842:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "842:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1357, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "873:8:6", + "nodeType": "VariableDeclaration", + "scope": 1359, + "src": "868:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1356, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "868:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "818:64:6" + }, + "src": "798:85:6" + }, + { + "documentation": { + "id": 1360, + "nodeType": "StructuredDocumentation", + "src": "889:76:6", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 1367, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "979:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "owner", + "nameLocation": "997:5:6", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "989:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "989:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "988:15:6" + }, + "returnParameters": { + "id": 1366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1365, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1035:7:6", + "nodeType": "VariableDeclaration", + "scope": 1367, + "src": "1027:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1027:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1026:17:6" + }, + "scope": 1442, + "src": "970:74:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1368, + "nodeType": "StructuredDocumentation", + "src": "1050:131:6", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 1375, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1195:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1370, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1211:7:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "1203:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1203:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1202:17:6" + }, + "returnParameters": { + "id": 1374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1373, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1251:5:6", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "1243:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1243:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1242:15:6" + }, + "scope": 1442, + "src": "1186:72:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1376, + "nodeType": "StructuredDocumentation", + "src": "1264:565:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 1387, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1843:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1378, + "mutability": "mutable", + "name": "from", + "nameLocation": "1868:4:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1860:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1860:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1380, + "mutability": "mutable", + "name": "to", + "nameLocation": "1882:2:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1874:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1874:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1382, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1894:7:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1886:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1886:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "data", + "nameLocation": "1918:4:6", + "nodeType": "VariableDeclaration", + "scope": 1387, + "src": "1903:19:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1383, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1903:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1859:64:6" + }, + "returnParameters": { + "id": 1386, + "nodeType": "ParameterList", + "parameters": [], + "src": "1932:0:6" + }, + "scope": 1442, + "src": "1834:99:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1388, + "nodeType": "StructuredDocumentation", + "src": "1939:705:6", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 1397, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "2658:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "mutability": "mutable", + "name": "from", + "nameLocation": "2683:4:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2675:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2675:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "mutability": "mutable", + "name": "to", + "nameLocation": "2697:2:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2689:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2689:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2709:7:6", + "nodeType": "VariableDeclaration", + "scope": 1397, + "src": "2701:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2701:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2674:43:6" + }, + "returnParameters": { + "id": 1396, + "nodeType": "ParameterList", + "parameters": [], + "src": "2726:0:6" + }, + "scope": 1442, + "src": "2649:78:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1398, + "nodeType": "StructuredDocumentation", + "src": "2733:732:6", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 1407, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "3479:12:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "from", + "nameLocation": "3500:4:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3492:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3492:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1402, + "mutability": "mutable", + "name": "to", + "nameLocation": "3514:2:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3506:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3506:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1404, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3526:7:6", + "nodeType": "VariableDeclaration", + "scope": 1407, + "src": "3518:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3518:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3491:43:6" + }, + "returnParameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [], + "src": "3543:0:6" + }, + "scope": 1442, + "src": "3470:74:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1408, + "nodeType": "StructuredDocumentation", + "src": "3550:452:6", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 1415, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4016:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1410, + "mutability": "mutable", + "name": "to", + "nameLocation": "4032:2:6", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "4024:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1409, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4024:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1412, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4044:7:6", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "4036:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4036:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4023:29:6" + }, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "4061:0:6" + }, + "scope": 1442, + "src": "4007:55:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1416, + "nodeType": "StructuredDocumentation", + "src": "4068:315:6", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 1423, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4397:17:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1418, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4423:8:6", + "nodeType": "VariableDeclaration", + "scope": 1423, + "src": "4415:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4415:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "approved", + "nameLocation": "4438:8:6", + "nodeType": "VariableDeclaration", + "scope": 1423, + "src": "4433:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1419, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4433:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4414:33:6" + }, + "returnParameters": { + "id": 1422, + "nodeType": "ParameterList", + "parameters": [], + "src": "4456:0:6" + }, + "scope": 1442, + "src": "4388:69:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1424, + "nodeType": "StructuredDocumentation", + "src": "4463:139:6", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 1431, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4616:11:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1426, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4636:7:6", + "nodeType": "VariableDeclaration", + "scope": 1431, + "src": "4628:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4628:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4627:17:6" + }, + "returnParameters": { + "id": 1430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1429, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4676:8:6", + "nodeType": "VariableDeclaration", + "scope": 1431, + "src": "4668:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4668:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4667:18:6" + }, + "scope": 1442, + "src": "4607:79:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "4692:138:6", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 1441, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4844:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1434, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4869:5:6", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4861:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4861:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1436, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4884:8:6", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4876:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4876:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4860:33:6" + }, + "returnParameters": { + "id": 1440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "4917:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1438, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4917:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4916:6:6" + }, + "scope": 1442, + "src": "4835:88:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1443, + "src": "266:4659:6", + "usedErrors": [], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "108:4818:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "exportedSymbols": { + "IERC721Receiver": [ + 1460 + ] + }, + "id": 1461, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1444, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "116:24:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1445, + "nodeType": "StructuredDocumentation", + "src": "142:152:7", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 1460, + "linearizedBaseContracts": [ + 1460 + ], + "name": "IERC721Receiver", + "nameLocation": "305:15:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1446, + "nodeType": "StructuredDocumentation", + "src": "327:500:7", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 1459, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "841:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "operator", + "nameLocation": "875:8:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "867:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "867:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1450, + "mutability": "mutable", + "name": "from", + "nameLocation": "901:4:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "893:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1449, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "893:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "923:7:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "915:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "915:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1454, + "mutability": "mutable", + "name": "data", + "nameLocation": "955:4:7", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "940:19:7", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1453, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "940:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "857:108:7" + }, + "returnParameters": { + "id": 1458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1459, + "src": "984:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1456, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "984:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "983:8:7" + }, + "scope": 1460, + "src": "832:160:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1461, + "src": "295:699:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "116:879:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "exportedSymbols": { + "ERC721": [ + 1325 + ], + "ERC721URIStorage": [ + 1586 + ], + "IERC165": [ + 1935 + ], + "IERC4906": [ + 175 + ], + "Strings": [ + 1899 + ] + }, + "id": 1587, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1462, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "128:24:8" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "../ERC721.sol", + "id": 1464, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 1326, + "src": "154:37:8", + "symbolAliases": [ + { + "foreign": { + "id": 1463, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1325, + "src": "162:6:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../../../utils/Strings.sol", + "id": 1466, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 1900, + "src": "192:51:8", + "symbolAliases": [ + { + "foreign": { + "id": 1465, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "200:7:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC4906.sol", + "file": "../../../interfaces/IERC4906.sol", + "id": 1468, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 176, + "src": "244:58:8", + "symbolAliases": [ + { + "foreign": { + "id": 1467, + "name": "IERC4906", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 175, + "src": "252:8:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC165.sol", + "file": "../../../interfaces/IERC165.sol", + "id": 1470, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1587, + "sourceUnit": 152, + "src": "303:56:8", + "symbolAliases": [ + { + "foreign": { + "id": 1469, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "311:7:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1472, + "name": "IERC4906", + "nameLocations": [ + "469:8:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 175, + "src": "469:8:8" + }, + "id": 1473, + "nodeType": "InheritanceSpecifier", + "src": "469:8:8" + }, + { + "baseName": { + "id": 1474, + "name": "ERC721", + "nameLocations": [ + "479:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "479:6:8" + }, + "id": 1475, + "nodeType": "InheritanceSpecifier", + "src": "479:6:8" + } + ], + "canonicalName": "ERC721URIStorage", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1471, + "nodeType": "StructuredDocumentation", + "src": "361:69:8", + "text": " @dev ERC721 token with storage based token URI management." + }, + "fullyImplemented": true, + "id": 1586, + "linearizedBaseContracts": [ + 1586, + 1325, + 269, + 1614, + 175, + 1442, + 1923, + 1935, + 1644 + ], + "name": "ERC721URIStorage", + "nameLocation": "449:16:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1478, + "libraryName": { + "id": 1476, + "name": "Strings", + "nameLocations": [ + "498:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1899, + "src": "498:7:8" + }, + "nodeType": "UsingForDirective", + "src": "492:26:8", + "typeName": { + "id": 1477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1484, + "mutability": "constant", + "name": "ERC4906_INTERFACE_ID", + "nameLocation": "730:20:8", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "706:65:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1479, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "706:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "arguments": [ + { + "hexValue": "30783439303634393036", + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "760:10:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1225148678_by_1", + "typeString": "int_const 1225148678" + }, + "value": "0x49064906" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1225148678_by_1", + "typeString": "int_const 1225148678" + } + ], + "id": 1481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "753:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 1480, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "753:6:8", + "typeDescriptions": {} + } + }, + "id": 1483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "753:18:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 1488, + "mutability": "mutable", + "name": "_tokenURIs", + "nameLocation": "860:10:8", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "817:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 1487, + "keyName": "tokenId", + "keyNameLocation": "833:7:8", + "keyType": { + "id": 1485, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "825:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "817:34:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1486, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "844:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "baseFunctions": [ + 417, + 1934 + ], + "body": { + "id": 1508, + "nodeType": "Block", + "src": "1045:99:8", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1499, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "1062:11:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1500, + "name": "ERC4906_INTERFACE_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "1077:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1062:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1504, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "1125:11:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1502, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1101:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$1586_$", + "typeString": "type(contract super ERC721URIStorage)" + } + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1107:17:8", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 417, + "src": "1101:23:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1101:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1062:75:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1498, + "id": 1507, + "nodeType": "Return", + "src": "1055:82:8" + } + ] + }, + "documentation": { + "id": 1489, + "nodeType": "StructuredDocumentation", + "src": "877:55:8", + "text": " @dev See {IERC165-supportsInterface}" + }, + "functionSelector": "01ffc9a7", + "id": 1509, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "946:17:8", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1495, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 1493, + "name": "ERC721", + "nameLocations": [ + "1013:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1013:6:8" + }, + { + "id": 1494, + "name": "IERC165", + "nameLocations": [ + "1021:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "1021:7:8" + } + ], + "src": "1004:25:8" + }, + "parameters": { + "id": 1492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1491, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "971:11:8", + "nodeType": "VariableDeclaration", + "scope": 1509, + "src": "964:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1490, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "964:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "963:20:8" + }, + "returnParameters": { + "id": 1498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1497, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1509, + "src": "1039:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1496, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1039:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1038:6:8" + }, + "scope": 1586, + "src": "937:207:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 512 + ], + "body": { + "id": 1565, + "nodeType": "Block", + "src": "1298:505:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1519, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "1322:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1518, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1260, + "src": "1308:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1308:22:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1521, + "nodeType": "ExpressionStatement", + "src": "1308:22:8" + }, + { + "assignments": [ + 1523 + ], + "declarations": [ + { + "constant": false, + "id": 1523, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "1355:9:8", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "1341:23:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1522, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1341:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1527, + "initialValue": { + "baseExpression": { + "id": 1524, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1367:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1526, + "indexExpression": { + "id": 1525, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "1378:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1367:19:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1341:45:8" + }, + { + "assignments": [ + 1529 + ], + "declarations": [ + { + "constant": false, + "id": 1529, + "mutability": "mutable", + "name": "base", + "nameLocation": "1410:4:8", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "1396:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1528, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1396:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1532, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1530, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 521, + "src": "1417:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 1531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1417:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1396:31:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1535, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1506:4:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1500:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1533, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1500:5:8", + "typeDescriptions": {} + } + }, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1500:11:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1512:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1500:18:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1522:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1500:23:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1543, + "nodeType": "IfStatement", + "src": "1496:70:8", + "trueBody": { + "id": 1542, + "nodeType": "Block", + "src": "1525:41:8", + "statements": [ + { + "expression": { + "id": 1540, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "1546:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1517, + "id": 1541, + "nodeType": "Return", + "src": "1539:16:8" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1546, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "1671:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1665:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1544, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1665:5:8", + "typeDescriptions": {} + } + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1665:16:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1682:6:8", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1665:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1691:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1665:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "1661:95:8", + "trueBody": { + "id": 1558, + "nodeType": "Block", + "src": "1694:62:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1554, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1729:4:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 1555, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "1735:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 1552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1715:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1551, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1715:6:8", + "typeDescriptions": {} + } + }, + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1722:6:8", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1715:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1715:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1517, + "id": 1557, + "nodeType": "Return", + "src": "1708:37:8" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1562, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "1788:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1560, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1773:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721URIStorage_$1586_$", + "typeString": "type(contract super ERC721URIStorage)" + } + }, + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1779:8:8", + "memberName": "tokenURI", + "nodeType": "MemberAccess", + "referencedDeclaration": 512, + "src": "1773:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) view returns (string memory)" + } + }, + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1773:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1517, + "id": 1564, + "nodeType": "Return", + "src": "1766:30:8" + } + ] + }, + "documentation": { + "id": 1510, + "nodeType": "StructuredDocumentation", + "src": "1150:55:8", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 1566, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "1219:8:8", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1514, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1265:8:8" + }, + "parameters": { + "id": 1513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1512, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1236:7:8", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "1228:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1228:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1227:17:8" + }, + "returnParameters": { + "id": 1517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "1283:13:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1515, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1283:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1282:15:8" + }, + "scope": 1586, + "src": "1210:593:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1584, + "nodeType": "Block", + "src": "2003:86:8", + "statements": [ + { + "expression": { + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1574, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "2013:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 1576, + "indexExpression": { + "id": 1575, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1569, + "src": "2024:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2013:19:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1577, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "2035:9:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2013:31:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1579, + "nodeType": "ExpressionStatement", + "src": "2013:31:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1581, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1569, + "src": "2074:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1580, + "name": "MetadataUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2059:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2059:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1583, + "nodeType": "EmitStatement", + "src": "2054:28:8" + } + ] + }, + "documentation": { + "id": 1567, + "nodeType": "StructuredDocumentation", + "src": "1809:108:8", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Emits {MetadataUpdate}." + }, + "id": 1585, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nameLocation": "1931:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1952:7:8", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "1944:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1944:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1571, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "1975:9:8", + "nodeType": "VariableDeclaration", + "scope": 1585, + "src": "1961:23:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1570, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1961:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1943:42:8" + }, + "returnParameters": { + "id": 1573, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:8" + }, + "scope": 1586, + "src": "1922:167:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1587, + "src": "431:1660:8", + "usedErrors": [ + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 167, + 174, + 1341, + 1350, + 1359 + ] + } + ], + "src": "128:1964:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "exportedSymbols": { + "IERC721": [ + 1442 + ], + "IERC721Metadata": [ + 1614 + ] + }, + "id": 1615, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1588, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "127:24:9" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../IERC721.sol", + "id": 1590, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1615, + "sourceUnit": 1443, + "src": "153:39:9", + "symbolAliases": [ + { + "foreign": { + "id": 1589, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "161:7:9", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1592, + "name": "IERC721", + "nameLocations": [ + "357:7:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1442, + "src": "357:7:9" + }, + "id": 1593, + "nodeType": "InheritanceSpecifier", + "src": "357:7:9" + } + ], + "canonicalName": "IERC721Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1591, + "nodeType": "StructuredDocumentation", + "src": "194:133:9", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 1614, + "linearizedBaseContracts": [ + 1614, + 1442, + 1935 + ], + "name": "IERC721Metadata", + "nameLocation": "338:15:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1594, + "nodeType": "StructuredDocumentation", + "src": "371:58:9", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 1599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "443:4:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1595, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:9" + }, + "returnParameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1599, + "src": "473:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1596, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "473:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "472:15:9" + }, + "scope": 1614, + "src": "434:54:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1600, + "nodeType": "StructuredDocumentation", + "src": "494:60:9", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 1605, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "568:6:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [], + "src": "574:2:9" + }, + "returnParameters": { + "id": 1604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1603, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1605, + "src": "600:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "600:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "599:15:9" + }, + "scope": 1614, + "src": "559:56:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1606, + "nodeType": "StructuredDocumentation", + "src": "621:90:9", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 1613, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "725:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1608, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "742:7:9", + "nodeType": "VariableDeclaration", + "scope": 1613, + "src": "734:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1607, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "733:17:9" + }, + "returnParameters": { + "id": 1612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1611, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1613, + "src": "774:13:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1610, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "774:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "773:15:9" + }, + "scope": 1614, + "src": "716:73:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1615, + "src": "328:463:9", + "usedErrors": [], + "usedEvents": [ + 1341, + 1350, + 1359 + ] + } + ], + "src": "127:665:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 1644 + ] + }, + "id": 1645, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1616, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:10" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1617, + "nodeType": "StructuredDocumentation", + "src": "127:496:10", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 1644, + "linearizedBaseContracts": [ + 1644 + ], + "name": "Context", + "nameLocation": "642:7:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1625, + "nodeType": "Block", + "src": "718:34:10", + "statements": [ + { + "expression": { + "expression": { + "id": 1622, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:10", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1621, + "id": 1624, + "nodeType": "Return", + "src": "728:17:10" + } + ] + }, + "id": 1626, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1618, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:10" + }, + "returnParameters": { + "id": 1621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1620, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1626, + "src": "709:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:10" + }, + "scope": 1644, + "src": "656:96:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1634, + "nodeType": "Block", + "src": "825:32:10", + "statements": [ + { + "expression": { + "expression": { + "id": 1631, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:10", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1630, + "id": 1633, + "nodeType": "Return", + "src": "835:15:10" + } + ] + }, + "id": 1635, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1627, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:10" + }, + "returnParameters": { + "id": 1630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1629, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1635, + "src": "809:14:10", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1628, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:10" + }, + "scope": 1644, + "src": "758:99:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1642, + "nodeType": "Block", + "src": "935:25:10", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1639, + "id": 1641, + "nodeType": "Return", + "src": "945:8:10" + } + ] + }, + "id": 1643, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1636, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:10" + }, + "returnParameters": { + "id": 1639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1638, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1643, + "src": "926:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1637, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:10" + }, + "scope": 1644, + "src": "863:97:10", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1645, + "src": "624:338:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 2989 + ], + "SignedMath": [ + 3094 + ], + "Strings": [ + 1899 + ] + }, + "id": 1900, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1646, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:11" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 1648, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1900, + "sourceUnit": 2990, + "src": "127:37:11", + "symbolAliases": [ + { + "foreign": { + "id": 1647, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2989, + "src": "135:4:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 1650, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1900, + "sourceUnit": 3095, + "src": "165:49:11", + "symbolAliases": [ + { + "foreign": { + "id": 1649, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3094, + "src": "173:10:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1651, + "nodeType": "StructuredDocumentation", + "src": "216:34:11", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 1899, + "linearizedBaseContracts": [ + 1899 + ], + "name": "Strings", + "nameLocation": "259:7:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 1654, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "298:10:11", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "273:56:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 1652, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "273:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 1653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:18:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 1657, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "358:14:11", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "335:42:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1655, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "335:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 1658, + "nodeType": "StructuredDocumentation", + "src": "384:81:11", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 1664, + "name": "StringsInsufficientHexLength", + "nameLocation": "476:28:11", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1660, + "mutability": "mutable", + "name": "value", + "nameLocation": "513:5:11", + "nodeType": "VariableDeclaration", + "scope": 1664, + "src": "505:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "505:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "length", + "nameLocation": "528:6:11", + "nodeType": "VariableDeclaration", + "scope": 1664, + "src": "520:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "504:31:11" + }, + "src": "470:66:11" + }, + { + "body": { + "id": 1711, + "nodeType": "Block", + "src": "708:627:11", + "statements": [ + { + "id": 1710, + "nodeType": "UncheckedBlock", + "src": "718:611:11", + "statements": [ + { + "assignments": [ + 1673 + ], + "declarations": [ + { + "constant": false, + "id": 1673, + "mutability": "mutable", + "name": "length", + "nameLocation": "750:6:11", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "742:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1680, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1676, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "770:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1674, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2989, + "src": "759:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$2989_$", + "typeString": "type(library Math)" + } + }, + "id": 1675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "764:5:11", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 2809, + "src": "759:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "759:17:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "779:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "759:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "742:38:11" + }, + { + "assignments": [ + 1682 + ], + "declarations": [ + { + "constant": false, + "id": 1682, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "808:6:11", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "794:20:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1681, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "794:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 1687, + "initialValue": { + "arguments": [ + { + "id": 1685, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1673, + "src": "828:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "817:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 1683, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "821:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 1686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "817:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "794:41:11" + }, + { + "assignments": [ + 1689 + ], + "declarations": [ + { + "constant": false, + "id": 1689, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "857:3:11", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "849:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "849:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1690, + "nodeType": "VariableDeclarationStatement", + "src": "849:11:11" + }, + { + "AST": { + "nativeSrc": "930:67:11", + "nodeType": "YulBlock", + "src": "930:67:11", + "statements": [ + { + "nativeSrc": "948:35:11", + "nodeType": "YulAssignment", + "src": "948:35:11", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "959:6:11", + "nodeType": "YulIdentifier", + "src": "959:6:11" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "971:2:11", + "nodeType": "YulLiteral", + "src": "971:2:11", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "975:6:11", + "nodeType": "YulIdentifier", + "src": "975:6:11" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "967:3:11", + "nodeType": "YulIdentifier", + "src": "967:3:11" + }, + "nativeSrc": "967:15:11", + "nodeType": "YulFunctionCall", + "src": "967:15:11" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "955:3:11", + "nodeType": "YulIdentifier", + "src": "955:3:11" + }, + "nativeSrc": "955:28:11", + "nodeType": "YulFunctionCall", + "src": "955:28:11" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "948:3:11", + "nodeType": "YulIdentifier", + "src": "948:3:11" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1682, + "isOffset": false, + "isSlot": false, + "src": "959:6:11", + "valueSize": 1 + }, + { + "declaration": 1673, + "isOffset": false, + "isSlot": false, + "src": "975:6:11", + "valueSize": 1 + }, + { + "declaration": 1689, + "isOffset": false, + "isSlot": false, + "src": "948:3:11", + "valueSize": 1 + } + ], + "id": 1691, + "nodeType": "InlineAssembly", + "src": "921:76:11" + }, + { + "body": { + "id": 1706, + "nodeType": "Block", + "src": "1023:269:11", + "statements": [ + { + "expression": { + "id": 1694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1041:5:11", + "subExpression": { + "id": 1693, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "1041:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1695, + "nodeType": "ExpressionStatement", + "src": "1041:5:11" + }, + { + "AST": { + "nativeSrc": "1124:86:11", + "nodeType": "YulBlock", + "src": "1124:86:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1154:3:11", + "nodeType": "YulIdentifier", + "src": "1154:3:11" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:11", + "nodeType": "YulIdentifier", + "src": "1168:5:11" + }, + { + "kind": "number", + "nativeSrc": "1175:2:11", + "nodeType": "YulLiteral", + "src": "1175:2:11", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1164:3:11", + "nodeType": "YulIdentifier", + "src": "1164:3:11" + }, + "nativeSrc": "1164:14:11", + "nodeType": "YulFunctionCall", + "src": "1164:14:11" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1180:10:11", + "nodeType": "YulIdentifier", + "src": "1180:10:11" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1159:4:11", + "nodeType": "YulIdentifier", + "src": "1159:4:11" + }, + "nativeSrc": "1159:32:11", + "nodeType": "YulFunctionCall", + "src": "1159:32:11" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1146:7:11", + "nodeType": "YulIdentifier", + "src": "1146:7:11" + }, + "nativeSrc": "1146:46:11", + "nodeType": "YulFunctionCall", + "src": "1146:46:11" + }, + "nativeSrc": "1146:46:11", + "nodeType": "YulExpressionStatement", + "src": "1146:46:11" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1654, + "isOffset": false, + "isSlot": false, + "src": "1180:10:11", + "valueSize": 1 + }, + { + "declaration": 1689, + "isOffset": false, + "isSlot": false, + "src": "1154:3:11", + "valueSize": 1 + }, + { + "declaration": 1667, + "isOffset": false, + "isSlot": false, + "src": "1168:5:11", + "valueSize": 1 + } + ], + "id": 1696, + "nodeType": "InlineAssembly", + "src": "1115:95:11" + }, + { + "expression": { + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1697, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "1227:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1236:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1227:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1700, + "nodeType": "ExpressionStatement", + "src": "1227:11:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1701, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "1260:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1260:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1705, + "nodeType": "IfStatement", + "src": "1256:21:11", + "trueBody": { + "id": 1704, + "nodeType": "Break", + "src": "1272:5:11" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1017:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 1707, + "nodeType": "WhileStatement", + "src": "1010:282:11" + }, + { + "expression": { + "id": 1708, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1682, + "src": "1312:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1671, + "id": 1709, + "nodeType": "Return", + "src": "1305:13:11" + } + ] + } + ] + }, + "documentation": { + "id": 1665, + "nodeType": "StructuredDocumentation", + "src": "542:90:11", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 1712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "646:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1667, + "mutability": "mutable", + "name": "value", + "nameLocation": "663:5:11", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "655:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "655:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "654:15:11" + }, + "returnParameters": { + "id": 1671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1670, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "693:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1669, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "693:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "692:15:11" + }, + "scope": 1899, + "src": "637:698:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1737, + "nodeType": "Block", + "src": "1511:92:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1723, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "1542:5:11", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1550:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1542:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1560:2:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1542:20:11", + "trueExpression": { + "hexValue": "2d", + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1554:3:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 1732, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1715, + "src": "1588:5:11", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 1730, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3094, + "src": "1573:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$3094_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 1731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1584:3:11", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 3093, + "src": "1573:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 1733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1573:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1729, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1712, + "src": "1564:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1564:31:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1528:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1720, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:11", + "typeDescriptions": {} + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1535:6:11", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1528:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1528:68:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1719, + "id": 1736, + "nodeType": "Return", + "src": "1521:75:11" + } + ] + }, + "documentation": { + "id": 1713, + "nodeType": "StructuredDocumentation", + "src": "1341:89:11", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 1738, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "1444:14:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "value", + "nameLocation": "1466:5:11", + "nodeType": "VariableDeclaration", + "scope": 1738, + "src": "1459:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 1714, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1459:6:11", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1458:14:11" + }, + "returnParameters": { + "id": 1719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1718, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1738, + "src": "1496:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1717, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1496:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1495:15:11" + }, + "scope": 1899, + "src": "1435:168:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1757, + "nodeType": "Block", + "src": "1782:100:11", + "statements": [ + { + "id": 1756, + "nodeType": "UncheckedBlock", + "src": "1792:84:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1747, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "1835:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "1854:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1748, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2989, + "src": "1842:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$2989_$", + "typeString": "type(library Math)" + } + }, + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1847:6:11", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2931, + "src": "1842:11:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1842:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1863:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1842:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1746, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1758, + 1841, + 1861 + ], + "referencedDeclaration": 1841, + "src": "1823:11:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1823:42:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1745, + "id": 1755, + "nodeType": "Return", + "src": "1816:49:11" + } + ] + } + ] + }, + "documentation": { + "id": 1739, + "nodeType": "StructuredDocumentation", + "src": "1609:94:11", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 1758, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1717:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1741, + "mutability": "mutable", + "name": "value", + "nameLocation": "1737:5:11", + "nodeType": "VariableDeclaration", + "scope": 1758, + "src": "1729:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1728:15:11" + }, + "returnParameters": { + "id": 1745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1758, + "src": "1767:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1767:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1766:15:11" + }, + "scope": 1899, + "src": "1708:174:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1840, + "nodeType": "Block", + "src": "2095:435:11", + "statements": [ + { + "assignments": [ + 1769 + ], + "declarations": [ + { + "constant": false, + "id": 1769, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2113:10:11", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "2105:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2105:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1771, + "initialValue": { + "id": 1770, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "2126:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2105:26:11" + }, + { + "assignments": [ + 1773 + ], + "declarations": [ + { + "constant": false, + "id": 1773, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2154:6:11", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "2141:19:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1772, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2141:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1782, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1777, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "2177:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2173:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2186:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2173:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2163:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 1774, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2167:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2163:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2141:47:11" + }, + { + "expression": { + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1783, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2198:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1785, + "indexExpression": { + "hexValue": "30", + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2205:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2198:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2210:3:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2198:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1788, + "nodeType": "ExpressionStatement", + "src": "2198:15:11" + }, + { + "expression": { + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1789, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2223:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1791, + "indexExpression": { + "hexValue": "31", + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2230:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2223:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 1792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2235:3:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2223:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1794, + "nodeType": "ExpressionStatement", + "src": "2223:15:11" + }, + { + "body": { + "id": 1823, + "nodeType": "Block", + "src": "2293:95:11", + "statements": [ + { + "expression": { + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1809, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2307:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1811, + "indexExpression": { + "id": 1810, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1796, + "src": "2314:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2307:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 1812, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1654, + "src": "2319:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 1816, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1813, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "2330:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 1814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2343:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2330:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2319:28:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2307:40:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 1818, + "nodeType": "ExpressionStatement", + "src": "2307:40:11" + }, + { + "expression": { + "id": 1821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1819, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "2361:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2376:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2361:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1822, + "nodeType": "ExpressionStatement", + "src": "2361:16:11" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1803, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1796, + "src": "2281:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2285:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2281:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1824, + "initializationExpression": { + "assignments": [ + 1796 + ], + "declarations": [ + { + "constant": false, + "id": 1796, + "mutability": "mutable", + "name": "i", + "nameLocation": "2261:1:11", + "nodeType": "VariableDeclaration", + "scope": 1824, + "src": "2253:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1802, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2265:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1798, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "2269:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2265:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2278:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2265:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2253:26:11" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 1807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2288:3:11", + "subExpression": { + "id": 1806, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1796, + "src": "2290:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1808, + "nodeType": "ExpressionStatement", + "src": "2288:3:11" + }, + "nodeType": "ForStatement", + "src": "2248:140:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1825, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "2401:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2401:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1834, + "nodeType": "IfStatement", + "src": "2397:96:11", + "trueBody": { + "id": 1833, + "nodeType": "Block", + "src": "2418:75:11", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1829, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "2468:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1830, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "2475:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1828, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1664, + "src": "2439:28:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2439:43:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1832, + "nodeType": "RevertStatement", + "src": "2432:50:11" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1837, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "2516:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2509:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 1835, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2509:6:11", + "typeDescriptions": {} + } + }, + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2509:14:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1767, + "id": 1839, + "nodeType": "Return", + "src": "2502:21:11" + } + ] + }, + "documentation": { + "id": 1759, + "nodeType": "StructuredDocumentation", + "src": "1888:112:11", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 1841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2014:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1761, + "mutability": "mutable", + "name": "value", + "nameLocation": "2034:5:11", + "nodeType": "VariableDeclaration", + "scope": 1841, + "src": "2026:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2026:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1763, + "mutability": "mutable", + "name": "length", + "nameLocation": "2049:6:11", + "nodeType": "VariableDeclaration", + "scope": 1841, + "src": "2041:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2041:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:31:11" + }, + "returnParameters": { + "id": 1767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1766, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1841, + "src": "2080:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1765, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2080:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2079:15:11" + }, + "scope": 1899, + "src": "2005:525:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1860, + "nodeType": "Block", + "src": "2762:75:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1854, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1844, + "src": "2807:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2799:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1852, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2799:7:11", + "typeDescriptions": {} + } + }, + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2799:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2791:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:11", + "typeDescriptions": {} + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2791:22:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1857, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "2815:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1849, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1758, + 1841, + 1861 + ], + "referencedDeclaration": 1841, + "src": "2779:11:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2779:51:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 1848, + "id": 1859, + "nodeType": "Return", + "src": "2772:58:11" + } + ] + }, + "documentation": { + "id": 1842, + "nodeType": "StructuredDocumentation", + "src": "2536:148:11", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 1861, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2698:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1844, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2718:4:11", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "2710:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1843, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2709:14:11" + }, + "returnParameters": { + "id": 1848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1847, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "2747:13:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1846, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2747:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2746:15:11" + }, + "scope": 1899, + "src": "2689:148:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1897, + "nodeType": "Block", + "src": "2992:104:11", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1873, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1864, + "src": "3015:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3009:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1871, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3009:5:11", + "typeDescriptions": {} + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3009:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3009:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1878, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "3034:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3028:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1876, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3028:5:11", + "typeDescriptions": {} + } + }, + "id": 1879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3028:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3037:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3028:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3009:34:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1885, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1864, + "src": "3063:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3057:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1883, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3057:5:11", + "typeDescriptions": {} + } + }, + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3057:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1882, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3047:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3047:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1891, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1866, + "src": "3086:1:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3080:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1889, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3080:5:11", + "typeDescriptions": {} + } + }, + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3080:8:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1888, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3070:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3070:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3047:42:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3009:80:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1870, + "id": 1896, + "nodeType": "Return", + "src": "3002:87:11" + } + ] + }, + "documentation": { + "id": 1862, + "nodeType": "StructuredDocumentation", + "src": "2843:66:11", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 1898, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "2923:5:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1864, + "mutability": "mutable", + "name": "a", + "nameLocation": "2943:1:11", + "nodeType": "VariableDeclaration", + "scope": 1898, + "src": "2929:15:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1863, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2929:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1866, + "mutability": "mutable", + "name": "b", + "nameLocation": "2960:1:11", + "nodeType": "VariableDeclaration", + "scope": 1898, + "src": "2946:15:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1865, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2946:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2928:34:11" + }, + "returnParameters": { + "id": 1870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1898, + "src": "2986:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2986:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2985:6:11" + }, + "scope": 1899, + "src": "2914:182:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1900, + "src": "251:2847:11", + "usedErrors": [ + 1664 + ], + "usedEvents": [] + } + ], + "src": "101:2998:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 1923 + ], + "IERC165": [ + 1935 + ] + }, + "id": 1924, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1901, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 1903, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1924, + "sourceUnit": 1936, + "src": "140:38:12", + "symbolAliases": [ + { + "foreign": { + "id": 1902, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "148:7:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1905, + "name": "IERC165", + "nameLocations": [ + "687:7:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1935, + "src": "687:7:12" + }, + "id": 1906, + "nodeType": "InheritanceSpecifier", + "src": "687:7:12" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1904, + "nodeType": "StructuredDocumentation", + "src": "180:478:12", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 1923, + "linearizedBaseContracts": [ + 1923, + 1935 + ], + "name": "ERC165", + "nameLocation": "677:6:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1934 + ], + "body": { + "id": 1921, + "nodeType": "Block", + "src": "844:64:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1914, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1909, + "src": "861:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1916, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1935, + "src": "881:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$1935_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$1935_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 1915, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "876:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "876:13:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$1935", + "typeString": "type(contract IERC165)" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "890:11:12", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "876:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "861:40:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1913, + "id": 1920, + "nodeType": "Return", + "src": "854:47:12" + } + ] + }, + "documentation": { + "id": 1907, + "nodeType": "StructuredDocumentation", + "src": "701:56:12", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "771:17:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1909, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "796:11:12", + "nodeType": "VariableDeclaration", + "scope": 1922, + "src": "789:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1908, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "789:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "788:20:12" + }, + "returnParameters": { + "id": 1913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1912, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1922, + "src": "838:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1911, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "837:6:12" + }, + "scope": 1923, + "src": "762:146:12", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 1924, + "src": "659:251:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:797:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 1935 + ] + }, + "id": 1936, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1925, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:13" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1926, + "nodeType": "StructuredDocumentation", + "src": "141:279:13", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 1935, + "linearizedBaseContracts": [ + 1935 + ], + "name": "IERC165", + "nameLocation": "431:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1927, + "nodeType": "StructuredDocumentation", + "src": "445:340:13", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 1934, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1929, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:13", + "nodeType": "VariableDeclaration", + "scope": 1934, + "src": "817:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1928, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "817:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "816:20:13" + }, + "returnParameters": { + "id": 1933, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1932, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1934, + "src": "860:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1931, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:13" + }, + "scope": 1935, + "src": "790:76:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1936, + "src": "421:447:13", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 2989 + ] + }, + "id": 2990, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1937, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:14" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1938, + "nodeType": "StructuredDocumentation", + "src": "129:73:14", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 2989, + "linearizedBaseContracts": [ + 2989 + ], + "name": "Math", + "nameLocation": "211:4:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1939, + "nodeType": "StructuredDocumentation", + "src": "222:50:14", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 1941, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1940, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:14" + }, + "src": "277:29:14" + }, + { + "canonicalName": "Math.Rounding", + "id": 1946, + "members": [ + { + "id": 1942, + "name": "Floor", + "nameLocation": "336:5:14", + "nodeType": "EnumValue", + "src": "336:5:14" + }, + { + "id": 1943, + "name": "Ceil", + "nameLocation": "379:4:14", + "nodeType": "EnumValue", + "src": "379:4:14" + }, + { + "id": 1944, + "name": "Trunc", + "nameLocation": "421:5:14", + "nodeType": "EnumValue", + "src": "421:5:14" + }, + { + "id": 1945, + "name": "Expand", + "nameLocation": "451:6:14", + "nodeType": "EnumValue", + "src": "451:6:14" + } + ], + "name": "Rounding", + "nameLocation": "317:8:14", + "nodeType": "EnumDefinition", + "src": "312:169:14" + }, + { + "body": { + "id": 1977, + "nodeType": "Block", + "src": "661:140:14", + "statements": [ + { + "id": 1976, + "nodeType": "UncheckedBlock", + "src": "671:124:14", + "statements": [ + { + "assignments": [ + 1959 + ], + "declarations": [ + { + "constant": false, + "id": 1959, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:14", + "nodeType": "VariableDeclaration", + "scope": 1976, + "src": "695:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1963, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1960, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "707:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1961, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "711:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1964, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "730:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1965, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "734:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1971, + "nodeType": "IfStatement", + "src": "726:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "745:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "752:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 1969, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "744:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 1957, + "id": 1970, + "nodeType": "Return", + "src": "737:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 1973, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "782:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1974, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "775:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 1957, + "id": 1975, + "nodeType": "Return", + "src": "768:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 1947, + "nodeType": "StructuredDocumentation", + "src": "487:93:14", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + }, + "id": 1978, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "594:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:14", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1951, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:14", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "612:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:14" + }, + "returnParameters": { + "id": 1957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "646:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1953, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "646:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1956, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "652:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "652:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:15:14" + }, + "scope": 2989, + "src": "585:216:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2005, + "nodeType": "Block", + "src": "984:113:14", + "statements": [ + { + "id": 2004, + "nodeType": "UncheckedBlock", + "src": "994:97:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1990, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "1022:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1991, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "1026:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1997, + "nodeType": "IfStatement", + "src": "1018:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 1995, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 1989, + "id": 1996, + "nodeType": "Return", + "src": "1029:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1999, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1981, + "src": "1074:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2000, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "1078:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2002, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 1989, + "id": 2003, + "nodeType": "Return", + "src": "1060:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 1979, + "nodeType": "StructuredDocumentation", + "src": "807:96:14", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + }, + "id": 2006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "917:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1981, + "mutability": "mutable", + "name": "a", + "nameLocation": "932:1:14", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "924:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "924:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "b", + "nameLocation": "943:1:14", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "935:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "935:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "923:22:14" + }, + "returnParameters": { + "id": 1989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1986, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1985, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1988, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2006, + "src": "975:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "968:15:14" + }, + "scope": 2989, + "src": "908:189:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2047, + "nodeType": "Block", + "src": "1283:417:14", + "statements": [ + { + "id": 2046, + "nodeType": "UncheckedBlock", + "src": "1293:401:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2018, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "1551:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2025, + "nodeType": "IfStatement", + "src": "1547:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2023, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2017, + "id": 2024, + "nodeType": "Return", + "src": "1559:16:14" + } + }, + { + "assignments": [ + 2027 + ], + "declarations": [ + { + "constant": false, + "id": 2027, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:14", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "1589:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2028, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "1601:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2011, + "src": "1605:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2032, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "1624:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2033, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "1628:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2035, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2011, + "src": "1633:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2041, + "nodeType": "IfStatement", + "src": "1620:33:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2039, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2017, + "id": 2040, + "nodeType": "Return", + "src": "1636:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1675:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2043, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "1681:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2044, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1674:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2017, + "id": 2045, + "nodeType": "Return", + "src": "1667:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 2007, + "nodeType": "StructuredDocumentation", + "src": "1103:99:14", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + }, + "id": 2048, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1216:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "a", + "nameLocation": "1231:1:14", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1223:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2011, + "mutability": "mutable", + "name": "b", + "nameLocation": "1242:1:14", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1234:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1222:22:14" + }, + "returnParameters": { + "id": 2017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2014, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1268:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2016, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2048, + "src": "1274:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1267:15:14" + }, + "scope": 2989, + "src": "1207:493:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2075, + "nodeType": "Block", + "src": "1887:114:14", + "statements": [ + { + "id": 2074, + "nodeType": "UncheckedBlock", + "src": "1897:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2060, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2053, + "src": "1925:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1930:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1925:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2067, + "nodeType": "IfStatement", + "src": "1921:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1941:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2065, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1940:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2059, + "id": 2066, + "nodeType": "Return", + "src": "1933:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2069, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2051, + "src": "1978:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2070, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2053, + "src": "1982:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2072, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1971:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2059, + "id": 2073, + "nodeType": "Return", + "src": "1964:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2049, + "nodeType": "StructuredDocumentation", + "src": "1706:100:14", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + }, + "id": 2076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1820:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2051, + "mutability": "mutable", + "name": "a", + "nameLocation": "1835:1:14", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1827:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1827:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2053, + "mutability": "mutable", + "name": "b", + "nameLocation": "1846:1:14", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1838:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1826:22:14" + }, + "returnParameters": { + "id": 2059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2056, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1872:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2055, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2058, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2076, + "src": "1878:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2057, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1878:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1871:15:14" + }, + "scope": 2989, + "src": "1811:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2103, + "nodeType": "Block", + "src": "2198:114:14", + "statements": [ + { + "id": 2102, + "nodeType": "UncheckedBlock", + "src": "2208:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2088, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2081, + "src": "2236:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2236:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2095, + "nodeType": "IfStatement", + "src": "2232:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2093, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2251:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2087, + "id": 2094, + "nodeType": "Return", + "src": "2244:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2097, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "2289:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 2098, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2081, + "src": "2293:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2289:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2100, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2282:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2087, + "id": 2101, + "nodeType": "Return", + "src": "2275:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2077, + "nodeType": "StructuredDocumentation", + "src": "2007:110:14", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 2104, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2082, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2079, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:14", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2138:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2078, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2081, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:14", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2149:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2080, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:14" + }, + "returnParameters": { + "id": 2087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2183:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2083, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2086, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2104, + "src": "2189:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:14" + }, + "scope": 2989, + "src": "2122:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2121, + "nodeType": "Block", + "src": "2449:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2114, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "2466:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2115, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "2470:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2118, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "2478:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:14", + "trueExpression": { + "id": 2117, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "2474:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2113, + "id": 2120, + "nodeType": "Return", + "src": "2459:20:14" + } + ] + }, + "documentation": { + "id": 2105, + "nodeType": "StructuredDocumentation", + "src": "2318:59:14", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2122, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2107, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:14", + "nodeType": "VariableDeclaration", + "scope": 2122, + "src": "2395:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:14", + "nodeType": "VariableDeclaration", + "scope": 2122, + "src": "2406:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:14" + }, + "returnParameters": { + "id": 2113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2112, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2122, + "src": "2440:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:14" + }, + "scope": 2989, + "src": "2382:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2139, + "nodeType": "Block", + "src": "2624:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2132, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2125, + "src": "2641:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2133, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "2645:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2136, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "2653:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:14", + "trueExpression": { + "id": 2135, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2125, + "src": "2649:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2131, + "id": 2138, + "nodeType": "Return", + "src": "2634:20:14" + } + ] + }, + "documentation": { + "id": 2123, + "nodeType": "StructuredDocumentation", + "src": "2492:60:14", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2140, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2125, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:14", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2570:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2127, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:14", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2581:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:14" + }, + "returnParameters": { + "id": 2131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2130, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2615:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:14" + }, + "scope": 2989, + "src": "2557:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2162, + "nodeType": "Block", + "src": "2845:82:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2150, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "2900:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2151, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "2904:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2153, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2154, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "2910:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2155, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "2914:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2910:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2157, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2909:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2899:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2149, + "id": 2161, + "nodeType": "Return", + "src": "2892:28:14" + } + ] + }, + "documentation": { + "id": 2141, + "nodeType": "StructuredDocumentation", + "src": "2667:102:14", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2163, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2143, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:14", + "nodeType": "VariableDeclaration", + "scope": 2163, + "src": "2791:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:14", + "nodeType": "VariableDeclaration", + "scope": 2163, + "src": "2802:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:14" + }, + "returnParameters": { + "id": 2149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2163, + "src": "2836:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2147, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:14" + }, + "scope": 2989, + "src": "2774:153:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2196, + "nodeType": "Block", + "src": "3219:260:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2173, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2168, + "src": "3233:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2181, + "nodeType": "IfStatement", + "src": "3229:127:14", + "trueBody": { + "id": 2180, + "nodeType": "Block", + "src": "3241:115:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2176, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3340:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2177, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2168, + "src": "3344:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2172, + "id": 2179, + "nodeType": "Return", + "src": "3333:12:14" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2182, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2186, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2166, + "src": "3458:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2189, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3457:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2190, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2168, + "src": "3467:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3457:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:14", + "trueExpression": { + "hexValue": "30", + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2172, + "id": 2195, + "nodeType": "Return", + "src": "3437:35:14" + } + ] + }, + "documentation": { + "id": 2164, + "nodeType": "StructuredDocumentation", + "src": "2933:210:14", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 2197, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2166, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:14", + "nodeType": "VariableDeclaration", + "scope": 2197, + "src": "3165:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2168, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:14", + "nodeType": "VariableDeclaration", + "scope": 2197, + "src": "3176:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:14" + }, + "returnParameters": { + "id": 2172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2171, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2197, + "src": "3210:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2170, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:14" + }, + "scope": 2989, + "src": "3148:331:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2322, + "nodeType": "Block", + "src": "3901:4018:14", + "statements": [ + { + "id": 2321, + "nodeType": "UncheckedBlock", + "src": "3911:4002:14", + "statements": [ + { + "assignments": [ + 2210 + ], + "declarations": [ + { + "constant": false, + "id": 2210, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "4232:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2214, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2211, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2200, + "src": "4248:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2212, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2202, + "src": "4252:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:14" + }, + { + "assignments": [ + 2216 + ], + "declarations": [ + { + "constant": false, + "id": 2216, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "4320:5:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "4312:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4312:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2217, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:14" + }, + { + "AST": { + "nativeSrc": "4392:122:14", + "nodeType": "YulBlock", + "src": "4392:122:14", + "statements": [ + { + "nativeSrc": "4410:30:14", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:14", + "nodeType": "YulIdentifier", + "src": "4427:1:14" + }, + { + "name": "y", + "nativeSrc": "4430:1:14", + "nodeType": "YulIdentifier", + "src": "4430:1:14" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:14", + "nodeType": "YulLiteral", + "src": "4437:1:14", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:14", + "nodeType": "YulIdentifier", + "src": "4433:3:14" + }, + "nativeSrc": "4433:6:14", + "nodeType": "YulFunctionCall", + "src": "4433:6:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:14", + "nodeType": "YulIdentifier", + "src": "4420:6:14" + }, + "nativeSrc": "4420:20:14", + "nodeType": "YulFunctionCall", + "src": "4420:20:14" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:14", + "nodeType": "YulTypedName", + "src": "4414:2:14", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:14", + "nodeType": "YulAssignment", + "src": "4457:43:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:14", + "nodeType": "YulIdentifier", + "src": "4474:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:14", + "nodeType": "YulIdentifier", + "src": "4478:5:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:14", + "nodeType": "YulIdentifier", + "src": "4470:3:14" + }, + "nativeSrc": "4470:14:14", + "nodeType": "YulFunctionCall", + "src": "4470:14:14" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:14", + "nodeType": "YulIdentifier", + "src": "4489:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:14", + "nodeType": "YulIdentifier", + "src": "4493:5:14" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:14", + "nodeType": "YulIdentifier", + "src": "4486:2:14" + }, + "nativeSrc": "4486:13:14", + "nodeType": "YulFunctionCall", + "src": "4486:13:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:14", + "nodeType": "YulIdentifier", + "src": "4466:3:14" + }, + "nativeSrc": "4466:34:14", + "nodeType": "YulFunctionCall", + "src": "4466:34:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:14", + "nodeType": "YulIdentifier", + "src": "4457:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "4478:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "4493:5:14", + "valueSize": 1 + }, + { + "declaration": 2216, + "isOffset": false, + "isSlot": false, + "src": "4457:5:14", + "valueSize": 1 + }, + { + "declaration": 2200, + "isOffset": false, + "isSlot": false, + "src": "4427:1:14", + "valueSize": 1 + }, + { + "declaration": 2202, + "isOffset": false, + "isSlot": false, + "src": "4430:1:14", + "valueSize": 1 + } + ], + "id": 2218, + "nodeType": "InlineAssembly", + "src": "4383:131:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2219, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2216, + "src": "4595:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2227, + "nodeType": "IfStatement", + "src": "4591:368:14", + "trueBody": { + "id": 2226, + "nodeType": "Block", + "src": "4607:352:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2222, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "4925:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2223, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "4933:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4925:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2208, + "id": 2225, + "nodeType": "Return", + "src": "4918:26:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2228, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "5065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2229, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2216, + "src": "5080:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2235, + "nodeType": "IfStatement", + "src": "5061:88:14", + "trueBody": { + "id": 2234, + "nodeType": "Block", + "src": "5087:62:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2231, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "5112:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "RevertStatement", + "src": "5105:29:14" + } + ] + } + }, + { + "assignments": [ + 2237 + ], + "declarations": [ + { + "constant": false, + "id": 2237, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "5404:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2238, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:14" + }, + { + "AST": { + "nativeSrc": "5444:291:14", + "nodeType": "YulBlock", + "src": "5444:291:14", + "statements": [ + { + "nativeSrc": "5513:38:14", + "nodeType": "YulAssignment", + "src": "5513:38:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:14", + "nodeType": "YulIdentifier", + "src": "5533:1:14" + }, + { + "name": "y", + "nativeSrc": "5536:1:14", + "nodeType": "YulIdentifier", + "src": "5536:1:14" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:14", + "nodeType": "YulIdentifier", + "src": "5539:11:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:14", + "nodeType": "YulIdentifier", + "src": "5526:6:14" + }, + "nativeSrc": "5526:25:14", + "nodeType": "YulFunctionCall", + "src": "5526:25:14" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:14", + "nodeType": "YulIdentifier", + "src": "5513:9:14" + } + ] + }, + { + "nativeSrc": "5633:41:14", + "nodeType": "YulAssignment", + "src": "5633:41:14", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:14", + "nodeType": "YulIdentifier", + "src": "5646:5:14" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:14", + "nodeType": "YulIdentifier", + "src": "5656:9:14" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:14", + "nodeType": "YulIdentifier", + "src": "5667:5:14" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:14", + "nodeType": "YulIdentifier", + "src": "5653:2:14" + }, + "nativeSrc": "5653:20:14", + "nodeType": "YulFunctionCall", + "src": "5653:20:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:14", + "nodeType": "YulIdentifier", + "src": "5642:3:14" + }, + "nativeSrc": "5642:32:14", + "nodeType": "YulFunctionCall", + "src": "5642:32:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:14", + "nodeType": "YulIdentifier", + "src": "5633:5:14" + } + ] + }, + { + "nativeSrc": "5691:30:14", + "nodeType": "YulAssignment", + "src": "5691:30:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:14", + "nodeType": "YulIdentifier", + "src": "5704:5:14" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:14", + "nodeType": "YulIdentifier", + "src": "5711:9:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:14", + "nodeType": "YulIdentifier", + "src": "5700:3:14" + }, + "nativeSrc": "5700:21:14", + "nodeType": "YulFunctionCall", + "src": "5700:21:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:14", + "nodeType": "YulIdentifier", + "src": "5691:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2204, + "isOffset": false, + "isSlot": false, + "src": "5539:11:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "5667:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "5691:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "5704:5:14", + "valueSize": 1 + }, + { + "declaration": 2216, + "isOffset": false, + "isSlot": false, + "src": "5633:5:14", + "valueSize": 1 + }, + { + "declaration": 2216, + "isOffset": false, + "isSlot": false, + "src": "5646:5:14", + "valueSize": 1 + }, + { + "declaration": 2237, + "isOffset": false, + "isSlot": false, + "src": "5513:9:14", + "valueSize": 1 + }, + { + "declaration": 2237, + "isOffset": false, + "isSlot": false, + "src": "5656:9:14", + "valueSize": 1 + }, + { + "declaration": 2237, + "isOffset": false, + "isSlot": false, + "src": "5711:9:14", + "valueSize": 1 + }, + { + "declaration": 2200, + "isOffset": false, + "isSlot": false, + "src": "5533:1:14", + "valueSize": 1 + }, + { + "declaration": 2202, + "isOffset": false, + "isSlot": false, + "src": "5536:1:14", + "valueSize": 1 + } + ], + "id": 2239, + "nodeType": "InlineAssembly", + "src": "5435:300:14" + }, + { + "assignments": [ + 2241 + ], + "declarations": [ + { + "constant": false, + "id": 2241, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "5939:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2248, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2242, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "5954:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 2243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2244, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "5973:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2246, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5954:31:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:14" + }, + { + "AST": { + "nativeSrc": "6008:362:14", + "nodeType": "YulBlock", + "src": "6008:362:14", + "statements": [ + { + "nativeSrc": "6073:37:14", + "nodeType": "YulAssignment", + "src": "6073:37:14", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:14", + "nodeType": "YulIdentifier", + "src": "6092:11:14" + }, + { + "name": "twos", + "nativeSrc": "6105:4:14", + "nodeType": "YulIdentifier", + "src": "6105:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:14", + "nodeType": "YulIdentifier", + "src": "6088:3:14" + }, + "nativeSrc": "6088:22:14", + "nodeType": "YulFunctionCall", + "src": "6088:22:14" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:14", + "nodeType": "YulIdentifier", + "src": "6073:11:14" + } + ] + }, + { + "nativeSrc": "6177:25:14", + "nodeType": "YulAssignment", + "src": "6177:25:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:14", + "nodeType": "YulIdentifier", + "src": "6190:5:14" + }, + { + "name": "twos", + "nativeSrc": "6197:4:14", + "nodeType": "YulIdentifier", + "src": "6197:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:14", + "nodeType": "YulIdentifier", + "src": "6186:3:14" + }, + "nativeSrc": "6186:16:14", + "nodeType": "YulFunctionCall", + "src": "6186:16:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:14", + "nodeType": "YulIdentifier", + "src": "6177:5:14" + } + ] + }, + { + "nativeSrc": "6317:39:14", + "nodeType": "YulAssignment", + "src": "6317:39:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:14", + "nodeType": "YulLiteral", + "src": "6337:1:14", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:14", + "nodeType": "YulIdentifier", + "src": "6340:4:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:14", + "nodeType": "YulIdentifier", + "src": "6333:3:14" + }, + "nativeSrc": "6333:12:14", + "nodeType": "YulFunctionCall", + "src": "6333:12:14" + }, + { + "name": "twos", + "nativeSrc": "6347:4:14", + "nodeType": "YulIdentifier", + "src": "6347:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:14", + "nodeType": "YulIdentifier", + "src": "6329:3:14" + }, + "nativeSrc": "6329:23:14", + "nodeType": "YulFunctionCall", + "src": "6329:23:14" + }, + { + "kind": "number", + "nativeSrc": "6354:1:14", + "nodeType": "YulLiteral", + "src": "6354:1:14", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:14", + "nodeType": "YulIdentifier", + "src": "6325:3:14" + }, + "nativeSrc": "6325:31:14", + "nodeType": "YulFunctionCall", + "src": "6325:31:14" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:14", + "nodeType": "YulIdentifier", + "src": "6317:4:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2204, + "isOffset": false, + "isSlot": false, + "src": "6073:11:14", + "valueSize": 1 + }, + { + "declaration": 2204, + "isOffset": false, + "isSlot": false, + "src": "6092:11:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "6177:5:14", + "valueSize": 1 + }, + { + "declaration": 2210, + "isOffset": false, + "isSlot": false, + "src": "6190:5:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6105:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6197:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6317:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6340:4:14", + "valueSize": 1 + }, + { + "declaration": 2241, + "isOffset": false, + "isSlot": false, + "src": "6347:4:14", + "valueSize": 1 + } + ], + "id": 2249, + "nodeType": "InlineAssembly", + "src": "5999:371:14" + }, + { + "expression": { + "id": 2254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2250, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "6436:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2251, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2216, + "src": "6445:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2252, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "6453:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2255, + "nodeType": "ExpressionStatement", + "src": "6436:21:14" + }, + { + "assignments": [ + 2257 + ], + "declarations": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:14", + "nodeType": "VariableDeclaration", + "scope": 2321, + "src": "6775:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2256, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2264, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2259, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "6798:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2261, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:14" + }, + { + "expression": { + "id": 2271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2265, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7031:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7042:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2267, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7046:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2268, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7060:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7046:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7042:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7031:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2272, + "nodeType": "ExpressionStatement", + "src": "7031:36:14" + }, + { + "expression": { + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2273, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7100:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7111:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2275, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7115:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2276, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7129:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7115:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7111:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7100:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2280, + "nodeType": "ExpressionStatement", + "src": "7100:36:14" + }, + { + "expression": { + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2281, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7170:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2283, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7185:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2284, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7199:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7181:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7170:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2288, + "nodeType": "ExpressionStatement", + "src": "7170:36:14" + }, + { + "expression": { + "id": 2295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2289, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7240:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2291, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7255:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2292, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7269:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2296, + "nodeType": "ExpressionStatement", + "src": "7240:36:14" + }, + { + "expression": { + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2297, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7310:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2299, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7325:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2300, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7339:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2304, + "nodeType": "ExpressionStatement", + "src": "7310:36:14" + }, + { + "expression": { + "id": 2311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2305, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7381:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2307, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2204, + "src": "7396:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2308, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7410:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2312, + "nodeType": "ExpressionStatement", + "src": "7381:36:14" + }, + { + "expression": { + "id": 2317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2313, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "7851:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2314, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2210, + "src": "7860:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2315, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "7868:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2318, + "nodeType": "ExpressionStatement", + "src": "7851:24:14" + }, + { + "expression": { + "id": 2319, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "7896:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2208, + "id": 2320, + "nodeType": "Return", + "src": "7889:13:14" + } + ] + } + ] + }, + "documentation": { + "id": 2198, + "nodeType": "StructuredDocumentation", + "src": "3485:313:14", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 2323, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2200, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3819:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3819:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2202, + "mutability": "mutable", + "name": "y", + "nameLocation": "3838:1:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3830:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3830:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2204, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "3849:11:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3841:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3841:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3818:43:14" + }, + "returnParameters": { + "id": 2208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2207, + "mutability": "mutable", + "name": "result", + "nameLocation": "3893:6:14", + "nodeType": "VariableDeclaration", + "scope": 2323, + "src": "3885:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2206, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3885:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3884:16:14" + }, + "scope": 2989, + "src": "3803:4116:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2365, + "nodeType": "Block", + "src": "8161:192:14", + "statements": [ + { + "assignments": [ + 2339 + ], + "declarations": [ + { + "constant": false, + "id": 2339, + "mutability": "mutable", + "name": "result", + "nameLocation": "8179:6:14", + "nodeType": "VariableDeclaration", + "scope": 2365, + "src": "8171:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2345, + "initialValue": { + "arguments": [ + { + "id": 2341, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "8195:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2342, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2328, + "src": "8198:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2343, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "8201:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2340, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2323, + 2366 + ], + "referencedDeclaration": 2323, + "src": "8188:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8188:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8171:42:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2347, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "8244:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2346, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "8227:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8227:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2350, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "8264:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2351, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2328, + "src": "8267:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2352, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "8270:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2349, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "8257:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8257:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8285:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8257:29:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8227:59:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2362, + "nodeType": "IfStatement", + "src": "8223:101:14", + "trueBody": { + "id": 2361, + "nodeType": "Block", + "src": "8288:36:14", + "statements": [ + { + "expression": { + "id": 2359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2357, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "8302:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8312:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8302:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2360, + "nodeType": "ExpressionStatement", + "src": "8302:11:14" + } + ] + } + }, + { + "expression": { + "id": 2363, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2339, + "src": "8340:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2337, + "id": 2364, + "nodeType": "Return", + "src": "8333:13:14" + } + ] + }, + "documentation": { + "id": 2324, + "nodeType": "StructuredDocumentation", + "src": "7925:121:14", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 2366, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "8060:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2326, + "mutability": "mutable", + "name": "x", + "nameLocation": "8075:1:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8067:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2325, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8067:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2328, + "mutability": "mutable", + "name": "y", + "nameLocation": "8086:1:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8078:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8078:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2330, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "8097:11:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8089:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2333, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8119:8:14", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8110:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2332, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2331, + "name": "Rounding", + "nameLocations": [ + "8110:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "8110:8:14" + }, + "referencedDeclaration": 1946, + "src": "8110:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8066:62:14" + }, + "returnParameters": { + "id": 2337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2336, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2366, + "src": "8152:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8152:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8151:9:14" + }, + "scope": 2989, + "src": "8051:302:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2477, + "nodeType": "Block", + "src": "8644:1585:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2374, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "8658:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8663:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8658:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2380, + "nodeType": "IfStatement", + "src": "8654:45:14", + "trueBody": { + "id": 2379, + "nodeType": "Block", + "src": "8666:33:14", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8687:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2373, + "id": 2378, + "nodeType": "Return", + "src": "8680:8:14" + } + ] + } + }, + { + "assignments": [ + 2382 + ], + "declarations": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "result", + "nameLocation": "9386:6:14", + "nodeType": "VariableDeclaration", + "scope": 2477, + "src": "9378:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9378:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2391, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9395:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2385, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9406:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2384, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2645, + 2680 + ], + "referencedDeclaration": 2645, + "src": "9401:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9401:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9412:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9401:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2389, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9400:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9395:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9378:36:14" + }, + { + "id": 2476, + "nodeType": "UncheckedBlock", + "src": "9815:408:14", + "statements": [ + { + "expression": { + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2392, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9839:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2393, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9849:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2394, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9858:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2395, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9862:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9858:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9849:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2398, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9848:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9873:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9848:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9839:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2402, + "nodeType": "ExpressionStatement", + "src": "9839:35:14" + }, + { + "expression": { + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2403, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9888:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2404, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9898:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2405, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9907:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2406, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9911:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9907:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9898:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2409, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9897:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9922:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9897:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9888:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2413, + "nodeType": "ExpressionStatement", + "src": "9888:35:14" + }, + { + "expression": { + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2414, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9937:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2415, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9947:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2416, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "9956:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2417, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9960:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9956:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9947:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2420, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9946:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9971:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9946:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9937:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2424, + "nodeType": "ExpressionStatement", + "src": "9937:35:14" + }, + { + "expression": { + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2425, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2426, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "9996:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2427, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10005:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2428, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10009:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10005:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9996:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2431, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9995:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10020:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9995:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9986:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2435, + "nodeType": "ExpressionStatement", + "src": "9986:35:14" + }, + { + "expression": { + "id": 2445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2436, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10035:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2437, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10045:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2438, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10054:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2439, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10054:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10045:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2442, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10044:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10069:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10044:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10035:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2446, + "nodeType": "ExpressionStatement", + "src": "10035:35:14" + }, + { + "expression": { + "id": 2456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2447, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10084:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2448, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10094:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2449, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10103:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2450, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10107:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10094:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10093:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10118:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10093:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10084:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2457, + "nodeType": "ExpressionStatement", + "src": "10084:35:14" + }, + { + "expression": { + "id": 2467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2458, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10133:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2459, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10143:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2460, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10152:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2461, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10156:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10152:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10143:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2464, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10142:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10142:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10133:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2468, + "nodeType": "ExpressionStatement", + "src": "10133:35:14" + }, + { + "expression": { + "arguments": [ + { + "id": 2470, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10193:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2471, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "10201:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2472, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "10205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10201:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2140, + "src": "10189:3:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10189:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2373, + "id": 2475, + "nodeType": "Return", + "src": "10182:30:14" + } + ] + } + ] + }, + "documentation": { + "id": 2367, + "nodeType": "StructuredDocumentation", + "src": "8359:223:14", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 2478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8596:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2369, + "mutability": "mutable", + "name": "a", + "nameLocation": "8609:1:14", + "nodeType": "VariableDeclaration", + "scope": 2478, + "src": "8601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8600:11:14" + }, + "returnParameters": { + "id": 2373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2478, + "src": "8635:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8635:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8634:9:14" + }, + "scope": 2989, + "src": "8587:1642:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2512, + "nodeType": "Block", + "src": "10405:164:14", + "statements": [ + { + "id": 2511, + "nodeType": "UncheckedBlock", + "src": "10415:148:14", + "statements": [ + { + "assignments": [ + 2490 + ], + "declarations": [ + { + "constant": false, + "id": 2490, + "mutability": "mutable", + "name": "result", + "nameLocation": "10447:6:14", + "nodeType": "VariableDeclaration", + "scope": 2511, + "src": "10439:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10439:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2494, + "initialValue": { + "arguments": [ + { + "id": 2492, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "10461:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2491, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2478, + 2513 + ], + "referencedDeclaration": 2478, + "src": "10456:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10456:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10439:24:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2495, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "10484:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2497, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2484, + "src": "10511:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2496, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "10494:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10494:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2499, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "10524:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2500, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2490, + "src": "10533:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2502, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2481, + "src": "10542:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10494:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10494:57:14", + "trueExpression": { + "hexValue": "31", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10546:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2508, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10493:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "10484:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2488, + "id": 2510, + "nodeType": "Return", + "src": "10477:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 2479, + "nodeType": "StructuredDocumentation", + "src": "10235:89:14", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 2513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "10338:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2481, + "mutability": "mutable", + "name": "a", + "nameLocation": "10351:1:14", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "10343:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10343:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2484, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10363:8:14", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "10354:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2483, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2482, + "name": "Rounding", + "nameLocations": [ + "10354:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "10354:8:14" + }, + "referencedDeclaration": 1946, + "src": "10354:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10342:30:14" + }, + "returnParameters": { + "id": 2488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2487, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "10396:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2486, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10396:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10395:9:14" + }, + "scope": 2989, + "src": "10329:240:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2644, + "nodeType": "Block", + "src": "10760:922:14", + "statements": [ + { + "assignments": [ + 2522 + ], + "declarations": [ + { + "constant": false, + "id": 2522, + "mutability": "mutable", + "name": "result", + "nameLocation": "10778:6:14", + "nodeType": "VariableDeclaration", + "scope": 2644, + "src": "10770:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10770:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2524, + "initialValue": { + "hexValue": "30", + "id": 2523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10787:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10770:18:14" + }, + { + "id": 2641, + "nodeType": "UncheckedBlock", + "src": "10798:855:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10826:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10835:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10826:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10841:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10826:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2539, + "nodeType": "IfStatement", + "src": "10822:99:14", + "trueBody": { + "id": 2538, + "nodeType": "Block", + "src": "10844:77:14", + "statements": [ + { + "expression": { + "id": 2532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10862:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10872:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10862:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2533, + "nodeType": "ExpressionStatement", + "src": "10862:13:14" + }, + { + "expression": { + "id": 2536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2534, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "10893:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10903:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10893:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2537, + "nodeType": "ExpressionStatement", + "src": "10893:13:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2540, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10938:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10947:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10938:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10952:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10938:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2554, + "nodeType": "IfStatement", + "src": "10934:96:14", + "trueBody": { + "id": 2553, + "nodeType": "Block", + "src": "10955:75:14", + "statements": [ + { + "expression": { + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2545, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "10973:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10983:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10973:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2548, + "nodeType": "ExpressionStatement", + "src": "10973:12:14" + }, + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2549, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11003:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11013:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11003:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "11003:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2555, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11047:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11056:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11047:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11061:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11047:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2569, + "nodeType": "IfStatement", + "src": "11043:96:14", + "trueBody": { + "id": 2568, + "nodeType": "Block", + "src": "11064:75:14", + "statements": [ + { + "expression": { + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2560, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11082:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 2561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11092:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11082:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2563, + "nodeType": "ExpressionStatement", + "src": "11082:12:14" + }, + { + "expression": { + "id": 2566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2564, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11112:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11112:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2567, + "nodeType": "ExpressionStatement", + "src": "11112:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2570, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11156:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11165:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11156:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11170:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11156:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2584, + "nodeType": "IfStatement", + "src": "11152:96:14", + "trueBody": { + "id": 2583, + "nodeType": "Block", + "src": "11173:75:14", + "statements": [ + { + "expression": { + "id": 2577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2575, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11191:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11201:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11191:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2578, + "nodeType": "ExpressionStatement", + "src": "11191:12:14" + }, + { + "expression": { + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2579, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11221:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11231:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11221:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2582, + "nodeType": "ExpressionStatement", + "src": "11221:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2585, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11274:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11265:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11278:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11265:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2599, + "nodeType": "IfStatement", + "src": "11261:93:14", + "trueBody": { + "id": 2598, + "nodeType": "Block", + "src": "11281:73:14", + "statements": [ + { + "expression": { + "id": 2592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2590, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11299:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 2591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11309:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11299:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2593, + "nodeType": "ExpressionStatement", + "src": "11299:11:14" + }, + { + "expression": { + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2594, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11328:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11338:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11328:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2597, + "nodeType": "ExpressionStatement", + "src": "11328:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2600, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11371:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 2601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11380:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11371:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11384:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11371:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2614, + "nodeType": "IfStatement", + "src": "11367:93:14", + "trueBody": { + "id": 2613, + "nodeType": "Block", + "src": "11387:73:14", + "statements": [ + { + "expression": { + "id": 2607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2605, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11405:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11415:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11405:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2608, + "nodeType": "ExpressionStatement", + "src": "11405:11:14" + }, + { + "expression": { + "id": 2611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2609, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11434:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11434:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2612, + "nodeType": "ExpressionStatement", + "src": "11434:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2615, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11477:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11486:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11477:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11477:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2629, + "nodeType": "IfStatement", + "src": "11473:93:14", + "trueBody": { + "id": 2628, + "nodeType": "Block", + "src": "11493:73:14", + "statements": [ + { + "expression": { + "id": 2622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2620, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11511:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 2621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11521:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11511:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2623, + "nodeType": "ExpressionStatement", + "src": "11511:11:14" + }, + { + "expression": { + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2624, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11540:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11540:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2627, + "nodeType": "ExpressionStatement", + "src": "11540:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2630, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "11583:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11592:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11583:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11596:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11583:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2640, + "nodeType": "IfStatement", + "src": "11579:64:14", + "trueBody": { + "id": 2639, + "nodeType": "Block", + "src": "11599:44:14", + "statements": [ + { + "expression": { + "id": 2637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2635, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11617:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11627:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11617:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2638, + "nodeType": "ExpressionStatement", + "src": "11617:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2642, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2522, + "src": "11669:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2520, + "id": 2643, + "nodeType": "Return", + "src": "11662:13:14" + } + ] + }, + "documentation": { + "id": 2514, + "nodeType": "StructuredDocumentation", + "src": "10575:119:14", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 2645, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "10708:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2516, + "mutability": "mutable", + "name": "value", + "nameLocation": "10721:5:14", + "nodeType": "VariableDeclaration", + "scope": 2645, + "src": "10713:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10713:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10712:15:14" + }, + "returnParameters": { + "id": 2520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2519, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2645, + "src": "10751:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10751:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10750:9:14" + }, + "scope": 2989, + "src": "10699:983:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2679, + "nodeType": "Block", + "src": "11915:168:14", + "statements": [ + { + "id": 2678, + "nodeType": "UncheckedBlock", + "src": "11925:152:14", + "statements": [ + { + "assignments": [ + 2657 + ], + "declarations": [ + { + "constant": false, + "id": 2657, + "mutability": "mutable", + "name": "result", + "nameLocation": "11957:6:14", + "nodeType": "VariableDeclaration", + "scope": 2678, + "src": "11949:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2661, + "initialValue": { + "arguments": [ + { + "id": 2659, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "11971:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2658, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2645, + 2680 + ], + "referencedDeclaration": 2645, + "src": "11966:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11966:11:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:28:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2662, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2657, + "src": "11998:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2664, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2651, + "src": "12025:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2663, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "12008:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12008:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 2667, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2657, + "src": "12043:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2669, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "12052:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12008:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12064:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12008:57:14", + "trueExpression": { + "hexValue": "31", + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12060:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2675, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12007:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11998:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2655, + "id": 2677, + "nodeType": "Return", + "src": "11991:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 2646, + "nodeType": "StructuredDocumentation", + "src": "11688:142:14", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2680, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "11844:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2648, + "mutability": "mutable", + "name": "value", + "nameLocation": "11857:5:14", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "11849:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11849:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2651, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11873:8:14", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "11864:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2650, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2649, + "name": "Rounding", + "nameLocations": [ + "11864:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "11864:8:14" + }, + "referencedDeclaration": 1946, + "src": "11864:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11848:34:14" + }, + "returnParameters": { + "id": 2655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2654, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "11906:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11906:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11905:9:14" + }, + "scope": 2989, + "src": "11835:248:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2808, + "nodeType": "Block", + "src": "12276:854:14", + "statements": [ + { + "assignments": [ + 2689 + ], + "declarations": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "result", + "nameLocation": "12294:6:14", + "nodeType": "VariableDeclaration", + "scope": 2808, + "src": "12286:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12286:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2691, + "initialValue": { + "hexValue": "30", + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12303:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12286:18:14" + }, + { + "id": 2805, + "nodeType": "UncheckedBlock", + "src": "12314:787:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2692, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12342:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 2695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12351:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 2694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12357:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12351:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12342:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2708, + "nodeType": "IfStatement", + "src": "12338:103:14", + "trueBody": { + "id": 2707, + "nodeType": "Block", + "src": "12361:80:14", + "statements": [ + { + "expression": { + "id": 2701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2697, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12379:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 2700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12388:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12394:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12388:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12379:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2702, + "nodeType": "ExpressionStatement", + "src": "12379:17:14" + }, + { + "expression": { + "id": 2705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2703, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12414:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 2704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12424:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12414:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2706, + "nodeType": "ExpressionStatement", + "src": "12414:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2709, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12467:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12473:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12467:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12458:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2725, + "nodeType": "IfStatement", + "src": "12454:103:14", + "trueBody": { + "id": 2724, + "nodeType": "Block", + "src": "12477:80:14", + "statements": [ + { + "expression": { + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2714, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12495:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12504:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 2716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12510:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12504:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12495:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2719, + "nodeType": "ExpressionStatement", + "src": "12495:17:14" + }, + { + "expression": { + "id": 2722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2720, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12530:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 2721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12540:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12530:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2723, + "nodeType": "ExpressionStatement", + "src": "12530:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2726, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12574:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12583:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12589:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12583:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12574:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2742, + "nodeType": "IfStatement", + "src": "12570:103:14", + "trueBody": { + "id": 2741, + "nodeType": "Block", + "src": "12593:80:14", + "statements": [ + { + "expression": { + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2731, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12611:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12620:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 2733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12626:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12620:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12611:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2736, + "nodeType": "ExpressionStatement", + "src": "12611:17:14" + }, + { + "expression": { + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2737, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12646:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12656:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12646:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2740, + "nodeType": "ExpressionStatement", + "src": "12646:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2743, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12690:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12699:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 2745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12705:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12699:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12690:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "12686:100:14", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "12708:78:14", + "statements": [ + { + "expression": { + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2748, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12726:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12735:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12741:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12735:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12726:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2753, + "nodeType": "ExpressionStatement", + "src": "12726:16:14" + }, + { + "expression": { + "id": 2756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2754, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12760:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12770:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12760:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2757, + "nodeType": "ExpressionStatement", + "src": "12760:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2760, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12803:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12812:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 2762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12818:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12803:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2776, + "nodeType": "IfStatement", + "src": "12799:100:14", + "trueBody": { + "id": 2775, + "nodeType": "Block", + "src": "12821:78:14", + "statements": [ + { + "expression": { + "id": 2769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2765, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12839:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12848:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 2767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12854:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12848:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12839:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2770, + "nodeType": "ExpressionStatement", + "src": "12839:16:14" + }, + { + "expression": { + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2771, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12873:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12883:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12873:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2774, + "nodeType": "ExpressionStatement", + "src": "12873:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2777, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12916:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12925:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12931:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12925:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12916:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2793, + "nodeType": "IfStatement", + "src": "12912:100:14", + "trueBody": { + "id": 2792, + "nodeType": "Block", + "src": "12934:78:14", + "statements": [ + { + "expression": { + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2782, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "12952:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12961:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12967:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12961:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12952:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2787, + "nodeType": "ExpressionStatement", + "src": "12952:16:14" + }, + { + "expression": { + "id": 2790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2788, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "12986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12996:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12986:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2791, + "nodeType": "ExpressionStatement", + "src": "12986:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2794, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2683, + "src": "13029:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13038:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13038:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "13029:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2804, + "nodeType": "IfStatement", + "src": "13025:66:14", + "trueBody": { + "id": 2803, + "nodeType": "Block", + "src": "13047:44:14", + "statements": [ + { + "expression": { + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2799, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "13065:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13075:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2802, + "nodeType": "ExpressionStatement", + "src": "13065:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2806, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "13117:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2687, + "id": 2807, + "nodeType": "Return", + "src": "13110:13:14" + } + ] + }, + "documentation": { + "id": 2681, + "nodeType": "StructuredDocumentation", + "src": "12089:120:14", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 2809, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "12223:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2683, + "mutability": "mutable", + "name": "value", + "nameLocation": "12237:5:14", + "nodeType": "VariableDeclaration", + "scope": 2809, + "src": "12229:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12229:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12228:15:14" + }, + "returnParameters": { + "id": 2687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2686, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2809, + "src": "12267:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12267:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12266:9:14" + }, + "scope": 2989, + "src": "12214:916:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2843, + "nodeType": "Block", + "src": "13365:170:14", + "statements": [ + { + "id": 2842, + "nodeType": "UncheckedBlock", + "src": "13375:154:14", + "statements": [ + { + "assignments": [ + 2821 + ], + "declarations": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "result", + "nameLocation": "13407:6:14", + "nodeType": "VariableDeclaration", + "scope": 2842, + "src": "13399:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13399:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2825, + "initialValue": { + "arguments": [ + { + "id": 2823, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "13422:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2822, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2809, + 2844 + ], + "referencedDeclaration": 2809, + "src": "13416:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13416:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13399:29:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2826, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2821, + "src": "13449:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2828, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2815, + "src": "13476:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2827, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "13459:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13459:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13489:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 2831, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2821, + "src": "13495:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2833, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "13504:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13459:50:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13516:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13459:58:14", + "trueExpression": { + "hexValue": "31", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13512:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2839, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13458:60:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13449:69:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2819, + "id": 2841, + "nodeType": "Return", + "src": "13442:76:14" + } + ] + } + ] + }, + "documentation": { + "id": 2810, + "nodeType": "StructuredDocumentation", + "src": "13136:143:14", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2844, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "13293:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2812, + "mutability": "mutable", + "name": "value", + "nameLocation": "13307:5:14", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "13299:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13299:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2815, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "13323:8:14", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "13314:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2814, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2813, + "name": "Rounding", + "nameLocations": [ + "13314:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "13314:8:14" + }, + "referencedDeclaration": 1946, + "src": "13314:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "13298:34:14" + }, + "returnParameters": { + "id": 2819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2818, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "13356:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13356:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13355:9:14" + }, + "scope": 2989, + "src": "13284:251:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2930, + "nodeType": "Block", + "src": "13855:600:14", + "statements": [ + { + "assignments": [ + 2853 + ], + "declarations": [ + { + "constant": false, + "id": 2853, + "mutability": "mutable", + "name": "result", + "nameLocation": "13873:6:14", + "nodeType": "VariableDeclaration", + "scope": 2930, + "src": "13865:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13865:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2855, + "initialValue": { + "hexValue": "30", + "id": 2854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13882:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13865:18:14" + }, + { + "id": 2927, + "nodeType": "UncheckedBlock", + "src": "13893:533:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2856, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "13921:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13921:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13936:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13921:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2870, + "nodeType": "IfStatement", + "src": "13917:98:14", + "trueBody": { + "id": 2869, + "nodeType": "Block", + "src": "13939:76:14", + "statements": [ + { + "expression": { + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "13957:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 2862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13967:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13957:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2864, + "nodeType": "ExpressionStatement", + "src": "13957:13:14" + }, + { + "expression": { + "id": 2867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2865, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "13988:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13988:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2868, + "nodeType": "ExpressionStatement", + "src": "13988:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2871, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14032:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14041:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14032:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14046:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14032:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2885, + "nodeType": "IfStatement", + "src": "14028:95:14", + "trueBody": { + "id": 2884, + "nodeType": "Block", + "src": "14049:74:14", + "statements": [ + { + "expression": { + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2876, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14067:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 2877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14077:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14067:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2879, + "nodeType": "ExpressionStatement", + "src": "14067:12:14" + }, + { + "expression": { + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2880, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14097:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14097:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2883, + "nodeType": "ExpressionStatement", + "src": "14097:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2886, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14140:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14149:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14140:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14154:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14140:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2900, + "nodeType": "IfStatement", + "src": "14136:95:14", + "trueBody": { + "id": 2899, + "nodeType": "Block", + "src": "14157:74:14", + "statements": [ + { + "expression": { + "id": 2893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2891, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14175:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14185:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14175:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2894, + "nodeType": "ExpressionStatement", + "src": "14175:12:14" + }, + { + "expression": { + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2895, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 2896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14215:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "14205:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2898, + "nodeType": "ExpressionStatement", + "src": "14205:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2901, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14257:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14248:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14262:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14248:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2915, + "nodeType": "IfStatement", + "src": "14244:95:14", + "trueBody": { + "id": 2914, + "nodeType": "Block", + "src": "14265:74:14", + "statements": [ + { + "expression": { + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2906, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14283:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14293:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14283:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2909, + "nodeType": "ExpressionStatement", + "src": "14283:12:14" + }, + { + "expression": { + "id": 2912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2910, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14313:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14323:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14313:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2913, + "nodeType": "ExpressionStatement", + "src": "14313:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2916, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "14356:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14365:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14356:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14369:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14356:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2926, + "nodeType": "IfStatement", + "src": "14352:64:14", + "trueBody": { + "id": 2925, + "nodeType": "Block", + "src": "14372:44:14", + "statements": [ + { + "expression": { + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2921, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14390:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14400:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14390:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2924, + "nodeType": "ExpressionStatement", + "src": "14390:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 2928, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "14442:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2851, + "id": 2929, + "nodeType": "Return", + "src": "14435:13:14" + } + ] + }, + "documentation": { + "id": 2845, + "nodeType": "StructuredDocumentation", + "src": "13541:246:14", + "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 2931, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "13801:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2847, + "mutability": "mutable", + "name": "value", + "nameLocation": "13816:5:14", + "nodeType": "VariableDeclaration", + "scope": 2931, + "src": "13808:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13808:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13807:15:14" + }, + "returnParameters": { + "id": 2851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2850, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2931, + "src": "13846:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13846:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13845:9:14" + }, + "scope": 2989, + "src": "13792:663:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2968, + "nodeType": "Block", + "src": "14692:177:14", + "statements": [ + { + "id": 2967, + "nodeType": "UncheckedBlock", + "src": "14702:161:14", + "statements": [ + { + "assignments": [ + 2943 + ], + "declarations": [ + { + "constant": false, + "id": 2943, + "mutability": "mutable", + "name": "result", + "nameLocation": "14734:6:14", + "nodeType": "VariableDeclaration", + "scope": 2967, + "src": "14726:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14726:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2947, + "initialValue": { + "arguments": [ + { + "id": 2945, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "14750:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2944, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2931, + 2969 + ], + "referencedDeclaration": 2931, + "src": "14743:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14743:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14726:30:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2948, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2943, + "src": "14777:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2950, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2937, + "src": "14804:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2949, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2988, + "src": "14787:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$1946_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 2952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14817:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2953, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2943, + "src": "14823:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 2954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14833:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "14823:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2956, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14822:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2958, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "14838:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14787:56:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 2962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14850:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 2963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14787:64:14", + "trueExpression": { + "hexValue": "31", + "id": 2961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14846:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 2964, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14786:66:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14777:75:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2941, + "id": 2966, + "nodeType": "Return", + "src": "14770:82:14" + } + ] + } + ] + }, + "documentation": { + "id": 2932, + "nodeType": "StructuredDocumentation", + "src": "14461:144:14", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 2969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "14619:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2934, + "mutability": "mutable", + "name": "value", + "nameLocation": "14634:5:14", + "nodeType": "VariableDeclaration", + "scope": 2969, + "src": "14626:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14626:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2937, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "14650:8:14", + "nodeType": "VariableDeclaration", + "scope": 2969, + "src": "14641:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2936, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2935, + "name": "Rounding", + "nameLocations": [ + "14641:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "14641:8:14" + }, + "referencedDeclaration": 1946, + "src": "14641:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "14625:34:14" + }, + "returnParameters": { + "id": 2941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2940, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2969, + "src": "14683:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2939, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14683:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14682:9:14" + }, + "scope": 2989, + "src": "14610:259:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2987, + "nodeType": "Block", + "src": "15067:48:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2980, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "15090:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + ], + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15084:5:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2978, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15084:5:14", + "typeDescriptions": {} + } + }, + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15084:15:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15102:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15084:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15084:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2977, + "id": 2986, + "nodeType": "Return", + "src": "15077:31:14" + } + ] + }, + "documentation": { + "id": 2970, + "nodeType": "StructuredDocumentation", + "src": "14875:113:14", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 2988, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "15002:16:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "15028:8:14", + "nodeType": "VariableDeclaration", + "scope": 2988, + "src": "15019:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2972, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2971, + "name": "Rounding", + "nameLocations": [ + "15019:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1946, + "src": "15019:8:14" + }, + "referencedDeclaration": 1946, + "src": "15019:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$1946", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "15018:19:14" + }, + "returnParameters": { + "id": 2977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2976, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2988, + "src": "15061:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2975, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15061:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15060:6:14" + }, + "scope": 2989, + "src": "14993:122:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2990, + "src": "203:14914:14", + "usedErrors": [ + 1941 + ], + "usedEvents": [] + } + ], + "src": "103:15015:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SignedMath": [ + 3094 + ] + }, + "id": 3095, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2991, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2992, + "nodeType": "StructuredDocumentation", + "src": "135:80:15", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3094, + "linearizedBaseContracts": [ + 3094 + ], + "name": "SignedMath", + "nameLocation": "224:10:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3009, + "nodeType": "Block", + "src": "376:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2995, + "src": "393:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "397:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "393:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3006, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2997, + "src": "405:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "393:13:15", + "trueExpression": { + "id": 3005, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2995, + "src": "401:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3001, + "id": 3008, + "nodeType": "Return", + "src": "386:20:15" + } + ] + }, + "documentation": { + "id": 2993, + "nodeType": "StructuredDocumentation", + "src": "241:66:15", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 3010, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "321:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2995, + "mutability": "mutable", + "name": "a", + "nameLocation": "332:1:15", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "325:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2994, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "325:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2997, + "mutability": "mutable", + "name": "b", + "nameLocation": "342:1:15", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "335:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2996, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "335:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "324:20:15" + }, + "returnParameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3010, + "src": "368:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2999, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "368:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "367:8:15" + }, + "scope": 3094, + "src": "312:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3027, + "nodeType": "Block", + "src": "555:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3020, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3013, + "src": "572:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3021, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "576:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "572:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3024, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "584:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "572:13:15", + "trueExpression": { + "id": 3023, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3013, + "src": "580:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3019, + "id": 3026, + "nodeType": "Return", + "src": "565:20:15" + } + ] + }, + "documentation": { + "id": 3011, + "nodeType": "StructuredDocumentation", + "src": "419:67:15", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 3028, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "500:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3013, + "mutability": "mutable", + "name": "a", + "nameLocation": "511:1:15", + "nodeType": "VariableDeclaration", + "scope": 3028, + "src": "504:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3012, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "504:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "b", + "nameLocation": "521:1:15", + "nodeType": "VariableDeclaration", + "scope": 3028, + "src": "514:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3014, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "514:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "503:20:15" + }, + "returnParameters": { + "id": 3019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3018, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3028, + "src": "547:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3017, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "547:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "546:8:15" + }, + "scope": 3094, + "src": "491:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3071, + "nodeType": "Block", + "src": "797:162:15", + "statements": [ + { + "assignments": [ + 3039 + ], + "declarations": [ + { + "constant": false, + "id": 3039, + "mutability": "mutable", + "name": "x", + "nameLocation": "866:1:15", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "859:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3038, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "859:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 3052, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3040, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "871:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 3041, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "875:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "871:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3043, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "870:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3044, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "882:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3045, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "886:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "882:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3047, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "881:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "892:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "881:12:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3050, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "880:14:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "870:24:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "859:35:15" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3053, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "911:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3058, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3039, + "src": "931:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "923:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:15", + "typeDescriptions": {} + } + }, + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "923:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 3060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "937:3:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "923:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "916:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 3054, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "916:6:15", + "typeDescriptions": {} + } + }, + "id": 3062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:25:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3063, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "945:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3064, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "949:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "945:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3066, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "944:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "916:35:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3068, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "915:37:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "911:41:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3037, + "id": 3070, + "nodeType": "Return", + "src": "904:48:15" + } + ] + }, + "documentation": { + "id": 3029, + "nodeType": "StructuredDocumentation", + "src": "598:126:15", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 3072, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "738:7:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3031, + "mutability": "mutable", + "name": "a", + "nameLocation": "753:1:15", + "nodeType": "VariableDeclaration", + "scope": 3072, + "src": "746:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3030, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "746:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3033, + "mutability": "mutable", + "name": "b", + "nameLocation": "763:1:15", + "nodeType": "VariableDeclaration", + "scope": 3072, + "src": "756:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3032, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "756:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "745:20:15" + }, + "returnParameters": { + "id": 3037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3036, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3072, + "src": "789:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3035, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "789:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "788:8:15" + }, + "scope": 3094, + "src": "729:230:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3092, + "nodeType": "Block", + "src": "1103:158:15", + "statements": [ + { + "id": 3091, + "nodeType": "UncheckedBlock", + "src": "1113:142:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3082, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3075, + "src": "1228:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1228:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1241:2:15", + "subExpression": { + "id": 3086, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3075, + "src": "1242:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1228:15:15", + "trueExpression": { + "id": 3085, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3075, + "src": "1237:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1220:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3080, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1220:7:15", + "typeDescriptions": {} + } + }, + "id": 3089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1220:24:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3079, + "id": 3090, + "nodeType": "Return", + "src": "1213:31:15" + } + ] + } + ] + }, + "documentation": { + "id": 3073, + "nodeType": "StructuredDocumentation", + "src": "965:78:15", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 3093, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1057:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3076, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3075, + "mutability": "mutable", + "name": "n", + "nameLocation": "1068:1:15", + "nodeType": "VariableDeclaration", + "scope": 3093, + "src": "1061:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3074, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:10:15" + }, + "returnParameters": { + "id": 3079, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3078, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3093, + "src": "1094:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3077, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1094:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:9:15" + }, + "scope": 3094, + "src": "1048:213:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3095, + "src": "216:1047:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:1155:15" + }, + "id": 15 + }, + "contracts/Base64.sol": { + "ast": { + "absolutePath": "contracts/Base64.sol", + "exportedSymbols": { + "Base64": [ + 3189 + ] + }, + "id": 3190, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3096, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:16" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Base64", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3097, + "nodeType": "StructuredDocumentation", + "src": "131:77:16", + "text": " @dev Provides a set of functions to operate with Base64 strings." + }, + "fullyImplemented": true, + "id": 3189, + "linearizedBaseContracts": [ + 3189 + ], + "name": "Base64", + "nameLocation": "218:6:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 3098, + "nodeType": "StructuredDocumentation", + "src": "232:134:16", + "text": " @dev Base64 Encoding/Decoding Table\n See sections 4 and 5 of https://datatracker.ietf.org/doc/html/rfc4648" + }, + "id": 3101, + "mutability": "constant", + "name": "_TABLE", + "nameLocation": "397:6:16", + "nodeType": "VariableDeclaration", + "scope": 3189, + "src": "372:100:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3099, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "372:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f", + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "406:66:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_84d8a590de33e00cbdc16e1f28c3506f5ec15c599fab9a6a4bcd575cc2f110ce", + "typeString": "literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"" + }, + "value": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 3104, + "mutability": "constant", + "name": "_TABLE_URL", + "nameLocation": "504:10:16", + "nodeType": "VariableDeclaration", + "scope": 3189, + "src": "479:104:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3102, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "479:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f", + "id": 3103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "517:66:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5f7e6d3cba140c1411e96b7033571a229a3135b5c436a9698b398a19a1c64b50", + "typeString": "literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"" + }, + "value": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" + }, + "visibility": "internal" + }, + { + "body": { + "id": 3118, + "nodeType": "Block", + "src": "755:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3113, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "781:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 3114, + "name": "_TABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3101, + "src": "787:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "74727565", + "id": 3115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "795:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3112, + "name": "_encode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3188, + "src": "773:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory,string memory,bool) pure returns (string memory)" + } + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "773:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3111, + "id": 3117, + "nodeType": "Return", + "src": "766:34:16" + } + ] + }, + "documentation": { + "id": 3105, + "nodeType": "StructuredDocumentation", + "src": "592:84:16", + "text": " @dev Converts a `bytes` to its Bytes64 `string` representation." + }, + "id": 3119, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nameLocation": "691:6:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3107, + "mutability": "mutable", + "name": "data", + "nameLocation": "711:4:16", + "nodeType": "VariableDeclaration", + "scope": 3119, + "src": "698:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3106, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "698:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "697:19:16" + }, + "returnParameters": { + "id": 3111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3110, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3119, + "src": "740:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3109, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "740:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "739:15:16" + }, + "scope": 3189, + "src": "682:126:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3133, + "nodeType": "Block", + "src": "1088:58:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3128, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3122, + "src": "1114:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 3129, + "name": "_TABLE_URL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3104, + "src": "1120:10:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "66616c7365", + "id": 3130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1132:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3127, + "name": "_encode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3188, + "src": "1106:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory,string memory,bool) pure returns (string memory)" + } + }, + "id": 3131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1106:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3126, + "id": 3132, + "nodeType": "Return", + "src": "1099:39:16" + } + ] + }, + "documentation": { + "id": 3120, + "nodeType": "StructuredDocumentation", + "src": "816:190:16", + "text": " @dev Converts a `bytes` to its Bytes64Url `string` representation.\n Output is not padded with `=` as specified in https://www.rfc-editor.org/rfc/rfc4648[rfc4648]." + }, + "id": 3134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encodeURL", + "nameLocation": "1021:9:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3122, + "mutability": "mutable", + "name": "data", + "nameLocation": "1044:4:16", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "1031:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3121, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1031:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1030:19:16" + }, + "returnParameters": { + "id": 3126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3125, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "1073:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3124, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1073:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1072:15:16" + }, + "scope": 3189, + "src": "1012:134:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3187, + "nodeType": "Block", + "src": "1332:3997:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3146, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "1554:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1559:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1554:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1569:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1554:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "documentation": " Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol", + "id": 3152, + "nodeType": "IfStatement", + "src": "1550:31:16", + "trueBody": { + "expression": { + "hexValue": "", + "id": 3150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1579:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 3145, + "id": 3151, + "nodeType": "Return", + "src": "1572:9:16" + } + }, + { + "assignments": [ + 3154 + ], + "declarations": [ + { + "constant": false, + "id": 3154, + "mutability": "mutable", + "name": "resultLength", + "nameLocation": "2542:12:16", + "nodeType": "VariableDeclaration", + "scope": 3187, + "src": "2534:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2534:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3176, + "initialValue": { + "condition": { + "id": 3155, + "name": "withPadding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3141, + "src": "2557:11:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34", + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2602:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "expression": { + "id": 3167, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "2606:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2611:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2606:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2602:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 3170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2620:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2602:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3172, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2601:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "33", + "id": 3173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2625:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "2601:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2557:69:16", + "trueExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2571:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3157, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "2577:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2582:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2577:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 3159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2591:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2577:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3161, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2576:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "33", + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2596:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "2576:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3164, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2575:23:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2571:27:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2534:92:16" + }, + { + "assignments": [ + 3178 + ], + "declarations": [ + { + "constant": false, + "id": 3178, + "mutability": "mutable", + "name": "result", + "nameLocation": "2653:6:16", + "nodeType": "VariableDeclaration", + "scope": 3187, + "src": "2639:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3177, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2639:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3183, + "initialValue": { + "arguments": [ + { + "id": 3181, + "name": "resultLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3154, + "src": "2673:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2662:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 3179, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2666:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2662:24:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2639:47:16" + }, + { + "AST": { + "nativeSrc": "2724:2572:16", + "nodeType": "YulBlock", + "src": "2724:2572:16", + "statements": [ + { + "nativeSrc": "2811:29:16", + "nodeType": "YulVariableDeclaration", + "src": "2811:29:16", + "value": { + "arguments": [ + { + "name": "table", + "nativeSrc": "2831:5:16", + "nodeType": "YulIdentifier", + "src": "2831:5:16" + }, + { + "kind": "number", + "nativeSrc": "2838:1:16", + "nodeType": "YulLiteral", + "src": "2838:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2827:3:16", + "nodeType": "YulIdentifier", + "src": "2827:3:16" + }, + "nativeSrc": "2827:13:16", + "nodeType": "YulFunctionCall", + "src": "2827:13:16" + }, + "variables": [ + { + "name": "tablePtr", + "nativeSrc": "2815:8:16", + "nodeType": "YulTypedName", + "src": "2815:8:16", + "type": "" + } + ] + }, + { + "nativeSrc": "2913:34:16", + "nodeType": "YulVariableDeclaration", + "src": "2913:34:16", + "value": { + "arguments": [ + { + "name": "result", + "nativeSrc": "2934:6:16", + "nodeType": "YulIdentifier", + "src": "2934:6:16" + }, + { + "kind": "number", + "nativeSrc": "2942:4:16", + "nodeType": "YulLiteral", + "src": "2942:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2930:3:16", + "nodeType": "YulIdentifier", + "src": "2930:3:16" + }, + "nativeSrc": "2930:17:16", + "nodeType": "YulFunctionCall", + "src": "2930:17:16" + }, + "variables": [ + { + "name": "resultPtr", + "nativeSrc": "2917:9:16", + "nodeType": "YulTypedName", + "src": "2917:9:16", + "type": "" + } + ] + }, + { + "nativeSrc": "2961:19:16", + "nodeType": "YulVariableDeclaration", + "src": "2961:19:16", + "value": { + "name": "data", + "nativeSrc": "2976:4:16", + "nodeType": "YulIdentifier", + "src": "2976:4:16" + }, + "variables": [ + { + "name": "dataPtr", + "nativeSrc": "2965:7:16", + "nodeType": "YulTypedName", + "src": "2965:7:16", + "type": "" + } + ] + }, + { + "nativeSrc": "2994:36:16", + "nodeType": "YulVariableDeclaration", + "src": "2994:36:16", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3012:4:16", + "nodeType": "YulIdentifier", + "src": "3012:4:16" + }, + { + "arguments": [ + { + "name": "data", + "nativeSrc": "3024:4:16", + "nodeType": "YulIdentifier", + "src": "3024:4:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3018:5:16", + "nodeType": "YulIdentifier", + "src": "3018:5:16" + }, + "nativeSrc": "3018:11:16", + "nodeType": "YulFunctionCall", + "src": "3018:11:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3008:3:16", + "nodeType": "YulIdentifier", + "src": "3008:3:16" + }, + "nativeSrc": "3008:22:16", + "nodeType": "YulFunctionCall", + "src": "3008:22:16" + }, + "variables": [ + { + "name": "endPtr", + "nativeSrc": "2998:6:16", + "nodeType": "YulTypedName", + "src": "2998:6:16", + "type": "" + } + ] + }, + { + "nativeSrc": "3248:33:16", + "nodeType": "YulVariableDeclaration", + "src": "3248:33:16", + "value": { + "arguments": [ + { + "name": "endPtr", + "nativeSrc": "3268:6:16", + "nodeType": "YulIdentifier", + "src": "3268:6:16" + }, + { + "kind": "number", + "nativeSrc": "3276:4:16", + "nodeType": "YulLiteral", + "src": "3276:4:16", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3264:3:16", + "nodeType": "YulIdentifier", + "src": "3264:3:16" + }, + "nativeSrc": "3264:17:16", + "nodeType": "YulFunctionCall", + "src": "3264:17:16" + }, + "variables": [ + { + "name": "afterPtr", + "nativeSrc": "3252:8:16", + "nodeType": "YulTypedName", + "src": "3252:8:16", + "type": "" + } + ] + }, + { + "nativeSrc": "3295:33:16", + "nodeType": "YulVariableDeclaration", + "src": "3295:33:16", + "value": { + "arguments": [ + { + "name": "afterPtr", + "nativeSrc": "3319:8:16", + "nodeType": "YulIdentifier", + "src": "3319:8:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3313:5:16", + "nodeType": "YulIdentifier", + "src": "3313:5:16" + }, + "nativeSrc": "3313:15:16", + "nodeType": "YulFunctionCall", + "src": "3313:15:16" + }, + "variables": [ + { + "name": "afterCache", + "nativeSrc": "3299:10:16", + "nodeType": "YulTypedName", + "src": "3299:10:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "afterPtr", + "nativeSrc": "3349:8:16", + "nodeType": "YulIdentifier", + "src": "3349:8:16" + }, + { + "kind": "number", + "nativeSrc": "3359:4:16", + "nodeType": "YulLiteral", + "src": "3359:4:16", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3342:6:16", + "nodeType": "YulIdentifier", + "src": "3342:6:16" + }, + "nativeSrc": "3342:22:16", + "nodeType": "YulFunctionCall", + "src": "3342:22:16" + }, + "nativeSrc": "3342:22:16", + "nodeType": "YulExpressionStatement", + "src": "3342:22:16" + }, + { + "body": { + "nativeSrc": "3496:1224:16", + "nodeType": "YulBlock", + "src": "3496:1224:16", + "statements": [ + { + "nativeSrc": "3551:26:16", + "nodeType": "YulAssignment", + "src": "3551:26:16", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "3566:7:16", + "nodeType": "YulIdentifier", + "src": "3566:7:16" + }, + { + "kind": "number", + "nativeSrc": "3575:1:16", + "nodeType": "YulLiteral", + "src": "3575:1:16", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3562:3:16", + "nodeType": "YulIdentifier", + "src": "3562:3:16" + }, + "nativeSrc": "3562:15:16", + "nodeType": "YulFunctionCall", + "src": "3562:15:16" + }, + "variableNames": [ + { + "name": "dataPtr", + "nativeSrc": "3551:7:16", + "nodeType": "YulIdentifier", + "src": "3551:7:16" + } + ] + }, + { + "nativeSrc": "3595:27:16", + "nodeType": "YulVariableDeclaration", + "src": "3595:27:16", + "value": { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "3614:7:16", + "nodeType": "YulIdentifier", + "src": "3614:7:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3608:5:16", + "nodeType": "YulIdentifier", + "src": "3608:5:16" + }, + "nativeSrc": "3608:14:16", + "nodeType": "YulFunctionCall", + "src": "3608:14:16" + }, + "variables": [ + { + "name": "input", + "nativeSrc": "3599:5:16", + "nodeType": "YulTypedName", + "src": "3599:5:16", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4159:9:16", + "nodeType": "YulIdentifier", + "src": "4159:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4180:8:16", + "nodeType": "YulIdentifier", + "src": "4180:8:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4198:2:16", + "nodeType": "YulLiteral", + "src": "4198:2:16", + "type": "", + "value": "18" + }, + { + "name": "input", + "nativeSrc": "4202:5:16", + "nodeType": "YulIdentifier", + "src": "4202:5:16" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "4194:3:16", + "nodeType": "YulIdentifier", + "src": "4194:3:16" + }, + "nativeSrc": "4194:14:16", + "nodeType": "YulFunctionCall", + "src": "4194:14:16" + }, + { + "kind": "number", + "nativeSrc": "4210:4:16", + "nodeType": "YulLiteral", + "src": "4210:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4190:3:16", + "nodeType": "YulIdentifier", + "src": "4190:3:16" + }, + "nativeSrc": "4190:25:16", + "nodeType": "YulFunctionCall", + "src": "4190:25:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4176:3:16", + "nodeType": "YulIdentifier", + "src": "4176:3:16" + }, + "nativeSrc": "4176:40:16", + "nodeType": "YulFunctionCall", + "src": "4176:40:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4170:5:16", + "nodeType": "YulIdentifier", + "src": "4170:5:16" + }, + "nativeSrc": "4170:47:16", + "nodeType": "YulFunctionCall", + "src": "4170:47:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4151:7:16", + "nodeType": "YulIdentifier", + "src": "4151:7:16" + }, + "nativeSrc": "4151:67:16", + "nodeType": "YulFunctionCall", + "src": "4151:67:16" + }, + "nativeSrc": "4151:67:16", + "nodeType": "YulExpressionStatement", + "src": "4151:67:16" + }, + { + "nativeSrc": "4236:30:16", + "nodeType": "YulAssignment", + "src": "4236:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4253:9:16", + "nodeType": "YulIdentifier", + "src": "4253:9:16" + }, + { + "kind": "number", + "nativeSrc": "4264:1:16", + "nodeType": "YulLiteral", + "src": "4264:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4249:3:16", + "nodeType": "YulIdentifier", + "src": "4249:3:16" + }, + "nativeSrc": "4249:17:16", + "nodeType": "YulFunctionCall", + "src": "4249:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4236:9:16", + "nodeType": "YulIdentifier", + "src": "4236:9:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4305:9:16", + "nodeType": "YulIdentifier", + "src": "4305:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4326:8:16", + "nodeType": "YulIdentifier", + "src": "4326:8:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4344:2:16", + "nodeType": "YulLiteral", + "src": "4344:2:16", + "type": "", + "value": "12" + }, + { + "name": "input", + "nativeSrc": "4348:5:16", + "nodeType": "YulIdentifier", + "src": "4348:5:16" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "4340:3:16", + "nodeType": "YulIdentifier", + "src": "4340:3:16" + }, + "nativeSrc": "4340:14:16", + "nodeType": "YulFunctionCall", + "src": "4340:14:16" + }, + { + "kind": "number", + "nativeSrc": "4356:4:16", + "nodeType": "YulLiteral", + "src": "4356:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4336:3:16", + "nodeType": "YulIdentifier", + "src": "4336:3:16" + }, + "nativeSrc": "4336:25:16", + "nodeType": "YulFunctionCall", + "src": "4336:25:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4322:3:16", + "nodeType": "YulIdentifier", + "src": "4322:3:16" + }, + "nativeSrc": "4322:40:16", + "nodeType": "YulFunctionCall", + "src": "4322:40:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4316:5:16", + "nodeType": "YulIdentifier", + "src": "4316:5:16" + }, + "nativeSrc": "4316:47:16", + "nodeType": "YulFunctionCall", + "src": "4316:47:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4297:7:16", + "nodeType": "YulIdentifier", + "src": "4297:7:16" + }, + "nativeSrc": "4297:67:16", + "nodeType": "YulFunctionCall", + "src": "4297:67:16" + }, + "nativeSrc": "4297:67:16", + "nodeType": "YulExpressionStatement", + "src": "4297:67:16" + }, + { + "nativeSrc": "4382:30:16", + "nodeType": "YulAssignment", + "src": "4382:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4399:9:16", + "nodeType": "YulIdentifier", + "src": "4399:9:16" + }, + { + "kind": "number", + "nativeSrc": "4410:1:16", + "nodeType": "YulLiteral", + "src": "4410:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4395:3:16", + "nodeType": "YulIdentifier", + "src": "4395:3:16" + }, + "nativeSrc": "4395:17:16", + "nodeType": "YulFunctionCall", + "src": "4395:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4382:9:16", + "nodeType": "YulIdentifier", + "src": "4382:9:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4451:9:16", + "nodeType": "YulIdentifier", + "src": "4451:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4472:8:16", + "nodeType": "YulIdentifier", + "src": "4472:8:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4490:1:16", + "nodeType": "YulLiteral", + "src": "4490:1:16", + "type": "", + "value": "6" + }, + { + "name": "input", + "nativeSrc": "4493:5:16", + "nodeType": "YulIdentifier", + "src": "4493:5:16" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "4486:3:16", + "nodeType": "YulIdentifier", + "src": "4486:3:16" + }, + "nativeSrc": "4486:13:16", + "nodeType": "YulFunctionCall", + "src": "4486:13:16" + }, + { + "kind": "number", + "nativeSrc": "4501:4:16", + "nodeType": "YulLiteral", + "src": "4501:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4482:3:16", + "nodeType": "YulIdentifier", + "src": "4482:3:16" + }, + "nativeSrc": "4482:24:16", + "nodeType": "YulFunctionCall", + "src": "4482:24:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4468:3:16", + "nodeType": "YulIdentifier", + "src": "4468:3:16" + }, + "nativeSrc": "4468:39:16", + "nodeType": "YulFunctionCall", + "src": "4468:39:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4462:5:16", + "nodeType": "YulIdentifier", + "src": "4462:5:16" + }, + "nativeSrc": "4462:46:16", + "nodeType": "YulFunctionCall", + "src": "4462:46:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4443:7:16", + "nodeType": "YulIdentifier", + "src": "4443:7:16" + }, + "nativeSrc": "4443:66:16", + "nodeType": "YulFunctionCall", + "src": "4443:66:16" + }, + "nativeSrc": "4443:66:16", + "nodeType": "YulExpressionStatement", + "src": "4443:66:16" + }, + { + "nativeSrc": "4527:30:16", + "nodeType": "YulAssignment", + "src": "4527:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4544:9:16", + "nodeType": "YulIdentifier", + "src": "4544:9:16" + }, + { + "kind": "number", + "nativeSrc": "4555:1:16", + "nodeType": "YulLiteral", + "src": "4555:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4540:3:16", + "nodeType": "YulIdentifier", + "src": "4540:3:16" + }, + "nativeSrc": "4540:17:16", + "nodeType": "YulFunctionCall", + "src": "4540:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4527:9:16", + "nodeType": "YulIdentifier", + "src": "4527:9:16" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4596:9:16", + "nodeType": "YulIdentifier", + "src": "4596:9:16" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tablePtr", + "nativeSrc": "4617:8:16", + "nodeType": "YulIdentifier", + "src": "4617:8:16" + }, + { + "arguments": [ + { + "name": "input", + "nativeSrc": "4631:5:16", + "nodeType": "YulIdentifier", + "src": "4631:5:16" + }, + { + "kind": "number", + "nativeSrc": "4638:4:16", + "nodeType": "YulLiteral", + "src": "4638:4:16", + "type": "", + "value": "0x3F" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4627:3:16", + "nodeType": "YulIdentifier", + "src": "4627:3:16" + }, + "nativeSrc": "4627:16:16", + "nodeType": "YulFunctionCall", + "src": "4627:16:16" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4613:3:16", + "nodeType": "YulIdentifier", + "src": "4613:3:16" + }, + "nativeSrc": "4613:31:16", + "nodeType": "YulFunctionCall", + "src": "4613:31:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4607:5:16", + "nodeType": "YulIdentifier", + "src": "4607:5:16" + }, + "nativeSrc": "4607:38:16", + "nodeType": "YulFunctionCall", + "src": "4607:38:16" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4588:7:16", + "nodeType": "YulIdentifier", + "src": "4588:7:16" + }, + "nativeSrc": "4588:58:16", + "nodeType": "YulFunctionCall", + "src": "4588:58:16" + }, + "nativeSrc": "4588:58:16", + "nodeType": "YulExpressionStatement", + "src": "4588:58:16" + }, + { + "nativeSrc": "4664:30:16", + "nodeType": "YulAssignment", + "src": "4664:30:16", + "value": { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "4681:9:16", + "nodeType": "YulIdentifier", + "src": "4681:9:16" + }, + { + "kind": "number", + "nativeSrc": "4692:1:16", + "nodeType": "YulLiteral", + "src": "4692:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4677:3:16", + "nodeType": "YulIdentifier", + "src": "4677:3:16" + }, + "nativeSrc": "4677:17:16", + "nodeType": "YulFunctionCall", + "src": "4677:17:16" + }, + "variableNames": [ + { + "name": "resultPtr", + "nativeSrc": "4664:9:16", + "nodeType": "YulIdentifier", + "src": "4664:9:16" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "3460:7:16", + "nodeType": "YulIdentifier", + "src": "3460:7:16" + }, + { + "name": "endPtr", + "nativeSrc": "3469:6:16", + "nodeType": "YulIdentifier", + "src": "3469:6:16" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3457:2:16", + "nodeType": "YulIdentifier", + "src": "3457:2:16" + }, + "nativeSrc": "3457:19:16", + "nodeType": "YulFunctionCall", + "src": "3457:19:16" + }, + "nativeSrc": "3434:1286:16", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3477:18:16", + "nodeType": "YulBlock", + "src": "3477:18:16", + "statements": [] + }, + "pre": { + "nativeSrc": "3438:18:16", + "nodeType": "YulBlock", + "src": "3438:18:16", + "statements": [] + }, + "src": "3434:1286:16" + }, + { + "expression": { + "arguments": [ + { + "name": "afterPtr", + "nativeSrc": "4791:8:16", + "nodeType": "YulIdentifier", + "src": "4791:8:16" + }, + { + "name": "afterCache", + "nativeSrc": "4801:10:16", + "nodeType": "YulIdentifier", + "src": "4801:10:16" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4784:6:16", + "nodeType": "YulIdentifier", + "src": "4784:6:16" + }, + "nativeSrc": "4784:28:16", + "nodeType": "YulFunctionCall", + "src": "4784:28:16" + }, + "nativeSrc": "4784:28:16", + "nodeType": "YulExpressionStatement", + "src": "4784:28:16" + }, + { + "body": { + "nativeSrc": "4843:442:16", + "nodeType": "YulBlock", + "src": "4843:442:16", + "statements": [ + { + "cases": [ + { + "body": { + "nativeSrc": "5043:128:16", + "nodeType": "YulBlock", + "src": "5043:128:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "5078:9:16", + "nodeType": "YulIdentifier", + "src": "5078:9:16" + }, + { + "kind": "number", + "nativeSrc": "5089:1:16", + "nodeType": "YulLiteral", + "src": "5089:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5074:3:16", + "nodeType": "YulIdentifier", + "src": "5074:3:16" + }, + "nativeSrc": "5074:17:16", + "nodeType": "YulFunctionCall", + "src": "5074:17:16" + }, + { + "kind": "number", + "nativeSrc": "5093:4:16", + "nodeType": "YulLiteral", + "src": "5093:4:16", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "5066:7:16", + "nodeType": "YulIdentifier", + "src": "5066:7:16" + }, + "nativeSrc": "5066:32:16", + "nodeType": "YulFunctionCall", + "src": "5066:32:16" + }, + "nativeSrc": "5066:32:16", + "nodeType": "YulExpressionStatement", + "src": "5066:32:16" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "5132:9:16", + "nodeType": "YulIdentifier", + "src": "5132:9:16" + }, + { + "kind": "number", + "nativeSrc": "5143:1:16", + "nodeType": "YulLiteral", + "src": "5143:1:16", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5128:3:16", + "nodeType": "YulIdentifier", + "src": "5128:3:16" + }, + "nativeSrc": "5128:17:16", + "nodeType": "YulFunctionCall", + "src": "5128:17:16" + }, + { + "kind": "number", + "nativeSrc": "5147:4:16", + "nodeType": "YulLiteral", + "src": "5147:4:16", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "5120:7:16", + "nodeType": "YulIdentifier", + "src": "5120:7:16" + }, + "nativeSrc": "5120:32:16", + "nodeType": "YulFunctionCall", + "src": "5120:32:16" + }, + "nativeSrc": "5120:32:16", + "nodeType": "YulExpressionStatement", + "src": "5120:32:16" + } + ] + }, + "nativeSrc": "5036:135:16", + "nodeType": "YulCase", + "src": "5036:135:16", + "value": { + "kind": "number", + "nativeSrc": "5041:1:16", + "nodeType": "YulLiteral", + "src": "5041:1:16", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "5196:74:16", + "nodeType": "YulBlock", + "src": "5196:74:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "resultPtr", + "nativeSrc": "5231:9:16", + "nodeType": "YulIdentifier", + "src": "5231:9:16" + }, + { + "kind": "number", + "nativeSrc": "5242:1:16", + "nodeType": "YulLiteral", + "src": "5242:1:16", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5227:3:16", + "nodeType": "YulIdentifier", + "src": "5227:3:16" + }, + "nativeSrc": "5227:17:16", + "nodeType": "YulFunctionCall", + "src": "5227:17:16" + }, + { + "kind": "number", + "nativeSrc": "5246:4:16", + "nodeType": "YulLiteral", + "src": "5246:4:16", + "type": "", + "value": "0x3d" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "5219:7:16", + "nodeType": "YulIdentifier", + "src": "5219:7:16" + }, + "nativeSrc": "5219:32:16", + "nodeType": "YulFunctionCall", + "src": "5219:32:16" + }, + "nativeSrc": "5219:32:16", + "nodeType": "YulExpressionStatement", + "src": "5219:32:16" + } + ] + }, + "nativeSrc": "5189:81:16", + "nodeType": "YulCase", + "src": "5189:81:16", + "value": { + "kind": "number", + "nativeSrc": "5194:1:16", + "nodeType": "YulLiteral", + "src": "5194:1:16", + "type": "", + "value": "2" + } + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nativeSrc": "5009:4:16", + "nodeType": "YulIdentifier", + "src": "5009:4:16" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5003:5:16", + "nodeType": "YulIdentifier", + "src": "5003:5:16" + }, + "nativeSrc": "5003:11:16", + "nodeType": "YulFunctionCall", + "src": "5003:11:16" + }, + { + "kind": "number", + "nativeSrc": "5016:1:16", + "nodeType": "YulLiteral", + "src": "5016:1:16", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "4999:3:16", + "nodeType": "YulIdentifier", + "src": "4999:3:16" + }, + "nativeSrc": "4999:19:16", + "nodeType": "YulFunctionCall", + "src": "4999:19:16" + }, + "nativeSrc": "4992:278:16", + "nodeType": "YulSwitch", + "src": "4992:278:16" + } + ] + }, + "condition": { + "name": "withPadding", + "nativeSrc": "4831:11:16", + "nodeType": "YulIdentifier", + "src": "4831:11:16" + }, + "nativeSrc": "4828:457:16", + "nodeType": "YulIf", + "src": "4828:457:16" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "2976:4:16", + "valueSize": 1 + }, + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "3012:4:16", + "valueSize": 1 + }, + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "3024:4:16", + "valueSize": 1 + }, + { + "declaration": 3137, + "isOffset": false, + "isSlot": false, + "src": "5009:4:16", + "valueSize": 1 + }, + { + "declaration": 3178, + "isOffset": false, + "isSlot": false, + "src": "2934:6:16", + "valueSize": 1 + }, + { + "declaration": 3139, + "isOffset": false, + "isSlot": false, + "src": "2831:5:16", + "valueSize": 1 + }, + { + "declaration": 3141, + "isOffset": false, + "isSlot": false, + "src": "4831:11:16", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 3184, + "nodeType": "InlineAssembly", + "src": "2699:2597:16" + }, + { + "expression": { + "id": 3185, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3178, + "src": "5315:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3145, + "id": 3186, + "nodeType": "Return", + "src": "5308:13:16" + } + ] + }, + "documentation": { + "id": 3135, + "nodeType": "StructuredDocumentation", + "src": "1154:60:16", + "text": " @dev Internal table-agnostic conversion" + }, + "id": 3188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_encode", + "nameLocation": "1229:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3137, + "mutability": "mutable", + "name": "data", + "nameLocation": "1250:4:16", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1237:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3136, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1237:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3139, + "mutability": "mutable", + "name": "table", + "nameLocation": "1270:5:16", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1256:19:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3138, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1256:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3141, + "mutability": "mutable", + "name": "withPadding", + "nameLocation": "1282:11:16", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1277:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3140, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1277:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1236:58:16" + }, + "returnParameters": { + "id": 3145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3144, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3188, + "src": "1317:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3143, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1317:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1316:15:16" + }, + "scope": 3189, + "src": "1220:4109:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3190, + "src": "210:5122:16", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "103:5229:16" + }, + "id": 16 + }, + "contracts/CaveParty.sol": { + "ast": { + "absolutePath": "contracts/CaveParty.sol", + "exportedSymbols": { + "CaveParty": [ + 3515 + ], + "Context": [ + 1644 + ], + "ERC165": [ + 1923 + ], + "ERC721": [ + 1325 + ], + "ERC721URIStorage": [ + 1586 + ], + "IERC165": [ + 1935 + ], + "IERC4906": [ + 175 + ], + "IERC721": [ + 1442 + ], + "IERC721Errors": [ + 269 + ], + "IERC721Metadata": [ + 1614 + ], + "IERC721Receiver": [ + 1460 + ], + "Math": [ + 2989 + ], + "Ownable": [ + 147 + ], + "SignedMath": [ + 3094 + ], + "Strings": [ + 1899 + ] + }, + "id": 3516, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3191, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "33:24:17" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 3192, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3516, + "sourceUnit": 1900, + "src": "61:51:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "id": 3193, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3516, + "sourceUnit": 1587, + "src": "114:78:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "id": 3194, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3516, + "sourceUnit": 1326, + "src": "194:57:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3195, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3516, + "sourceUnit": 148, + "src": "253:52:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3196, + "name": "ERC721", + "nameLocations": [ + "331:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "331:6:17" + }, + "id": 3197, + "nodeType": "InheritanceSpecifier", + "src": "331:6:17" + }, + { + "baseName": { + "id": 3198, + "name": "ERC721URIStorage", + "nameLocations": [ + "339:16:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1586, + "src": "339:16:17" + }, + "id": 3199, + "nodeType": "InheritanceSpecifier", + "src": "339:16:17" + }, + { + "arguments": [ + { + "expression": { + "id": 3201, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "365:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "369:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "365:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "baseName": { + "id": 3200, + "name": "Ownable", + "nameLocations": [ + "357:7:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "357:7:17" + }, + "id": 3203, + "nodeType": "InheritanceSpecifier", + "src": "357:19:17" + } + ], + "canonicalName": "CaveParty", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 3515, + "linearizedBaseContracts": [ + 3515, + 147, + 1586, + 1325, + 269, + 1614, + 175, + 1442, + 1923, + 1935, + 1644 + ], + "name": "CaveParty", + "nameLocation": "318:9:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a", + "id": 3207, + "name": "Minted", + "nameLocation": "405:6:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 3206, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3205, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "420:7:17", + "nodeType": "VariableDeclaration", + "scope": 3207, + "src": "412:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "412:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "411:17:17" + }, + "src": "399:30:17" + }, + { + "constant": false, + "functionSelector": "1f21bfbf", + "id": 3210, + "mutability": "mutable", + "name": "totalMints", + "nameLocation": "477:10:17", + "nodeType": "VariableDeclaration", + "scope": 3515, + "src": "462:29:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3208, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "490:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "6817c76c", + "id": 3213, + "mutability": "mutable", + "name": "mintPrice", + "nameLocation": "513:9:17", + "nodeType": "VariableDeclaration", + "scope": 3515, + "src": "498:39:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "498:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303031", + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "525:12:17", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000_by_1", + "typeString": "int_const 100000000000000" + }, + "value": "0.0001" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d5abeb01", + "id": 3216, + "mutability": "mutable", + "name": "maxSupply", + "nameLocation": "559:9:17", + "nodeType": "VariableDeclaration", + "scope": 3515, + "src": "544:46:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3214, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "544:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35303030303030303030303030303030653138", + "id": 3215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "571:19:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000000000000000000000000000000000_by_1", + "typeString": "int_const 5000...(26 digits omitted)...0000" + }, + "value": "5000000000000000e18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "453c2310", + "id": 3219, + "mutability": "mutable", + "name": "maxPerWallet", + "nameLocation": "612:12:17", + "nodeType": "VariableDeclaration", + "scope": 3515, + "src": "597:31:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "597:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "627:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 3222, + "mutability": "mutable", + "name": "assetMetadata", + "nameLocation": "650:13:17", + "nodeType": "VariableDeclaration", + "scope": 3515, + "src": "635:95:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3220, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "635:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "697066733a2f2f516d65586e7968726b4547664b7a515274757379574e464b636a795a784c63553170755276784c6b4b326b546553", + "id": 3221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "675:55:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a94277e8a9427a5a6c8591c7502d3d2feb392009bfef7f6c1f968be5b56cf1f7", + "typeString": "literal_string \"ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS\"" + }, + "value": "ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 3226, + "mutability": "mutable", + "name": "walletMints", + "nameLocation": "784:11:17", + "nodeType": "VariableDeclaration", + "scope": 3515, + "src": "756:39:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3225, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 3223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "764:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "756:27:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 3224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "775:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "3a5844ff", + "id": 3230, + "mutability": "mutable", + "name": "tokenToEventMapping", + "nameLocation": "874:19:17", + "nodeType": "VariableDeclaration", + "scope": 3515, + "src": "839:54:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 3229, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 3227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "847:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "839:27:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 3228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "858:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3237, + "nodeType": "Block", + "src": "962:2:17", + "statements": [] + }, + "id": 3238, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "43617665506172747979", + "id": 3233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "941:12:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6fa66cba2159f3925ec86da2853e16111c0746e568395aefa65787c0d0776ccd", + "typeString": "literal_string \"CavePartyy\"" + }, + "value": "CavePartyy" + }, + { + "hexValue": "435059", + "id": 3234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "955:5:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0938a75a7b45f6beefa23953a1d68fc7e2bc39dba1dad5c4035fa2082b01d33a", + "typeString": "literal_string \"CPY\"" + }, + "value": "CPY" + } + ], + "id": 3235, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3232, + "name": "ERC721", + "nameLocations": [ + "934:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "934:6:17" + }, + "nodeType": "ModifierInvocation", + "src": "934:27:17" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3231, + "nodeType": "ParameterList", + "parameters": [], + "src": "931:2:17" + }, + "returnParameters": { + "id": 3236, + "nodeType": "ParameterList", + "parameters": [], + "src": "962:0:17" + }, + "scope": 3515, + "src": "920:44:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 521 + ], + "body": { + "id": 3246, + "nodeType": "Block", + "src": "1039:39:17", + "statements": [ + { + "expression": { + "id": 3244, + "name": "assetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "1057:13:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 3243, + "id": 3245, + "nodeType": "Return", + "src": "1050:20:17" + } + ] + }, + "id": 3247, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "981:8:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3240, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1006:8:17" + }, + "parameters": { + "id": 3239, + "nodeType": "ParameterList", + "parameters": [], + "src": "989:2:17" + }, + "returnParameters": { + "id": 3243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3242, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3247, + "src": "1024:13:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3241, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1024:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1023:15:17" + }, + "scope": 3515, + "src": "972:106:17", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3277, + "nodeType": "Block", + "src": "1144:205:17", + "statements": [ + { + "assignments": [ + 3255 + ], + "declarations": [ + { + "constant": false, + "id": 3255, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1163:7:17", + "nodeType": "VariableDeclaration", + "scope": 3277, + "src": "1155:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3254, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1155:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3257, + "initialValue": { + "id": 3256, + "name": "totalMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "1173:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1155:28:17" + }, + { + "expression": { + "id": 3259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1194:12:17", + "subExpression": { + "id": 3258, + "name": "totalMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "1194:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3260, + "nodeType": "ExpressionStatement", + "src": "1194:12:17" + }, + { + "expression": { + "arguments": [ + { + "id": 3262, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "1229:3:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3255, + "src": "1234:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3261, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 947, + "src": "1219:9:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1219:23:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3265, + "nodeType": "ExpressionStatement", + "src": "1219:23:17" + }, + { + "expression": { + "arguments": [ + { + "id": 3267, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3255, + "src": "1266:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3268, + "name": "assetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "1275:13:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3266, + "name": "_setTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1585, + "src": "1253:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" + } + }, + "id": 3269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1253:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3270, + "nodeType": "ExpressionStatement", + "src": "1253:36:17" + }, + { + "expression": { + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3271, + "name": "tokenToEventMapping", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "1302:19:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3273, + "indexExpression": { + "id": 3272, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3255, + "src": "1322:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1302:28:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3274, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3251, + "src": "1333:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1302:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3276, + "nodeType": "ExpressionStatement", + "src": "1302:39:17" + } + ] + }, + "id": 3278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeMint", + "nameLocation": "1095:8:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3252, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3249, + "mutability": "mutable", + "name": "_to", + "nameLocation": "1112:3:17", + "nodeType": "VariableDeclaration", + "scope": 3278, + "src": "1104:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3251, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "1125:8:17", + "nodeType": "VariableDeclaration", + "scope": 3278, + "src": "1117:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3250, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1117:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1103:31:17" + }, + "returnParameters": { + "id": 3253, + "nodeType": "ParameterList", + "parameters": [], + "src": "1144:0:17" + }, + "scope": 3515, + "src": "1086:263:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3314, + "nodeType": "Block", + "src": "1411:278:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3284, + "name": "mintPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3213, + "src": "1430:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3285, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1443:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1447:5:17", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "1443:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1430:22:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "77726f6e6720616d6f756e742073656e74", + "id": 3288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1454:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac", + "typeString": "literal_string \"wrong amount sent\"" + }, + "value": "wrong amount sent" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac", + "typeString": "literal_string \"wrong amount sent\"" + } + ], + "id": 3283, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1422:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1422:52:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3290, + "nodeType": "ExpressionStatement", + "src": "1422:52:17" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 3292, + "name": "walletMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3226, + "src": "1507:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3295, + "indexExpression": { + "expression": { + "id": 3293, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1519:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1523:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1519:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1507:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 3296, + "name": "maxPerWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "1534:12:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1507:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6d696e7473207065722077616c6c6574206578636565646564", + "id": 3298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1561:27:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "typeString": "literal_string \"mints per wallet exceeded\"" + }, + "value": "mints per wallet exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "typeString": "literal_string \"mints per wallet exceeded\"" + } + ], + "id": 3291, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1485:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1485:114:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3300, + "nodeType": "ExpressionStatement", + "src": "1485:114:17" + }, + { + "expression": { + "id": 3306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3301, + "name": "walletMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3226, + "src": "1612:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3304, + "indexExpression": { + "expression": { + "id": 3302, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1624:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1628:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1624:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1612:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1639:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1612:28:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3307, + "nodeType": "ExpressionStatement", + "src": "1612:28:17" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3309, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1660:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1664:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1660:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3311, + "name": "_eventId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3280, + "src": "1672:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3308, + "name": "safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "1651:8:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1651:30:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3313, + "nodeType": "ExpressionStatement", + "src": "1651:30:17" + } + ] + }, + "functionSelector": "c634d032", + "id": 3315, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mintToken", + "nameLocation": "1366:9:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3280, + "mutability": "mutable", + "name": "_eventId", + "nameLocation": "1384:8:17", + "nodeType": "VariableDeclaration", + "scope": 3315, + "src": "1376:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1376:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1375:18:17" + }, + "returnParameters": { + "id": 3282, + "nodeType": "ParameterList", + "parameters": [], + "src": "1411:0:17" + }, + "scope": 3515, + "src": "1357:332:17", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 512, + 1566 + ], + "body": { + "id": 3330, + "nodeType": "Block", + "src": "1912:49:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3327, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3317, + "src": "1945:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3325, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1930:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_CaveParty_$3515_$", + "typeString": "type(contract super CaveParty)" + } + }, + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1936:8:17", + "memberName": "tokenURI", + "nodeType": "MemberAccess", + "referencedDeclaration": 1566, + "src": "1930:14:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) view returns (string memory)" + } + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1930:23:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3324, + "id": 3329, + "nodeType": "Return", + "src": "1923:30:17" + } + ] + }, + "functionSelector": "c87b56dd", + "id": 3331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "1774:8:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3321, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3319, + "name": "ERC721", + "nameLocations": [ + "1848:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "1848:6:17" + }, + { + "id": 3320, + "name": "ERC721URIStorage", + "nameLocations": [ + "1856:16:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1586, + "src": "1856:16:17" + } + ], + "src": "1839:34:17" + }, + "parameters": { + "id": 3318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3317, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1791:7:17", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "1783:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1783:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1782:17:17" + }, + "returnParameters": { + "id": 3324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3323, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "1892:13:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3322, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1892:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1891:15:17" + }, + "scope": 3515, + "src": "1765:196:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 417, + 1509 + ], + "body": { + "id": 3346, + "nodeType": "Block", + "src": "2119:62:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3343, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3333, + "src": "2161:11:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3341, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2137:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_CaveParty_$3515_$", + "typeString": "type(contract super CaveParty)" + } + }, + "id": 3342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2143:17:17", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1509, + "src": "2137:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2137:36:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3340, + "id": 3345, + "nodeType": "Return", + "src": "2130:43:17" + } + ] + }, + "functionSelector": "01ffc9a7", + "id": 3347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1978:17:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3337, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3335, + "name": "ERC721", + "nameLocations": [ + "2064:6:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "2064:6:17" + }, + { + "id": 3336, + "name": "ERC721URIStorage", + "nameLocations": [ + "2072:16:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1586, + "src": "2072:16:17" + } + ], + "src": "2055:34:17" + }, + "parameters": { + "id": 3334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2003:11:17", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1996:18:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3332, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1996:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1995:20:17" + }, + "returnParameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3339, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "2108:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3338, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2108:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2107:6:17" + }, + "scope": 3515, + "src": "1969:212:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3358, + "nodeType": "Block", + "src": "2265:55:17", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 3354, + "name": "tokenToEventMapping", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "2283:19:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3356, + "indexExpression": { + "id": 3355, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3349, + "src": "2303:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2283:29:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3353, + "id": 3357, + "nodeType": "Return", + "src": "2276:36:17" + } + ] + }, + "functionSelector": "cbdede77", + "id": 3359, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getEventIdForToken", + "nameLocation": "2198:18:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3349, + "mutability": "mutable", + "name": "_tokenId", + "nameLocation": "2225:8:17", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "2217:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2217:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2216:18:17" + }, + "returnParameters": { + "id": 3353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3352, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3359, + "src": "2256:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3351, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2256:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2255:9:17" + }, + "scope": 3515, + "src": "2189:131:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3369, + "nodeType": "Block", + "src": "2388:49:17", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 3364, + "name": "walletMints", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3226, + "src": "2406:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3367, + "indexExpression": { + "expression": { + "id": 3365, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2418:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2422:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2418:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2406:23:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3363, + "id": 3368, + "nodeType": "Return", + "src": "2399:30:17" + } + ] + }, + "functionSelector": "50516808", + "id": 3370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMyWalletMints", + "nameLocation": "2337:16:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3360, + "nodeType": "ParameterList", + "parameters": [], + "src": "2353:2:17" + }, + "returnParameters": { + "id": 3363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3362, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3370, + "src": "2379:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2379:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2378:9:17" + }, + "scope": 3515, + "src": "2328:109:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3401, + "nodeType": "Block", + "src": "2479:193:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3374, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2498:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2502:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2498:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3376, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2512:5:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2512:7:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2498:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75277265206e6f7420746865206f776e6572", + "id": 3379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2521:22:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5", + "typeString": "literal_string \"You're not the owner\"" + }, + "value": "You're not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5", + "typeString": "literal_string \"You're not the owner\"" + } + ], + "id": 3373, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2490:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2490:54:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3381, + "nodeType": "ExpressionStatement", + "src": "2490:54:17" + }, + { + "assignments": [ + 3383, + null + ], + "declarations": [ + { + "constant": false, + "id": 3383, + "mutability": "mutable", + "name": "sent", + "nameLocation": "2563:4:17", + "nodeType": "VariableDeclaration", + "scope": 3401, + "src": "2558:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3382, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2558:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 3395, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 3393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2616:2:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3384, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2573:5:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:7:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2581:4:17", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2573:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "expression": { + "arguments": [ + { + "id": 3389, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2601:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CaveParty_$3515", + "typeString": "contract CaveParty" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CaveParty_$3515", + "typeString": "contract CaveParty" + } + ], + "id": 3388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2593:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2593:7:17", + "typeDescriptions": {} + } + }, + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2593:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2607:7:17", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2593:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2573:42:17", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:46:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2557:62:17" + }, + { + "expression": { + "arguments": [ + { + "id": 3397, + "name": "sent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3383, + "src": "2638:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "7769746864726177616c206661696c6564", + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2644:19:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "typeString": "literal_string \"withdrawal failed\"" + }, + "value": "withdrawal failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "typeString": "literal_string \"withdrawal failed\"" + } + ], + "id": 3396, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2630:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2630:34:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3400, + "nodeType": "ExpressionStatement", + "src": "2630:34:17" + } + ] + }, + "functionSelector": "24600fc3", + "id": 3402, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nameLocation": "2454:13:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3371, + "nodeType": "ParameterList", + "parameters": [], + "src": "2467:2:17" + }, + "returnParameters": { + "id": 3372, + "nodeType": "ParameterList", + "parameters": [], + "src": "2479:0:17" + }, + "scope": 3515, + "src": "2445:227:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3427, + "nodeType": "Block", + "src": "2746:221:17", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3408, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2765:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2769:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2765:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3410, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2779:5:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2779:7:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2765:21:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75277265206e6f7420746865206f776e6572", + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2788:22:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5", + "typeString": "literal_string \"You're not the owner\"" + }, + "value": "You're not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5", + "typeString": "literal_string \"You're not the owner\"" + } + ], + "id": 3407, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2757:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2757:54:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3415, + "nodeType": "ExpressionStatement", + "src": "2757:54:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3418, + "name": "_newAssetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "2844:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3417, + "name": "checkMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3514, + "src": "2830:13:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bool_$", + "typeString": "function (string memory) pure returns (bool)" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2830:32:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c6964206173736574206d657461646174613a206d75737420696e636c7564652027697066733a2f2f27", + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2864:48:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "typeString": "literal_string \"Invalid asset metadata: must include 'ipfs://'\"" + }, + "value": "Invalid asset metadata: must include 'ipfs://'" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "typeString": "literal_string \"Invalid asset metadata: must include 'ipfs://'\"" + } + ], + "id": 3416, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2822:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2822:91:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3422, + "nodeType": "ExpressionStatement", + "src": "2822:91:17" + }, + { + "expression": { + "id": 3425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3423, + "name": "assetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "2926:13:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3424, + "name": "_newAssetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3404, + "src": "2942:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2926:33:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3426, + "nodeType": "ExpressionStatement", + "src": "2926:33:17" + } + ] + }, + "functionSelector": "918b5be1", + "id": 3428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateMetadata", + "nameLocation": "2689:14:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3404, + "mutability": "mutable", + "name": "_newAssetMetadata", + "nameLocation": "2718:17:17", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "2704:31:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3403, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2704:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2703:33:17" + }, + "returnParameters": { + "id": 3406, + "nodeType": "ParameterList", + "parameters": [], + "src": "2746:0:17" + }, + "scope": 3515, + "src": "2680:287:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3513, + "nodeType": "Block", + "src": "3059:638:17", + "statements": [ + { + "assignments": [ + 3436 + ], + "declarations": [ + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "metadataBytes", + "nameLocation": "3083:13:17", + "nodeType": "VariableDeclaration", + "scope": 3513, + "src": "3070:26:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3435, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3070:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3441, + "initialValue": { + "arguments": [ + { + "id": 3439, + "name": "_newAssetMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "3105:17:17", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3099:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3437, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3099:5:17", + "typeDescriptions": {} + } + }, + "id": 3440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3099:24:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3070:53:17" + }, + { + "assignments": [ + 3443 + ], + "declarations": [ + { + "constant": false, + "id": 3443, + "mutability": "mutable", + "name": "ipfsBytes", + "nameLocation": "3147:9:17", + "nodeType": "VariableDeclaration", + "scope": 3513, + "src": "3134:22:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3442, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3134:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3448, + "initialValue": { + "arguments": [ + { + "hexValue": "697066733a2f2f", + "id": 3446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3165:9:17", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", + "typeString": "literal_string \"ipfs://\"" + }, + "value": "ipfs://" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", + "typeString": "literal_string \"ipfs://\"" + } + ], + "id": 3445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3159:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3444, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3159:5:17", + "typeDescriptions": {} + } + }, + "id": 3447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3159:16:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3134:41:17" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3449, + "name": "metadataBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "3192:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3206:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3192:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3451, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3443, + "src": "3215:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3225:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3215:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3192:39:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3456, + "nodeType": "IfStatement", + "src": "3188:57:17", + "trueBody": { + "expression": { + "hexValue": "66616c7365", + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3240:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3434, + "id": 3455, + "nodeType": "Return", + "src": "3233:12:17" + } + }, + { + "body": { + "id": 3509, + "nodeType": "Block", + "src": "3329:336:17", + "statements": [ + { + "assignments": [ + 3472 + ], + "declarations": [ + { + "constant": false, + "id": 3472, + "mutability": "mutable", + "name": "check", + "nameLocation": "3349:5:17", + "nodeType": "VariableDeclaration", + "scope": 3509, + "src": "3344:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3471, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3344:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 3474, + "initialValue": { + "hexValue": "74727565", + "id": 3473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3357:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3344:17:17" + }, + { + "body": { + "id": 3502, + "nodeType": "Block", + "src": "3423:160:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 3494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 3486, + "name": "metadataBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "3446:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3490, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3487, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3458, + "src": "3460:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 3488, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "3464:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3460:5:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3446:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "baseExpression": { + "id": 3491, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3443, + "src": "3470:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3493, + "indexExpression": { + "id": 3492, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "3480:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3470:12:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "3446:36:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3501, + "nodeType": "IfStatement", + "src": "3442:126:17", + "trueBody": { + "id": 3500, + "nodeType": "Block", + "src": "3484:84:17", + "statements": [ + { + "expression": { + "id": 3497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3495, + "name": "check", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "3507:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3515:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3507:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3498, + "nodeType": "ExpressionStatement", + "src": "3507:13:17" + }, + { + "id": 3499, + "nodeType": "Break", + "src": "3543:5:17" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3479, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "3396:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3480, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3443, + "src": "3400:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3410:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3400:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3396:20:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3503, + "initializationExpression": { + "assignments": [ + 3476 + ], + "declarations": [ + { + "constant": false, + "id": 3476, + "mutability": "mutable", + "name": "j", + "nameLocation": "3389:1:17", + "nodeType": "VariableDeclaration", + "scope": 3503, + "src": "3381:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3381:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3478, + "initialValue": { + "hexValue": "30", + "id": 3477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3393:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3381:13:17" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3418:3:17", + "subExpression": { + "id": 3483, + "name": "j", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3476, + "src": "3418:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3485, + "nodeType": "ExpressionStatement", + "src": "3418:3:17" + }, + "nodeType": "ForStatement", + "src": "3376:207:17" + }, + { + "condition": { + "id": 3504, + "name": "check", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "3601:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3508, + "nodeType": "IfStatement", + "src": "3597:57:17", + "trueBody": { + "id": 3507, + "nodeType": "Block", + "src": "3608:46:17", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3634:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3434, + "id": 3506, + "nodeType": "Return", + "src": "3627:11:17" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3461, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3458, + "src": "3278:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3462, + "name": "metadataBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "3283:13:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3297:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3283:20:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 3464, + "name": "ipfsBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3443, + "src": "3306:9:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3316:6:17", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3306:16:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3283:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3278:44:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3510, + "initializationExpression": { + "assignments": [ + 3458 + ], + "declarations": [ + { + "constant": false, + "id": 3458, + "mutability": "mutable", + "name": "i", + "nameLocation": "3271:1:17", + "nodeType": "VariableDeclaration", + "scope": 3510, + "src": "3263:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3263:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3460, + "initialValue": { + "hexValue": "30", + "id": 3459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3275:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3263:13:17" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 3469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3324:3:17", + "subExpression": { + "id": 3468, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3458, + "src": "3324:1:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3470, + "nodeType": "ExpressionStatement", + "src": "3324:3:17" + }, + "nodeType": "ForStatement", + "src": "3258:407:17" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 3511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3684:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3434, + "id": 3512, + "nodeType": "Return", + "src": "3677:12:17" + } + ] + }, + "id": 3514, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkMetadata", + "nameLocation": "2984:13:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3430, + "mutability": "mutable", + "name": "_newAssetMetadata", + "nameLocation": "3012:17:17", + "nodeType": "VariableDeclaration", + "scope": 3514, + "src": "2998:31:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3429, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2998:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2997:33:17" + }, + "returnParameters": { + "id": 3434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3433, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3514, + "src": "3053:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3432, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3053:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3052:6:17" + }, + "scope": 3515, + "src": "2975:722:17", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3516, + "src": "309:3391:17", + "usedErrors": [ + 13, + 18, + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 24, + 167, + 174, + 1341, + 1350, + 1359, + 3207 + ] + } + ], + "src": "33:3669:17" + }, + "id": 17 + }, + "contracts/FluffyFuryNFT.sol": { + "ast": { + "absolutePath": "contracts/FluffyFuryNFT.sol", + "exportedSymbols": { + "Base64": [ + 3189 + ], + "Context": [ + 1644 + ], + "ERC721": [ + 1325 + ], + "ERC721URIStorage": [ + 1586 + ], + "FluffyFury": [ + 3784 + ], + "IERC165": [ + 1935 + ], + "IERC4906": [ + 175 + ], + "Math": [ + 2989 + ], + "Ownable": [ + 147 + ], + "SignedMath": [ + 3094 + ], + "Strings": [ + 1899 + ] + }, + "id": 3785, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3517, + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ], + "nodeType": "PragmaDirective", + "src": "39:23:18" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 3518, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3785, + "sourceUnit": 1900, + "src": "64:51:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "id": 3519, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3785, + "sourceUnit": 1587, + "src": "116:78:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "@openzeppelin/contracts/access/Ownable.sol", + "id": 3520, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3785, + "sourceUnit": 148, + "src": "195:52:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/Base64.sol", + "file": "./Base64.sol", + "id": 3522, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3785, + "sourceUnit": 3190, + "src": "249:36:18", + "symbolAliases": [ + { + "foreign": { + "id": 3521, + "name": "Base64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3189, + "src": "257:6:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3523, + "name": "ERC721URIStorage", + "nameLocations": [ + "310:16:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1586, + "src": "310:16:18" + }, + "id": 3524, + "nodeType": "InheritanceSpecifier", + "src": "310:16:18" + }, + { + "arguments": [ + { + "expression": { + "id": 3526, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "336:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "340:6:18", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "336:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "baseName": { + "id": 3525, + "name": "Ownable", + "nameLocations": [ + "328:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 147, + "src": "328:7:18" + }, + "id": 3528, + "nodeType": "InheritanceSpecifier", + "src": "328:19:18" + } + ], + "canonicalName": "FluffyFury", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 3784, + "linearizedBaseContracts": [ + 3784, + 147, + 1586, + 1325, + 269, + 1614, + 175, + 1442, + 1923, + 1935, + 1644 + ], + "name": "FluffyFury", + "nameLocation": "296:10:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a", + "id": 3532, + "name": "Minted", + "nameLocation": "360:6:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 3531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3530, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "375:7:18", + "nodeType": "VariableDeclaration", + "scope": 3532, + "src": "367:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "367:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "366:17:18" + }, + "src": "354:30:18" + }, + { + "constant": false, + "id": 3534, + "mutability": "mutable", + "name": "_tokenIdCounter", + "nameLocation": "407:15:18", + "nodeType": "VariableDeclaration", + "scope": 3784, + "src": "391:31:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "391:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "6817c76c", + "id": 3537, + "mutability": "mutable", + "name": "mintPrice", + "nameLocation": "443:9:18", + "nodeType": "VariableDeclaration", + "scope": 3784, + "src": "428:39:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "428:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "302e30303031", + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "455:12:18", + "subdenomination": "ether", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000_by_1", + "typeString": "int_const 100000000000000" + }, + "value": "0.0001" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a31e06da", + "id": 3539, + "mutability": "mutable", + "name": "svgData", + "nameLocation": "522:7:18", + "nodeType": "VariableDeclaration", + "scope": 3784, + "src": "508:21:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3538, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "508:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3574, + "nodeType": "Block", + "src": "636:225:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3551, + "name": "initialSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3541, + "src": "660:10:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "654:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3549, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "654:5:18", + "typeDescriptions": {} + } + }, + "id": 3552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "654:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "672:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "654:24:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "681:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "654:28:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "id": 3556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "684:26:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + }, + "value": "SVG data cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + } + ], + "id": 3548, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "646:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "646:65:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3558, + "nodeType": "ExpressionStatement", + "src": "646:65:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3562, + "name": "initialSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3541, + "src": "735:10:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "729:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3560, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "729:5:18", + "typeDescriptions": {} + } + }, + "id": 3563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "729:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "747:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "729:24:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "35303030", + "id": 3565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "757:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000_by_1", + "typeString": "int_const 5000" + }, + "value": "5000" + }, + "src": "729:32:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "id": 3567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "763:20:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + }, + "value": "SVG data too large" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + } + ], + "id": 3559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "721:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "721:63:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3569, + "nodeType": "ExpressionStatement", + "src": "721:63:18" + }, + { + "expression": { + "id": 3572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3570, + "name": "svgData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "794:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3571, + "name": "initialSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3541, + "src": "804:10:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "794:20:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3573, + "nodeType": "ExpressionStatement", + "src": "794:20:18" + } + ] + }, + "id": 3575, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "466c7566667946757279", + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "615:12:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bacc4dc90e0a013e8150313519419a0d8208f6beefd7db6d4389317a41ed900", + "typeString": "literal_string \"FluffyFury\"" + }, + "value": "FluffyFury" + }, + { + "hexValue": "464659", + "id": 3545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "629:5:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8873e86dbfbacf931667eb830850ee4fd1b439b3f2a2aeb3b52034202d4016ca", + "typeString": "literal_string \"FFY\"" + }, + "value": "FFY" + } + ], + "id": 3546, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3543, + "name": "ERC721", + "nameLocations": [ + "608:6:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1325, + "src": "608:6:18" + }, + "nodeType": "ModifierInvocation", + "src": "608:27:18" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3541, + "mutability": "mutable", + "name": "initialSvg", + "nameLocation": "596:10:18", + "nodeType": "VariableDeclaration", + "scope": 3575, + "src": "582:24:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3540, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "582:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "581:26:18" + }, + "returnParameters": { + "id": 3547, + "nodeType": "ParameterList", + "parameters": [], + "src": "636:0:18" + }, + "scope": 3784, + "src": "570:291:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3586, + "nodeType": "Block", + "src": "948:92:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3578, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "966:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "970:5:18", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "966:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3580, + "name": "mintPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3537, + "src": "979:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "966:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "302e3030303120657468657220726571756972656420746f206d696e74", + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "990:31:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "typeString": "literal_string \"0.0001 ether required to mint\"" + }, + "value": "0.0001 ether required to mint" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "typeString": "literal_string \"0.0001 ether required to mint\"" + } + ], + "id": 3577, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "958:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "958:64:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3584, + "nodeType": "ExpressionStatement", + "src": "958:64:18" + }, + { + "id": 3585, + "nodeType": "PlaceholderStatement", + "src": "1032:1:18" + } + ] + }, + "id": 3587, + "name": "mintPricePaid", + "nameLocation": "932:13:18", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3576, + "nodeType": "ParameterList", + "parameters": [], + "src": "945:2:18" + }, + "src": "923:117:18", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3617, + "nodeType": "Block", + "src": "1166:205:18", + "statements": [ + { + "assignments": [ + 3595 + ], + "declarations": [ + { + "constant": false, + "id": 3595, + "mutability": "mutable", + "name": "baseURL", + "nameLocation": "1190:7:18", + "nodeType": "VariableDeclaration", + "scope": 3617, + "src": "1176:21:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3594, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1176:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3597, + "initialValue": { + "hexValue": "646174613a696d6167652f7376672b786d6c3b6261736536342c", + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1200:28:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f90ae014c41cb48231e1f02c314087ff9c479133697911d25c5fe231e237dd14", + "typeString": "literal_string \"data:image/svg+xml;base64,\"" + }, + "value": "data:image/svg+xml;base64," + }, + "nodeType": "VariableDeclarationStatement", + "src": "1176:52:18" + }, + { + "assignments": [ + 3599 + ], + "declarations": [ + { + "constant": false, + "id": 3599, + "mutability": "mutable", + "name": "svgBase64Encoded", + "nameLocation": "1252:16:18", + "nodeType": "VariableDeclaration", + "scope": 3617, + "src": "1238:30:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3598, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1238:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3607, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 3604, + "name": "svg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3589, + "src": "1291:3:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1285:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3602, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1285:5:18", + "typeDescriptions": {} + } + }, + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1285:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3600, + "name": "Base64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3189, + "src": "1271:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Base64_$3189_$", + "typeString": "type(library Base64)" + } + }, + "id": 3601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1278:6:18", + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 3119, + "src": "1271:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (string memory)" + } + }, + "id": 3606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1271:25:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1238:58:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3612, + "name": "baseURL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3595, + "src": "1337:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 3613, + "name": "svgBase64Encoded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3599, + "src": "1346:16:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 3610, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1320:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1324:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1320:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1320:43:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1313:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3608, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1313:6:18", + "typeDescriptions": {} + } + }, + "id": 3615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1313:51:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3593, + "id": 3616, + "nodeType": "Return", + "src": "1306:58:18" + } + ] + }, + "functionSelector": "30d871c6", + "id": 3618, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "svgToImageURI", + "nameLocation": "1097:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3589, + "mutability": "mutable", + "name": "svg", + "nameLocation": "1125:3:18", + "nodeType": "VariableDeclaration", + "scope": 3618, + "src": "1111:17:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3588, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1111:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1110:19:18" + }, + "returnParameters": { + "id": 3593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3592, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3618, + "src": "1151:13:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3591, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1151:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1150:15:18" + }, + "scope": 3784, + "src": "1088:283:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3645, + "nodeType": "Block", + "src": "1526:578:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c", + "id": 3629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1617:31:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "typeString": "literal_string \"data:application/json;base64,\"" + }, + "value": "data:application/json;base64," + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "7b226e616d65223a2022466c756666792046757279222c20226465736372697074696f6e223a2022596f75722061636365737320696e746f20616e79206576656e742063726561746564207573696e67207468697320746f6b656e2061646472657373222c2022696d616765223a22", + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1794:113:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "typeString": "literal_string \"{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"\"" + }, + "value": "{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"" + }, + { + "id": 3637, + "name": "imageURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3620, + "src": "1941:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "227d", + "id": 3638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1983:4:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "typeString": "literal_string \"\"}\"" + }, + "value": "\"}" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "typeString": "literal_string \"{\"name\": \"Fluffy Fury\", \"description\": \"Your access into any event created using this token address\", \"image\":\"\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "typeString": "literal_string \"\"}\"" + } + ], + "expression": { + "id": 3634, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1744:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1748:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1744:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1744:273:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1709:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3632, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1709:5:18", + "typeDescriptions": {} + } + }, + "id": 3640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1709:334:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3630, + "name": "Base64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3189, + "src": "1670:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Base64_$3189_$", + "typeString": "type(library Base64)" + } + }, + "id": 3631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1677:6:18", + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 3119, + "src": "1670:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (string memory)" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1670:395:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "typeString": "literal_string \"data:application/json;base64,\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 3627, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1579:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1583:12:18", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1579:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1579:504:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1555:6:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 3625, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1555:6:18", + "typeDescriptions": {} + } + }, + "id": 3643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1555:542:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 3624, + "id": 3644, + "nodeType": "Return", + "src": "1536:561:18" + } + ] + }, + "functionSelector": "71aee193", + "id": 3646, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "formatTokenURI", + "nameLocation": "1451:14:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3620, + "mutability": "mutable", + "name": "imageURI", + "nameLocation": "1480:8:18", + "nodeType": "VariableDeclaration", + "scope": 3646, + "src": "1466:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3619, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1466:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1465:24:18" + }, + "returnParameters": { + "id": 3624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3623, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3646, + "src": "1511:13:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3622, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1511:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1510:15:18" + }, + "scope": 3784, + "src": "1442:662:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3685, + "nodeType": "Block", + "src": "2229:333:18", + "statements": [ + { + "assignments": [ + 3652 + ], + "declarations": [ + { + "constant": false, + "id": 3652, + "mutability": "mutable", + "name": "imageURI", + "nameLocation": "2253:8:18", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "2239:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3651, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2239:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3656, + "initialValue": { + "arguments": [ + { + "id": 3654, + "name": "svgData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2278:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3653, + "name": "svgToImageURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "2264:13:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (string memory) pure returns (string memory)" + } + }, + "id": 3655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2264:22:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2239:47:18" + }, + { + "assignments": [ + 3658 + ], + "declarations": [ + { + "constant": false, + "id": 3658, + "mutability": "mutable", + "name": "tokenURI", + "nameLocation": "2328:8:18", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "2314:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3657, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2314:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 3662, + "initialValue": { + "arguments": [ + { + "id": 3660, + "name": "imageURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "2354:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3659, + "name": "formatTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3646, + "src": "2339:14:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", + "typeString": "function (string memory) pure returns (string memory)" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2339:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2314:49:18" + }, + { + "expression": { + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2374:17:18", + "subExpression": { + "id": 3663, + "name": "_tokenIdCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3534, + "src": "2374:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3665, + "nodeType": "ExpressionStatement", + "src": "2374:17:18" + }, + { + "assignments": [ + 3667 + ], + "declarations": [ + { + "constant": false, + "id": 3667, + "mutability": "mutable", + "name": "newItemId", + "nameLocation": "2409:9:18", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "2401:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2401:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3669, + "initialValue": { + "id": 3668, + "name": "_tokenIdCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3534, + "src": "2421:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2401:35:18" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3671, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2457:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2461:6:18", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2457:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3673, + "name": "newItemId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3667, + "src": "2469:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3670, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 947, + 973 + ], + "referencedDeclaration": 947, + "src": "2447:9:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2447:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3675, + "nodeType": "ExpressionStatement", + "src": "2447:32:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3677, + "name": "newItemId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3667, + "src": "2502:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3678, + "name": "tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3658, + "src": "2513:8:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3676, + "name": "_setTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1585, + "src": "2489:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" + } + }, + "id": 3679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2489:33:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3680, + "nodeType": "ExpressionStatement", + "src": "2489:33:18" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3682, + "name": "newItemId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3667, + "src": "2545:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3681, + "name": "Minted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3532, + "src": "2538:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2538:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3684, + "nodeType": "EmitStatement", + "src": "2533:22:18" + } + ] + }, + "functionSelector": "1249c58b", + "id": 3686, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3649, + "kind": "modifierInvocation", + "modifierName": { + "id": 3648, + "name": "mintPricePaid", + "nameLocations": [ + "2215:13:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3587, + "src": "2215:13:18" + }, + "nodeType": "ModifierInvocation", + "src": "2215:13:18" + } + ], + "name": "mint", + "nameLocation": "2191:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3647, + "nodeType": "ParameterList", + "parameters": [], + "src": "2195:2:18" + }, + "returnParameters": { + "id": 3650, + "nodeType": "ParameterList", + "parameters": [], + "src": "2229:0:18" + }, + "scope": 3784, + "src": "2182:380:18", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3721, + "nodeType": "Block", + "src": "2678:211:18", + "statements": [ + { + "assignments": [ + 3692 + ], + "declarations": [ + { + "constant": false, + "id": 3692, + "mutability": "mutable", + "name": "balance", + "nameLocation": "2696:7:18", + "nodeType": "VariableDeclaration", + "scope": 3721, + "src": "2688:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2688:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3698, + "initialValue": { + "expression": { + "arguments": [ + { + "id": 3695, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2714:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FluffyFury_$3784", + "typeString": "contract FluffyFury" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_FluffyFury_$3784", + "typeString": "contract FluffyFury" + } + ], + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2706:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3693, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2706:7:18", + "typeDescriptions": {} + } + }, + "id": 3696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2706:13:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2720:7:18", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2706:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2688:39:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3700, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "2745:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2755:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2745:11:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f2066756e647320617661696c61626c65", + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2758:20:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "typeString": "literal_string \"No funds available\"" + }, + "value": "No funds available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "typeString": "literal_string \"No funds available\"" + } + ], + "id": 3699, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2737:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2737:42:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3705, + "nodeType": "ExpressionStatement", + "src": "2737:42:18" + }, + { + "assignments": [ + 3707, + null + ], + "declarations": [ + { + "constant": false, + "id": 3707, + "mutability": "mutable", + "name": "sent", + "nameLocation": "2796:4:18", + "nodeType": "VariableDeclaration", + "scope": 3721, + "src": "2791:9:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3706, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2791:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 3715, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 3713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2835:2:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3708, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2806:5:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2806:7:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2814:4:18", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2806:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 3711, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "2826:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2806:28:18", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2806:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2790:48:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3717, + "name": "sent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3707, + "src": "2856:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5769746864726177616c206661696c6564", + "id": 3718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2862:19:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "typeString": "literal_string \"Withdrawal failed\"" + }, + "value": "Withdrawal failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "typeString": "literal_string \"Withdrawal failed\"" + } + ], + "id": 3716, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2848:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2848:34:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3720, + "nodeType": "ExpressionStatement", + "src": "2848:34:18" + } + ] + }, + "functionSelector": "24600fc3", + "id": 3722, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3689, + "kind": "modifierInvocation", + "modifierName": { + "id": 3688, + "name": "onlyOwner", + "nameLocations": [ + "2668:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "2668:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "2668:9:18" + } + ], + "name": "withdrawFunds", + "nameLocation": "2643:13:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3687, + "nodeType": "ParameterList", + "parameters": [], + "src": "2656:2:18" + }, + "returnParameters": { + "id": 3690, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:0:18" + }, + "scope": 3784, + "src": "2634:255:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3755, + "nodeType": "Block", + "src": "3052:233:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3732, + "name": "_newSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3724, + "src": "3076:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3070:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3730, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3070:5:18", + "typeDescriptions": {} + } + }, + "id": 3733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3070:14:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3085:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3070:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3094:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3070:25:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "id": 3737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3097:26:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + }, + "value": "SVG data cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "typeString": "literal_string \"SVG data cannot be empty\"" + } + ], + "id": 3729, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3062:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3062:62:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3739, + "nodeType": "ExpressionStatement", + "src": "3062:62:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3743, + "name": "_newSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3724, + "src": "3148:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3142:5:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3741, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3142:5:18", + "typeDescriptions": {} + } + }, + "id": 3744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3142:14:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3157:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3142:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "35303030", + "id": 3746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3167:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000_by_1", + "typeString": "int_const 5000" + }, + "value": "5000" + }, + "src": "3142:29:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3173:20:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + }, + "value": "SVG data too large" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "typeString": "literal_string \"SVG data too large\"" + } + ], + "id": 3740, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3134:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3134:60:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3750, + "nodeType": "ExpressionStatement", + "src": "3134:60:18" + }, + { + "expression": { + "id": 3753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3751, + "name": "svgData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "3238:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3752, + "name": "_newSvg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3724, + "src": "3248:7:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3238:17:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3754, + "nodeType": "ExpressionStatement", + "src": "3238:17:18" + } + ] + }, + "functionSelector": "a52db60d", + "id": 3756, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3727, + "kind": "modifierInvocation", + "modifierName": { + "id": 3726, + "name": "onlyOwner", + "nameLocations": [ + "3042:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "3042:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "3042:9:18" + } + ], + "name": "updateSVG", + "nameLocation": "3000:9:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3724, + "mutability": "mutable", + "name": "_newSvg", + "nameLocation": "3024:7:18", + "nodeType": "VariableDeclaration", + "scope": 3756, + "src": "3010:21:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3723, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3010:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3009:23:18" + }, + "returnParameters": { + "id": 3728, + "nodeType": "ParameterList", + "parameters": [], + "src": "3052:0:18" + }, + "scope": 3784, + "src": "2991:294:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 126 + ], + "body": { + "id": 3778, + "nodeType": "Block", + "src": "3413:126:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3765, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3758, + "src": "3431:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3451:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3443:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3443:7:18", + "typeDescriptions": {} + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3443:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3431:22:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373", + "id": 3771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3455:38:18", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "typeString": "literal_string \"New owner cannot be the zero address\"" + }, + "value": "New owner cannot be the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "typeString": "literal_string \"New owner cannot be the zero address\"" + } + ], + "id": 3764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3423:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3423:71:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3773, + "nodeType": "ExpressionStatement", + "src": "3423:71:18" + }, + { + "expression": { + "arguments": [ + { + "id": 3775, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3758, + "src": "3523:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3774, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 146, + "src": "3504:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3504:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3777, + "nodeType": "ExpressionStatement", + "src": "3504:28:18" + } + ] + }, + "functionSelector": "f2fde38b", + "id": 3779, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3762, + "kind": "modifierInvocation", + "modifierName": { + "id": 3761, + "name": "onlyOwner", + "nameLocations": [ + "3403:9:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 58, + "src": "3403:9:18" + }, + "nodeType": "ModifierInvocation", + "src": "3403:9:18" + } + ], + "name": "transferOwnership", + "nameLocation": "3351:17:18", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3760, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3394:8:18" + }, + "parameters": { + "id": 3759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3758, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3377:8:18", + "nodeType": "VariableDeclaration", + "scope": 3779, + "src": "3369:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3369:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3368:18:18" + }, + "returnParameters": { + "id": 3763, + "nodeType": "ParameterList", + "parameters": [], + "src": "3413:0:18" + }, + "scope": 3784, + "src": "3342:197:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3782, + "nodeType": "Block", + "src": "3614:2:18", + "statements": [] + }, + "id": 3783, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3780, + "nodeType": "ParameterList", + "parameters": [], + "src": "3594:2:18" + }, + "returnParameters": { + "id": 3781, + "nodeType": "ParameterList", + "parameters": [], + "src": "3614:0:18" + }, + "scope": 3784, + "src": "3587:29:18", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3785, + "src": "287:3331:18", + "usedErrors": [ + 13, + 18, + 227, + 232, + 241, + 246, + 251, + 258, + 263, + 268 + ], + "usedEvents": [ + 24, + 167, + 174, + 1341, + 1350, + 1359, + 3532 + ] + } + ], + "src": "39:3579:18" + }, + "id": 18 + } + }, + "contracts": { + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/interfaces/IERC4906.sol": { + "IERC4906": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"EIP-721 Metadata Update Extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC4906.sol\":\"IERC4906\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "ERC721": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "IERC721": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "IERC721Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC721Received(address,address,uint256,bytes)": "150b7a02" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { + "ERC721URIStorage": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 token with storage based token URI management.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "IERC721Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", + "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 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "sourceMap": "251:2847:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "sourceMap": "251:2847:11:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", + "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 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", + "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 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "contracts/Base64.sol": { + "Base64": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e4576c4e1eb5caad5c5f8241bfc8ce0c855d9345b2c3f258007d005496faac764736f6c63430008180033", + "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 0x1E GASLIMIT PUSH23 0xC4E1EB5CAAD5C5F8241BFC8CE0C855D9345B2C3F258007 0xD0 SDIV BLOBHASH PUSH16 0xAAC764736F6C63430008180033000000 ", + "sourceMap": "210:5122:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201e4576c4e1eb5caad5c5f8241bfc8ce0c855d9345b2c3f258007d005496faac764736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E GASLIMIT PUSH23 0xC4E1EB5CAAD5C5F8241BFC8CE0C855D9345B2C3F258007 0xD0 SDIV BLOBHASH PUSH16 0xAAC764736F6C63430008180033000000 ", + "sourceMap": "210:5122:16:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides a set of functions to operate with Base64 strings.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_TABLE\":{\"details\":\"Base64 Encoding/Decoding Table See sections 4 and 5 of https://datatracker.ietf.org/doc/html/rfc4648\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Base64.sol\":\"Base64\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Base64.sol\":{\"keccak256\":\"0x6d694185b14e1233702ff0bbf9fd2d1915b53cc525e17fd74fcf924c0965a8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e929968c67ff158ca737ccccb0847c02e4d07006f9d9d395bc8c2b7264486fc\",\"dweb:/ipfs/QmQUrKGYj5QKkZN7DDXHcivBFU7tzF2Uyv3G65ZaZBZEFS\"]}},\"version\":1}" + } + }, + "contracts/CaveParty.sol": { + "CaveParty": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getEventIdForToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMyWalletMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxPerWallet", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mintPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_eventId", + "type": "uint256" + } + ], + "name": "mintToken", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "tokenToEventMapping", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalMints", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_newAssetMetadata", + "type": "string" + } + ], + "name": "updateMetadata", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_3238": { + "entryPoint": null, + "id": 3238, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_386": { + "entryPoint": null, + "id": 386, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 387, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 1502, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 1519, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 743, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 585, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1064, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 1482, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 1450, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 879, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1025, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 899, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1219, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 764, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 690, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1189, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "identity": { + "entryPoint": 889, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1157, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 643, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 596, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 939, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 780, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1144, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 997, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 793, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 949, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 992, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:5817:19", + "nodeType": "YulBlock", + "src": "0:5817:19", + "statements": [ + { + "body": { + "nativeSrc": "66:40:19", + "nodeType": "YulBlock", + "src": "66:40:19", + "statements": [ + { + "nativeSrc": "77:22:19", + "nodeType": "YulAssignment", + "src": "77:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:19", + "nodeType": "YulIdentifier", + "src": "93:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "87:5:19", + "nodeType": "YulIdentifier", + "src": "87:5:19" + }, + "nativeSrc": "87:12:19", + "nodeType": "YulFunctionCall", + "src": "87:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "77:6:19", + "nodeType": "YulIdentifier", + "src": "77:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "7:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "49:5:19", + "nodeType": "YulTypedName", + "src": "49:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "59:6:19", + "nodeType": "YulTypedName", + "src": "59:6:19", + "type": "" + } + ], + "src": "7:99:19" + }, + { + "body": { + "nativeSrc": "140:152:19", + "nodeType": "YulBlock", + "src": "140:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "157:1:19", + "nodeType": "YulLiteral", + "src": "157:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "160:77:19", + "nodeType": "YulLiteral", + "src": "160:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "150:6:19", + "nodeType": "YulIdentifier", + "src": "150:6:19" + }, + "nativeSrc": "150:88:19", + "nodeType": "YulFunctionCall", + "src": "150:88:19" + }, + "nativeSrc": "150:88:19", + "nodeType": "YulExpressionStatement", + "src": "150:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "254:1:19", + "nodeType": "YulLiteral", + "src": "254:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "257:4:19", + "nodeType": "YulLiteral", + "src": "257:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "247:6:19", + "nodeType": "YulIdentifier", + "src": "247:6:19" + }, + "nativeSrc": "247:15:19", + "nodeType": "YulFunctionCall", + "src": "247:15:19" + }, + "nativeSrc": "247:15:19", + "nodeType": "YulExpressionStatement", + "src": "247:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "278:1:19", + "nodeType": "YulLiteral", + "src": "278:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "281:4:19", + "nodeType": "YulLiteral", + "src": "281:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "271:6:19", + "nodeType": "YulIdentifier", + "src": "271:6:19" + }, + "nativeSrc": "271:15:19", + "nodeType": "YulFunctionCall", + "src": "271:15:19" + }, + "nativeSrc": "271:15:19", + "nodeType": "YulExpressionStatement", + "src": "271:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "112:180:19", + "nodeType": "YulFunctionDefinition", + "src": "112:180:19" + }, + { + "body": { + "nativeSrc": "326:152:19", + "nodeType": "YulBlock", + "src": "326:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "343:1:19", + "nodeType": "YulLiteral", + "src": "343:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "346:77:19", + "nodeType": "YulLiteral", + "src": "346:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "336:6:19", + "nodeType": "YulIdentifier", + "src": "336:6:19" + }, + "nativeSrc": "336:88:19", + "nodeType": "YulFunctionCall", + "src": "336:88:19" + }, + "nativeSrc": "336:88:19", + "nodeType": "YulExpressionStatement", + "src": "336:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:19", + "nodeType": "YulLiteral", + "src": "440:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "443:4:19", + "nodeType": "YulLiteral", + "src": "443:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "433:6:19", + "nodeType": "YulIdentifier", + "src": "433:6:19" + }, + "nativeSrc": "433:15:19", + "nodeType": "YulFunctionCall", + "src": "433:15:19" + }, + "nativeSrc": "433:15:19", + "nodeType": "YulExpressionStatement", + "src": "433:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "464:1:19", + "nodeType": "YulLiteral", + "src": "464:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "467:4:19", + "nodeType": "YulLiteral", + "src": "467:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "457:6:19", + "nodeType": "YulIdentifier", + "src": "457:6:19" + }, + "nativeSrc": "457:15:19", + "nodeType": "YulFunctionCall", + "src": "457:15:19" + }, + "nativeSrc": "457:15:19", + "nodeType": "YulExpressionStatement", + "src": "457:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "298:180:19", + "nodeType": "YulFunctionDefinition", + "src": "298:180:19" + }, + { + "body": { + "nativeSrc": "535:269:19", + "nodeType": "YulBlock", + "src": "535:269:19", + "statements": [ + { + "nativeSrc": "545:22:19", + "nodeType": "YulAssignment", + "src": "545:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "559:4:19", + "nodeType": "YulIdentifier", + "src": "559:4:19" + }, + { + "kind": "number", + "nativeSrc": "565:1:19", + "nodeType": "YulLiteral", + "src": "565:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "555:3:19", + "nodeType": "YulIdentifier", + "src": "555:3:19" + }, + "nativeSrc": "555:12:19", + "nodeType": "YulFunctionCall", + "src": "555:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "545:6:19", + "nodeType": "YulIdentifier", + "src": "545:6:19" + } + ] + }, + { + "nativeSrc": "576:38:19", + "nodeType": "YulVariableDeclaration", + "src": "576:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "606:4:19", + "nodeType": "YulIdentifier", + "src": "606:4:19" + }, + { + "kind": "number", + "nativeSrc": "612:1:19", + "nodeType": "YulLiteral", + "src": "612:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "602:3:19", + "nodeType": "YulIdentifier", + "src": "602:3:19" + }, + "nativeSrc": "602:12:19", + "nodeType": "YulFunctionCall", + "src": "602:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "580:18:19", + "nodeType": "YulTypedName", + "src": "580:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "653:51:19", + "nodeType": "YulBlock", + "src": "653:51:19", + "statements": [ + { + "nativeSrc": "667:27:19", + "nodeType": "YulAssignment", + "src": "667:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "681:6:19", + "nodeType": "YulIdentifier", + "src": "681:6:19" + }, + { + "kind": "number", + "nativeSrc": "689:4:19", + "nodeType": "YulLiteral", + "src": "689:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "677:3:19", + "nodeType": "YulIdentifier", + "src": "677:3:19" + }, + "nativeSrc": "677:17:19", + "nodeType": "YulFunctionCall", + "src": "677:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "667:6:19", + "nodeType": "YulIdentifier", + "src": "667:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "633:18:19", + "nodeType": "YulIdentifier", + "src": "633:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "626:6:19", + "nodeType": "YulIdentifier", + "src": "626:6:19" + }, + "nativeSrc": "626:26:19", + "nodeType": "YulFunctionCall", + "src": "626:26:19" + }, + "nativeSrc": "623:81:19", + "nodeType": "YulIf", + "src": "623:81:19" + }, + { + "body": { + "nativeSrc": "756:42:19", + "nodeType": "YulBlock", + "src": "756:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "770:16:19", + "nodeType": "YulIdentifier", + "src": "770:16:19" + }, + "nativeSrc": "770:18:19", + "nodeType": "YulFunctionCall", + "src": "770:18:19" + }, + "nativeSrc": "770:18:19", + "nodeType": "YulExpressionStatement", + "src": "770:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "720:18:19", + "nodeType": "YulIdentifier", + "src": "720:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "743:6:19", + "nodeType": "YulIdentifier", + "src": "743:6:19" + }, + { + "kind": "number", + "nativeSrc": "751:2:19", + "nodeType": "YulLiteral", + "src": "751:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "740:2:19", + "nodeType": "YulIdentifier", + "src": "740:2:19" + }, + "nativeSrc": "740:14:19", + "nodeType": "YulFunctionCall", + "src": "740:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "717:2:19", + "nodeType": "YulIdentifier", + "src": "717:2:19" + }, + "nativeSrc": "717:38:19", + "nodeType": "YulFunctionCall", + "src": "717:38:19" + }, + "nativeSrc": "714:84:19", + "nodeType": "YulIf", + "src": "714:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "484:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "519:4:19", + "nodeType": "YulTypedName", + "src": "519:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "528:6:19", + "nodeType": "YulTypedName", + "src": "528:6:19", + "type": "" + } + ], + "src": "484:320:19" + }, + { + "body": { + "nativeSrc": "864:87:19", + "nodeType": "YulBlock", + "src": "864:87:19", + "statements": [ + { + "nativeSrc": "874:11:19", + "nodeType": "YulAssignment", + "src": "874:11:19", + "value": { + "name": "ptr", + "nativeSrc": "882:3:19", + "nodeType": "YulIdentifier", + "src": "882:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "874:4:19", + "nodeType": "YulIdentifier", + "src": "874:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "902:1:19", + "nodeType": "YulLiteral", + "src": "902:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "905:3:19", + "nodeType": "YulIdentifier", + "src": "905:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "895:6:19", + "nodeType": "YulIdentifier", + "src": "895:6:19" + }, + "nativeSrc": "895:14:19", + "nodeType": "YulFunctionCall", + "src": "895:14:19" + }, + "nativeSrc": "895:14:19", + "nodeType": "YulExpressionStatement", + "src": "895:14:19" + }, + { + "nativeSrc": "918:26:19", + "nodeType": "YulAssignment", + "src": "918:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "936:1:19", + "nodeType": "YulLiteral", + "src": "936:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "939:4:19", + "nodeType": "YulLiteral", + "src": "939:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "926:9:19", + "nodeType": "YulIdentifier", + "src": "926:9:19" + }, + "nativeSrc": "926:18:19", + "nodeType": "YulFunctionCall", + "src": "926:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "918:4:19", + "nodeType": "YulIdentifier", + "src": "918:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "810:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "851:3:19", + "nodeType": "YulTypedName", + "src": "851:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "859:4:19", + "nodeType": "YulTypedName", + "src": "859:4:19", + "type": "" + } + ], + "src": "810:141:19" + }, + { + "body": { + "nativeSrc": "1001:49:19", + "nodeType": "YulBlock", + "src": "1001:49:19", + "statements": [ + { + "nativeSrc": "1011:33:19", + "nodeType": "YulAssignment", + "src": "1011:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1029:5:19", + "nodeType": "YulIdentifier", + "src": "1029:5:19" + }, + { + "kind": "number", + "nativeSrc": "1036:2:19", + "nodeType": "YulLiteral", + "src": "1036:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1025:3:19", + "nodeType": "YulIdentifier", + "src": "1025:3:19" + }, + "nativeSrc": "1025:14:19", + "nodeType": "YulFunctionCall", + "src": "1025:14:19" + }, + { + "kind": "number", + "nativeSrc": "1041:2:19", + "nodeType": "YulLiteral", + "src": "1041:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "1021:3:19", + "nodeType": "YulIdentifier", + "src": "1021:3:19" + }, + "nativeSrc": "1021:23:19", + "nodeType": "YulFunctionCall", + "src": "1021:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1011:6:19", + "nodeType": "YulIdentifier", + "src": "1011:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "957:93:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "984:5:19", + "nodeType": "YulTypedName", + "src": "984:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "994:6:19", + "nodeType": "YulTypedName", + "src": "994:6:19", + "type": "" + } + ], + "src": "957:93:19" + }, + { + "body": { + "nativeSrc": "1109:54:19", + "nodeType": "YulBlock", + "src": "1109:54:19", + "statements": [ + { + "nativeSrc": "1119:37:19", + "nodeType": "YulAssignment", + "src": "1119:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "1144:4:19", + "nodeType": "YulIdentifier", + "src": "1144:4:19" + }, + { + "name": "value", + "nativeSrc": "1150:5:19", + "nodeType": "YulIdentifier", + "src": "1150:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1140:3:19", + "nodeType": "YulIdentifier", + "src": "1140:3:19" + }, + "nativeSrc": "1140:16:19", + "nodeType": "YulFunctionCall", + "src": "1140:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "1119:8:19", + "nodeType": "YulIdentifier", + "src": "1119:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "1056:107:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "1084:4:19", + "nodeType": "YulTypedName", + "src": "1084:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "1090:5:19", + "nodeType": "YulTypedName", + "src": "1090:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "1100:8:19", + "nodeType": "YulTypedName", + "src": "1100:8:19", + "type": "" + } + ], + "src": "1056:107:19" + }, + { + "body": { + "nativeSrc": "1245:317:19", + "nodeType": "YulBlock", + "src": "1245:317:19", + "statements": [ + { + "nativeSrc": "1255:35:19", + "nodeType": "YulVariableDeclaration", + "src": "1255:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "1276:10:19", + "nodeType": "YulIdentifier", + "src": "1276:10:19" + }, + { + "kind": "number", + "nativeSrc": "1288:1:19", + "nodeType": "YulLiteral", + "src": "1288:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "1272:3:19", + "nodeType": "YulIdentifier", + "src": "1272:3:19" + }, + "nativeSrc": "1272:18:19", + "nodeType": "YulFunctionCall", + "src": "1272:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "1259:9:19", + "nodeType": "YulTypedName", + "src": "1259:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "1299:109:19", + "nodeType": "YulVariableDeclaration", + "src": "1299:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "1330:9:19", + "nodeType": "YulIdentifier", + "src": "1330:9:19" + }, + { + "kind": "number", + "nativeSrc": "1341:66:19", + "nodeType": "YulLiteral", + "src": "1341:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "1311:18:19", + "nodeType": "YulIdentifier", + "src": "1311:18:19" + }, + "nativeSrc": "1311:97:19", + "nodeType": "YulFunctionCall", + "src": "1311:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "1303:4:19", + "nodeType": "YulTypedName", + "src": "1303:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "1417:51:19", + "nodeType": "YulAssignment", + "src": "1417:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "1448:9:19", + "nodeType": "YulIdentifier", + "src": "1448:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "1459:8:19", + "nodeType": "YulIdentifier", + "src": "1459:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "1429:18:19", + "nodeType": "YulIdentifier", + "src": "1429:18:19" + }, + "nativeSrc": "1429:39:19", + "nodeType": "YulFunctionCall", + "src": "1429:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "1417:8:19", + "nodeType": "YulIdentifier", + "src": "1417:8:19" + } + ] + }, + { + "nativeSrc": "1477:30:19", + "nodeType": "YulAssignment", + "src": "1477:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1490:5:19", + "nodeType": "YulIdentifier", + "src": "1490:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "1501:4:19", + "nodeType": "YulIdentifier", + "src": "1501:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1497:3:19", + "nodeType": "YulIdentifier", + "src": "1497:3:19" + }, + "nativeSrc": "1497:9:19", + "nodeType": "YulFunctionCall", + "src": "1497:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1486:3:19", + "nodeType": "YulIdentifier", + "src": "1486:3:19" + }, + "nativeSrc": "1486:21:19", + "nodeType": "YulFunctionCall", + "src": "1486:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1477:5:19", + "nodeType": "YulIdentifier", + "src": "1477:5:19" + } + ] + }, + { + "nativeSrc": "1516:40:19", + "nodeType": "YulAssignment", + "src": "1516:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1529:5:19", + "nodeType": "YulIdentifier", + "src": "1529:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "1540:8:19", + "nodeType": "YulIdentifier", + "src": "1540:8:19" + }, + { + "name": "mask", + "nativeSrc": "1550:4:19", + "nodeType": "YulIdentifier", + "src": "1550:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1536:3:19", + "nodeType": "YulIdentifier", + "src": "1536:3:19" + }, + "nativeSrc": "1536:19:19", + "nodeType": "YulFunctionCall", + "src": "1536:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1526:2:19", + "nodeType": "YulIdentifier", + "src": "1526:2:19" + }, + "nativeSrc": "1526:30:19", + "nodeType": "YulFunctionCall", + "src": "1526:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "1516:6:19", + "nodeType": "YulIdentifier", + "src": "1516:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "1169:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1206:5:19", + "nodeType": "YulTypedName", + "src": "1206:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "1213:10:19", + "nodeType": "YulTypedName", + "src": "1213:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "1225:8:19", + "nodeType": "YulTypedName", + "src": "1225:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "1238:6:19", + "nodeType": "YulTypedName", + "src": "1238:6:19", + "type": "" + } + ], + "src": "1169:393:19" + }, + { + "body": { + "nativeSrc": "1613:32:19", + "nodeType": "YulBlock", + "src": "1613:32:19", + "statements": [ + { + "nativeSrc": "1623:16:19", + "nodeType": "YulAssignment", + "src": "1623:16:19", + "value": { + "name": "value", + "nativeSrc": "1634:5:19", + "nodeType": "YulIdentifier", + "src": "1634:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1623:7:19", + "nodeType": "YulIdentifier", + "src": "1623:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "1568:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1595:5:19", + "nodeType": "YulTypedName", + "src": "1595:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1605:7:19", + "nodeType": "YulTypedName", + "src": "1605:7:19", + "type": "" + } + ], + "src": "1568:77:19" + }, + { + "body": { + "nativeSrc": "1683:28:19", + "nodeType": "YulBlock", + "src": "1683:28:19", + "statements": [ + { + "nativeSrc": "1693:12:19", + "nodeType": "YulAssignment", + "src": "1693:12:19", + "value": { + "name": "value", + "nativeSrc": "1700:5:19", + "nodeType": "YulIdentifier", + "src": "1700:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "1693:3:19", + "nodeType": "YulIdentifier", + "src": "1693:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "1651:60:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1669:5:19", + "nodeType": "YulTypedName", + "src": "1669:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "1679:3:19", + "nodeType": "YulTypedName", + "src": "1679:3:19", + "type": "" + } + ], + "src": "1651:60:19" + }, + { + "body": { + "nativeSrc": "1777:82:19", + "nodeType": "YulBlock", + "src": "1777:82:19", + "statements": [ + { + "nativeSrc": "1787:66:19", + "nodeType": "YulAssignment", + "src": "1787:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1845:5:19", + "nodeType": "YulIdentifier", + "src": "1845:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1827:17:19", + "nodeType": "YulIdentifier", + "src": "1827:17:19" + }, + "nativeSrc": "1827:24:19", + "nodeType": "YulFunctionCall", + "src": "1827:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "1818:8:19", + "nodeType": "YulIdentifier", + "src": "1818:8:19" + }, + "nativeSrc": "1818:34:19", + "nodeType": "YulFunctionCall", + "src": "1818:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1800:17:19", + "nodeType": "YulIdentifier", + "src": "1800:17:19" + }, + "nativeSrc": "1800:53:19", + "nodeType": "YulFunctionCall", + "src": "1800:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "1787:9:19", + "nodeType": "YulIdentifier", + "src": "1787:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "1717:142:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1757:5:19", + "nodeType": "YulTypedName", + "src": "1757:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "1767:9:19", + "nodeType": "YulTypedName", + "src": "1767:9:19", + "type": "" + } + ], + "src": "1717:142:19" + }, + { + "body": { + "nativeSrc": "1912:28:19", + "nodeType": "YulBlock", + "src": "1912:28:19", + "statements": [ + { + "nativeSrc": "1922:12:19", + "nodeType": "YulAssignment", + "src": "1922:12:19", + "value": { + "name": "value", + "nativeSrc": "1929:5:19", + "nodeType": "YulIdentifier", + "src": "1929:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "1922:3:19", + "nodeType": "YulIdentifier", + "src": "1922:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "1865:75:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1898:5:19", + "nodeType": "YulTypedName", + "src": "1898:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "1908:3:19", + "nodeType": "YulTypedName", + "src": "1908:3:19", + "type": "" + } + ], + "src": "1865:75:19" + }, + { + "body": { + "nativeSrc": "2022:193:19", + "nodeType": "YulBlock", + "src": "2022:193:19", + "statements": [ + { + "nativeSrc": "2032:63:19", + "nodeType": "YulVariableDeclaration", + "src": "2032:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "2087:7:19", + "nodeType": "YulIdentifier", + "src": "2087:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "2056:30:19", + "nodeType": "YulIdentifier", + "src": "2056:30:19" + }, + "nativeSrc": "2056:39:19", + "nodeType": "YulFunctionCall", + "src": "2056:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "2036:16:19", + "nodeType": "YulTypedName", + "src": "2036:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "2111:4:19", + "nodeType": "YulIdentifier", + "src": "2111:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "2151:4:19", + "nodeType": "YulIdentifier", + "src": "2151:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "2145:5:19", + "nodeType": "YulIdentifier", + "src": "2145:5:19" + }, + "nativeSrc": "2145:11:19", + "nodeType": "YulFunctionCall", + "src": "2145:11:19" + }, + { + "name": "offset", + "nativeSrc": "2158:6:19", + "nodeType": "YulIdentifier", + "src": "2158:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "2190:16:19", + "nodeType": "YulIdentifier", + "src": "2190:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "2166:23:19", + "nodeType": "YulIdentifier", + "src": "2166:23:19" + }, + "nativeSrc": "2166:41:19", + "nodeType": "YulFunctionCall", + "src": "2166:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "2117:27:19", + "nodeType": "YulIdentifier", + "src": "2117:27:19" + }, + "nativeSrc": "2117:91:19", + "nodeType": "YulFunctionCall", + "src": "2117:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "2104:6:19", + "nodeType": "YulIdentifier", + "src": "2104:6:19" + }, + "nativeSrc": "2104:105:19", + "nodeType": "YulFunctionCall", + "src": "2104:105:19" + }, + "nativeSrc": "2104:105:19", + "nodeType": "YulExpressionStatement", + "src": "2104:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "1946:269:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "1999:4:19", + "nodeType": "YulTypedName", + "src": "1999:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "2005:6:19", + "nodeType": "YulTypedName", + "src": "2005:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "2013:7:19", + "nodeType": "YulTypedName", + "src": "2013:7:19", + "type": "" + } + ], + "src": "1946:269:19" + }, + { + "body": { + "nativeSrc": "2270:24:19", + "nodeType": "YulBlock", + "src": "2270:24:19", + "statements": [ + { + "nativeSrc": "2280:8:19", + "nodeType": "YulAssignment", + "src": "2280:8:19", + "value": { + "kind": "number", + "nativeSrc": "2287:1:19", + "nodeType": "YulLiteral", + "src": "2287:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "2280:3:19", + "nodeType": "YulIdentifier", + "src": "2280:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "2221:73:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "2266:3:19", + "nodeType": "YulTypedName", + "src": "2266:3:19", + "type": "" + } + ], + "src": "2221:73:19" + }, + { + "body": { + "nativeSrc": "2353:136:19", + "nodeType": "YulBlock", + "src": "2353:136:19", + "statements": [ + { + "nativeSrc": "2363:46:19", + "nodeType": "YulVariableDeclaration", + "src": "2363:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "2377:30:19", + "nodeType": "YulIdentifier", + "src": "2377:30:19" + }, + "nativeSrc": "2377:32:19", + "nodeType": "YulFunctionCall", + "src": "2377:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "2367:6:19", + "nodeType": "YulTypedName", + "src": "2367:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "2462:4:19", + "nodeType": "YulIdentifier", + "src": "2462:4:19" + }, + { + "name": "offset", + "nativeSrc": "2468:6:19", + "nodeType": "YulIdentifier", + "src": "2468:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "2476:6:19", + "nodeType": "YulIdentifier", + "src": "2476:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "2418:43:19", + "nodeType": "YulIdentifier", + "src": "2418:43:19" + }, + "nativeSrc": "2418:65:19", + "nodeType": "YulFunctionCall", + "src": "2418:65:19" + }, + "nativeSrc": "2418:65:19", + "nodeType": "YulExpressionStatement", + "src": "2418:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "2300:189:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "2339:4:19", + "nodeType": "YulTypedName", + "src": "2339:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "2345:6:19", + "nodeType": "YulTypedName", + "src": "2345:6:19", + "type": "" + } + ], + "src": "2300:189:19" + }, + { + "body": { + "nativeSrc": "2545:136:19", + "nodeType": "YulBlock", + "src": "2545:136:19", + "statements": [ + { + "body": { + "nativeSrc": "2612:63:19", + "nodeType": "YulBlock", + "src": "2612:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "2656:5:19", + "nodeType": "YulIdentifier", + "src": "2656:5:19" + }, + { + "kind": "number", + "nativeSrc": "2663:1:19", + "nodeType": "YulLiteral", + "src": "2663:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "2626:29:19", + "nodeType": "YulIdentifier", + "src": "2626:29:19" + }, + "nativeSrc": "2626:39:19", + "nodeType": "YulFunctionCall", + "src": "2626:39:19" + }, + "nativeSrc": "2626:39:19", + "nodeType": "YulExpressionStatement", + "src": "2626:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "2565:5:19", + "nodeType": "YulIdentifier", + "src": "2565:5:19" + }, + { + "name": "end", + "nativeSrc": "2572:3:19", + "nodeType": "YulIdentifier", + "src": "2572:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2562:2:19", + "nodeType": "YulIdentifier", + "src": "2562:2:19" + }, + "nativeSrc": "2562:14:19", + "nodeType": "YulFunctionCall", + "src": "2562:14:19" + }, + "nativeSrc": "2555:120:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2577:26:19", + "nodeType": "YulBlock", + "src": "2577:26:19", + "statements": [ + { + "nativeSrc": "2579:22:19", + "nodeType": "YulAssignment", + "src": "2579:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "2592:5:19", + "nodeType": "YulIdentifier", + "src": "2592:5:19" + }, + { + "kind": "number", + "nativeSrc": "2599:1:19", + "nodeType": "YulLiteral", + "src": "2599:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2588:3:19", + "nodeType": "YulIdentifier", + "src": "2588:3:19" + }, + "nativeSrc": "2588:13:19", + "nodeType": "YulFunctionCall", + "src": "2588:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "2579:5:19", + "nodeType": "YulIdentifier", + "src": "2579:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2559:2:19", + "nodeType": "YulBlock", + "src": "2559:2:19", + "statements": [] + }, + "src": "2555:120:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "2495:186:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "2533:5:19", + "nodeType": "YulTypedName", + "src": "2533:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2540:3:19", + "nodeType": "YulTypedName", + "src": "2540:3:19", + "type": "" + } + ], + "src": "2495:186:19" + }, + { + "body": { + "nativeSrc": "2766:464:19", + "nodeType": "YulBlock", + "src": "2766:464:19", + "statements": [ + { + "body": { + "nativeSrc": "2792:431:19", + "nodeType": "YulBlock", + "src": "2792:431:19", + "statements": [ + { + "nativeSrc": "2806:54:19", + "nodeType": "YulVariableDeclaration", + "src": "2806:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2854:5:19", + "nodeType": "YulIdentifier", + "src": "2854:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "2822:31:19", + "nodeType": "YulIdentifier", + "src": "2822:31:19" + }, + "nativeSrc": "2822:38:19", + "nodeType": "YulFunctionCall", + "src": "2822:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "2810:8:19", + "nodeType": "YulTypedName", + "src": "2810:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2873:63:19", + "nodeType": "YulVariableDeclaration", + "src": "2873:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "2896:8:19", + "nodeType": "YulIdentifier", + "src": "2896:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "2924:10:19", + "nodeType": "YulIdentifier", + "src": "2924:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "2906:17:19", + "nodeType": "YulIdentifier", + "src": "2906:17:19" + }, + "nativeSrc": "2906:29:19", + "nodeType": "YulFunctionCall", + "src": "2906:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2892:3:19", + "nodeType": "YulIdentifier", + "src": "2892:3:19" + }, + "nativeSrc": "2892:44:19", + "nodeType": "YulFunctionCall", + "src": "2892:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "2877:11:19", + "nodeType": "YulTypedName", + "src": "2877:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3093:27:19", + "nodeType": "YulBlock", + "src": "3093:27:19", + "statements": [ + { + "nativeSrc": "3095:23:19", + "nodeType": "YulAssignment", + "src": "3095:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "3110:8:19", + "nodeType": "YulIdentifier", + "src": "3110:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "3095:11:19", + "nodeType": "YulIdentifier", + "src": "3095:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "3077:10:19", + "nodeType": "YulIdentifier", + "src": "3077:10:19" + }, + { + "kind": "number", + "nativeSrc": "3089:2:19", + "nodeType": "YulLiteral", + "src": "3089:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3074:2:19", + "nodeType": "YulIdentifier", + "src": "3074:2:19" + }, + "nativeSrc": "3074:18:19", + "nodeType": "YulFunctionCall", + "src": "3074:18:19" + }, + "nativeSrc": "3071:49:19", + "nodeType": "YulIf", + "src": "3071:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "3162:11:19", + "nodeType": "YulIdentifier", + "src": "3162:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "3179:8:19", + "nodeType": "YulIdentifier", + "src": "3179:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "3207:3:19", + "nodeType": "YulIdentifier", + "src": "3207:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "3189:17:19", + "nodeType": "YulIdentifier", + "src": "3189:17:19" + }, + "nativeSrc": "3189:22:19", + "nodeType": "YulFunctionCall", + "src": "3189:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3175:3:19", + "nodeType": "YulIdentifier", + "src": "3175:3:19" + }, + "nativeSrc": "3175:37:19", + "nodeType": "YulFunctionCall", + "src": "3175:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "3133:28:19", + "nodeType": "YulIdentifier", + "src": "3133:28:19" + }, + "nativeSrc": "3133:80:19", + "nodeType": "YulFunctionCall", + "src": "3133:80:19" + }, + "nativeSrc": "3133:80:19", + "nodeType": "YulExpressionStatement", + "src": "3133:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "2783:3:19", + "nodeType": "YulIdentifier", + "src": "2783:3:19" + }, + { + "kind": "number", + "nativeSrc": "2788:2:19", + "nodeType": "YulLiteral", + "src": "2788:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2780:2:19", + "nodeType": "YulIdentifier", + "src": "2780:2:19" + }, + "nativeSrc": "2780:11:19", + "nodeType": "YulFunctionCall", + "src": "2780:11:19" + }, + "nativeSrc": "2777:446:19", + "nodeType": "YulIf", + "src": "2777:446:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "2687:543:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "2742:5:19", + "nodeType": "YulTypedName", + "src": "2742:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "2749:3:19", + "nodeType": "YulTypedName", + "src": "2749:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "2754:10:19", + "nodeType": "YulTypedName", + "src": "2754:10:19", + "type": "" + } + ], + "src": "2687:543:19" + }, + { + "body": { + "nativeSrc": "3299:54:19", + "nodeType": "YulBlock", + "src": "3299:54:19", + "statements": [ + { + "nativeSrc": "3309:37:19", + "nodeType": "YulAssignment", + "src": "3309:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "3334:4:19", + "nodeType": "YulIdentifier", + "src": "3334:4:19" + }, + { + "name": "value", + "nativeSrc": "3340:5:19", + "nodeType": "YulIdentifier", + "src": "3340:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "3330:3:19", + "nodeType": "YulIdentifier", + "src": "3330:3:19" + }, + "nativeSrc": "3330:16:19", + "nodeType": "YulFunctionCall", + "src": "3330:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "3309:8:19", + "nodeType": "YulIdentifier", + "src": "3309:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "3236:117:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "3274:4:19", + "nodeType": "YulTypedName", + "src": "3274:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "3280:5:19", + "nodeType": "YulTypedName", + "src": "3280:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "3290:8:19", + "nodeType": "YulTypedName", + "src": "3290:8:19", + "type": "" + } + ], + "src": "3236:117:19" + }, + { + "body": { + "nativeSrc": "3410:118:19", + "nodeType": "YulBlock", + "src": "3410:118:19", + "statements": [ + { + "nativeSrc": "3420:68:19", + "nodeType": "YulVariableDeclaration", + "src": "3420:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3469:1:19", + "nodeType": "YulLiteral", + "src": "3469:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "3472:5:19", + "nodeType": "YulIdentifier", + "src": "3472:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3465:3:19", + "nodeType": "YulIdentifier", + "src": "3465:3:19" + }, + "nativeSrc": "3465:13:19", + "nodeType": "YulFunctionCall", + "src": "3465:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3484:1:19", + "nodeType": "YulLiteral", + "src": "3484:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3480:3:19", + "nodeType": "YulIdentifier", + "src": "3480:3:19" + }, + "nativeSrc": "3480:6:19", + "nodeType": "YulFunctionCall", + "src": "3480:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "3436:28:19", + "nodeType": "YulIdentifier", + "src": "3436:28:19" + }, + "nativeSrc": "3436:51:19", + "nodeType": "YulFunctionCall", + "src": "3436:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3432:3:19", + "nodeType": "YulIdentifier", + "src": "3432:3:19" + }, + "nativeSrc": "3432:56:19", + "nodeType": "YulFunctionCall", + "src": "3432:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "3424:4:19", + "nodeType": "YulTypedName", + "src": "3424:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "3497:25:19", + "nodeType": "YulAssignment", + "src": "3497:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3511:4:19", + "nodeType": "YulIdentifier", + "src": "3511:4:19" + }, + { + "name": "mask", + "nativeSrc": "3517:4:19", + "nodeType": "YulIdentifier", + "src": "3517:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3507:3:19", + "nodeType": "YulIdentifier", + "src": "3507:3:19" + }, + "nativeSrc": "3507:15:19", + "nodeType": "YulFunctionCall", + "src": "3507:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3497:6:19", + "nodeType": "YulIdentifier", + "src": "3497:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "3359:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3387:4:19", + "nodeType": "YulTypedName", + "src": "3387:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "3393:5:19", + "nodeType": "YulTypedName", + "src": "3393:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "3403:6:19", + "nodeType": "YulTypedName", + "src": "3403:6:19", + "type": "" + } + ], + "src": "3359:169:19" + }, + { + "body": { + "nativeSrc": "3614:214:19", + "nodeType": "YulBlock", + "src": "3614:214:19", + "statements": [ + { + "nativeSrc": "3747:37:19", + "nodeType": "YulAssignment", + "src": "3747:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3774:4:19", + "nodeType": "YulIdentifier", + "src": "3774:4:19" + }, + { + "name": "len", + "nativeSrc": "3780:3:19", + "nodeType": "YulIdentifier", + "src": "3780:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "3755:18:19", + "nodeType": "YulIdentifier", + "src": "3755:18:19" + }, + "nativeSrc": "3755:29:19", + "nodeType": "YulFunctionCall", + "src": "3755:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3747:4:19", + "nodeType": "YulIdentifier", + "src": "3747:4:19" + } + ] + }, + { + "nativeSrc": "3793:29:19", + "nodeType": "YulAssignment", + "src": "3793:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3804:4:19", + "nodeType": "YulIdentifier", + "src": "3804:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3814:1:19", + "nodeType": "YulLiteral", + "src": "3814:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "3817:3:19", + "nodeType": "YulIdentifier", + "src": "3817:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "3810:3:19", + "nodeType": "YulIdentifier", + "src": "3810:3:19" + }, + "nativeSrc": "3810:11:19", + "nodeType": "YulFunctionCall", + "src": "3810:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "3801:2:19", + "nodeType": "YulIdentifier", + "src": "3801:2:19" + }, + "nativeSrc": "3801:21:19", + "nodeType": "YulFunctionCall", + "src": "3801:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "3793:4:19", + "nodeType": "YulIdentifier", + "src": "3793:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "3533:295:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3595:4:19", + "nodeType": "YulTypedName", + "src": "3595:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "3601:3:19", + "nodeType": "YulTypedName", + "src": "3601:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "3609:4:19", + "nodeType": "YulTypedName", + "src": "3609:4:19", + "type": "" + } + ], + "src": "3533:295:19" + }, + { + "body": { + "nativeSrc": "3925:1303:19", + "nodeType": "YulBlock", + "src": "3925:1303:19", + "statements": [ + { + "nativeSrc": "3936:51:19", + "nodeType": "YulVariableDeclaration", + "src": "3936:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "3983:3:19", + "nodeType": "YulIdentifier", + "src": "3983:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3950:32:19", + "nodeType": "YulIdentifier", + "src": "3950:32:19" + }, + "nativeSrc": "3950:37:19", + "nodeType": "YulFunctionCall", + "src": "3950:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "3940:6:19", + "nodeType": "YulTypedName", + "src": "3940:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4072:22:19", + "nodeType": "YulBlock", + "src": "4072:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "4074:16:19", + "nodeType": "YulIdentifier", + "src": "4074:16:19" + }, + "nativeSrc": "4074:18:19", + "nodeType": "YulFunctionCall", + "src": "4074:18:19" + }, + "nativeSrc": "4074:18:19", + "nodeType": "YulExpressionStatement", + "src": "4074:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4044:6:19", + "nodeType": "YulIdentifier", + "src": "4044:6:19" + }, + { + "kind": "number", + "nativeSrc": "4052:18:19", + "nodeType": "YulLiteral", + "src": "4052:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4041:2:19", + "nodeType": "YulIdentifier", + "src": "4041:2:19" + }, + "nativeSrc": "4041:30:19", + "nodeType": "YulFunctionCall", + "src": "4041:30:19" + }, + "nativeSrc": "4038:56:19", + "nodeType": "YulIf", + "src": "4038:56:19" + }, + { + "nativeSrc": "4104:52:19", + "nodeType": "YulVariableDeclaration", + "src": "4104:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4150:4:19", + "nodeType": "YulIdentifier", + "src": "4150:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "4144:5:19", + "nodeType": "YulIdentifier", + "src": "4144:5:19" + }, + "nativeSrc": "4144:11:19", + "nodeType": "YulFunctionCall", + "src": "4144:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "4118:25:19", + "nodeType": "YulIdentifier", + "src": "4118:25:19" + }, + "nativeSrc": "4118:38:19", + "nodeType": "YulFunctionCall", + "src": "4118:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "4108:6:19", + "nodeType": "YulTypedName", + "src": "4108:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4249:4:19", + "nodeType": "YulIdentifier", + "src": "4249:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "4255:6:19", + "nodeType": "YulIdentifier", + "src": "4255:6:19" + }, + { + "name": "newLen", + "nativeSrc": "4263:6:19", + "nodeType": "YulIdentifier", + "src": "4263:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "4203:45:19", + "nodeType": "YulIdentifier", + "src": "4203:45:19" + }, + "nativeSrc": "4203:67:19", + "nodeType": "YulFunctionCall", + "src": "4203:67:19" + }, + "nativeSrc": "4203:67:19", + "nodeType": "YulExpressionStatement", + "src": "4203:67:19" + }, + { + "nativeSrc": "4280:18:19", + "nodeType": "YulVariableDeclaration", + "src": "4280:18:19", + "value": { + "kind": "number", + "nativeSrc": "4297:1:19", + "nodeType": "YulLiteral", + "src": "4297:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "4284:9:19", + "nodeType": "YulTypedName", + "src": "4284:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4308:17:19", + "nodeType": "YulAssignment", + "src": "4308:17:19", + "value": { + "kind": "number", + "nativeSrc": "4321:4:19", + "nodeType": "YulLiteral", + "src": "4321:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "4308:9:19", + "nodeType": "YulIdentifier", + "src": "4308:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "4372:611:19", + "nodeType": "YulBlock", + "src": "4372:611:19", + "statements": [ + { + "nativeSrc": "4386:37:19", + "nodeType": "YulVariableDeclaration", + "src": "4386:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4405:6:19", + "nodeType": "YulIdentifier", + "src": "4405:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4417:4:19", + "nodeType": "YulLiteral", + "src": "4417:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4413:3:19", + "nodeType": "YulIdentifier", + "src": "4413:3:19" + }, + "nativeSrc": "4413:9:19", + "nodeType": "YulFunctionCall", + "src": "4413:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4401:3:19", + "nodeType": "YulIdentifier", + "src": "4401:3:19" + }, + "nativeSrc": "4401:22:19", + "nodeType": "YulFunctionCall", + "src": "4401:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "4390:7:19", + "nodeType": "YulTypedName", + "src": "4390:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4437:51:19", + "nodeType": "YulVariableDeclaration", + "src": "4437:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4483:4:19", + "nodeType": "YulIdentifier", + "src": "4483:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "4451:31:19", + "nodeType": "YulIdentifier", + "src": "4451:31:19" + }, + "nativeSrc": "4451:37:19", + "nodeType": "YulFunctionCall", + "src": "4451:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "4441:6:19", + "nodeType": "YulTypedName", + "src": "4441:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4501:10:19", + "nodeType": "YulVariableDeclaration", + "src": "4501:10:19", + "value": { + "kind": "number", + "nativeSrc": "4510:1:19", + "nodeType": "YulLiteral", + "src": "4510:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "4505:1:19", + "nodeType": "YulTypedName", + "src": "4505:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4569:163:19", + "nodeType": "YulBlock", + "src": "4569:163:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4594:6:19", + "nodeType": "YulIdentifier", + "src": "4594:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4612:3:19", + "nodeType": "YulIdentifier", + "src": "4612:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "4617:9:19", + "nodeType": "YulIdentifier", + "src": "4617:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4608:3:19", + "nodeType": "YulIdentifier", + "src": "4608:3:19" + }, + "nativeSrc": "4608:19:19", + "nodeType": "YulFunctionCall", + "src": "4608:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4602:5:19", + "nodeType": "YulIdentifier", + "src": "4602:5:19" + }, + "nativeSrc": "4602:26:19", + "nodeType": "YulFunctionCall", + "src": "4602:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4587:6:19", + "nodeType": "YulIdentifier", + "src": "4587:6:19" + }, + "nativeSrc": "4587:42:19", + "nodeType": "YulFunctionCall", + "src": "4587:42:19" + }, + "nativeSrc": "4587:42:19", + "nodeType": "YulExpressionStatement", + "src": "4587:42:19" + }, + { + "nativeSrc": "4646:24:19", + "nodeType": "YulAssignment", + "src": "4646:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4660:6:19", + "nodeType": "YulIdentifier", + "src": "4660:6:19" + }, + { + "kind": "number", + "nativeSrc": "4668:1:19", + "nodeType": "YulLiteral", + "src": "4668:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4656:3:19", + "nodeType": "YulIdentifier", + "src": "4656:3:19" + }, + "nativeSrc": "4656:14:19", + "nodeType": "YulFunctionCall", + "src": "4656:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "4646:6:19", + "nodeType": "YulIdentifier", + "src": "4646:6:19" + } + ] + }, + { + "nativeSrc": "4687:31:19", + "nodeType": "YulAssignment", + "src": "4687:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "4704:9:19", + "nodeType": "YulIdentifier", + "src": "4704:9:19" + }, + { + "kind": "number", + "nativeSrc": "4715:2:19", + "nodeType": "YulLiteral", + "src": "4715:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4700:3:19", + "nodeType": "YulIdentifier", + "src": "4700:3:19" + }, + "nativeSrc": "4700:18:19", + "nodeType": "YulFunctionCall", + "src": "4700:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "4687:9:19", + "nodeType": "YulIdentifier", + "src": "4687:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4535:1:19", + "nodeType": "YulIdentifier", + "src": "4535:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "4538:7:19", + "nodeType": "YulIdentifier", + "src": "4538:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4532:2:19", + "nodeType": "YulIdentifier", + "src": "4532:2:19" + }, + "nativeSrc": "4532:14:19", + "nodeType": "YulFunctionCall", + "src": "4532:14:19" + }, + "nativeSrc": "4524:208:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "4547:21:19", + "nodeType": "YulBlock", + "src": "4547:21:19", + "statements": [ + { + "nativeSrc": "4549:17:19", + "nodeType": "YulAssignment", + "src": "4549:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "4558:1:19", + "nodeType": "YulIdentifier", + "src": "4558:1:19" + }, + { + "kind": "number", + "nativeSrc": "4561:4:19", + "nodeType": "YulLiteral", + "src": "4561:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4554:3:19", + "nodeType": "YulIdentifier", + "src": "4554:3:19" + }, + "nativeSrc": "4554:12:19", + "nodeType": "YulFunctionCall", + "src": "4554:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "4549:1:19", + "nodeType": "YulIdentifier", + "src": "4549:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "4528:3:19", + "nodeType": "YulBlock", + "src": "4528:3:19", + "statements": [] + }, + "src": "4524:208:19" + }, + { + "body": { + "nativeSrc": "4768:156:19", + "nodeType": "YulBlock", + "src": "4768:156:19", + "statements": [ + { + "nativeSrc": "4786:43:19", + "nodeType": "YulVariableDeclaration", + "src": "4786:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4813:3:19", + "nodeType": "YulIdentifier", + "src": "4813:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "4818:9:19", + "nodeType": "YulIdentifier", + "src": "4818:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4809:3:19", + "nodeType": "YulIdentifier", + "src": "4809:3:19" + }, + "nativeSrc": "4809:19:19", + "nodeType": "YulFunctionCall", + "src": "4809:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4803:5:19", + "nodeType": "YulIdentifier", + "src": "4803:5:19" + }, + "nativeSrc": "4803:26:19", + "nodeType": "YulFunctionCall", + "src": "4803:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "4790:9:19", + "nodeType": "YulTypedName", + "src": "4790:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "4853:6:19", + "nodeType": "YulIdentifier", + "src": "4853:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "4880:9:19", + "nodeType": "YulIdentifier", + "src": "4880:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4895:6:19", + "nodeType": "YulIdentifier", + "src": "4895:6:19" + }, + { + "kind": "number", + "nativeSrc": "4903:4:19", + "nodeType": "YulLiteral", + "src": "4903:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4891:3:19", + "nodeType": "YulIdentifier", + "src": "4891:3:19" + }, + "nativeSrc": "4891:17:19", + "nodeType": "YulFunctionCall", + "src": "4891:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "4861:18:19", + "nodeType": "YulIdentifier", + "src": "4861:18:19" + }, + "nativeSrc": "4861:48:19", + "nodeType": "YulFunctionCall", + "src": "4861:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4846:6:19", + "nodeType": "YulIdentifier", + "src": "4846:6:19" + }, + "nativeSrc": "4846:64:19", + "nodeType": "YulFunctionCall", + "src": "4846:64:19" + }, + "nativeSrc": "4846:64:19", + "nodeType": "YulExpressionStatement", + "src": "4846:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "4751:7:19", + "nodeType": "YulIdentifier", + "src": "4751:7:19" + }, + { + "name": "newLen", + "nativeSrc": "4760:6:19", + "nodeType": "YulIdentifier", + "src": "4760:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4748:2:19", + "nodeType": "YulIdentifier", + "src": "4748:2:19" + }, + "nativeSrc": "4748:19:19", + "nodeType": "YulFunctionCall", + "src": "4748:19:19" + }, + "nativeSrc": "4745:179:19", + "nodeType": "YulIf", + "src": "4745:179:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "4944:4:19", + "nodeType": "YulIdentifier", + "src": "4944:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4958:6:19", + "nodeType": "YulIdentifier", + "src": "4958:6:19" + }, + { + "kind": "number", + "nativeSrc": "4966:1:19", + "nodeType": "YulLiteral", + "src": "4966:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4954:3:19", + "nodeType": "YulIdentifier", + "src": "4954:3:19" + }, + "nativeSrc": "4954:14:19", + "nodeType": "YulFunctionCall", + "src": "4954:14:19" + }, + { + "kind": "number", + "nativeSrc": "4970:1:19", + "nodeType": "YulLiteral", + "src": "4970:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4950:3:19", + "nodeType": "YulIdentifier", + "src": "4950:3:19" + }, + "nativeSrc": "4950:22:19", + "nodeType": "YulFunctionCall", + "src": "4950:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4937:6:19", + "nodeType": "YulIdentifier", + "src": "4937:6:19" + }, + "nativeSrc": "4937:36:19", + "nodeType": "YulFunctionCall", + "src": "4937:36:19" + }, + "nativeSrc": "4937:36:19", + "nodeType": "YulExpressionStatement", + "src": "4937:36:19" + } + ] + }, + "nativeSrc": "4365:618:19", + "nodeType": "YulCase", + "src": "4365:618:19", + "value": { + "kind": "number", + "nativeSrc": "4370:1:19", + "nodeType": "YulLiteral", + "src": "4370:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "5000:222:19", + "nodeType": "YulBlock", + "src": "5000:222:19", + "statements": [ + { + "nativeSrc": "5014:14:19", + "nodeType": "YulVariableDeclaration", + "src": "5014:14:19", + "value": { + "kind": "number", + "nativeSrc": "5027:1:19", + "nodeType": "YulLiteral", + "src": "5027:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5018:5:19", + "nodeType": "YulTypedName", + "src": "5018:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5051:67:19", + "nodeType": "YulBlock", + "src": "5051:67:19", + "statements": [ + { + "nativeSrc": "5069:35:19", + "nodeType": "YulAssignment", + "src": "5069:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "5088:3:19", + "nodeType": "YulIdentifier", + "src": "5088:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "5093:9:19", + "nodeType": "YulIdentifier", + "src": "5093:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5084:3:19", + "nodeType": "YulIdentifier", + "src": "5084:3:19" + }, + "nativeSrc": "5084:19:19", + "nodeType": "YulFunctionCall", + "src": "5084:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5078:5:19", + "nodeType": "YulIdentifier", + "src": "5078:5:19" + }, + "nativeSrc": "5078:26:19", + "nodeType": "YulFunctionCall", + "src": "5078:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5069:5:19", + "nodeType": "YulIdentifier", + "src": "5069:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "5044:6:19", + "nodeType": "YulIdentifier", + "src": "5044:6:19" + }, + "nativeSrc": "5041:77:19", + "nodeType": "YulIf", + "src": "5041:77:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5138:4:19", + "nodeType": "YulIdentifier", + "src": "5138:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5197:5:19", + "nodeType": "YulIdentifier", + "src": "5197:5:19" + }, + { + "name": "newLen", + "nativeSrc": "5204:6:19", + "nodeType": "YulIdentifier", + "src": "5204:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "5144:52:19", + "nodeType": "YulIdentifier", + "src": "5144:52:19" + }, + "nativeSrc": "5144:67:19", + "nodeType": "YulFunctionCall", + "src": "5144:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5131:6:19", + "nodeType": "YulIdentifier", + "src": "5131:6:19" + }, + "nativeSrc": "5131:81:19", + "nodeType": "YulFunctionCall", + "src": "5131:81:19" + }, + "nativeSrc": "5131:81:19", + "nodeType": "YulExpressionStatement", + "src": "5131:81:19" + } + ] + }, + "nativeSrc": "4992:230:19", + "nodeType": "YulCase", + "src": "4992:230:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "4345:6:19", + "nodeType": "YulIdentifier", + "src": "4345:6:19" + }, + { + "kind": "number", + "nativeSrc": "4353:2:19", + "nodeType": "YulLiteral", + "src": "4353:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4342:2:19", + "nodeType": "YulIdentifier", + "src": "4342:2:19" + }, + "nativeSrc": "4342:14:19", + "nodeType": "YulFunctionCall", + "src": "4342:14:19" + }, + "nativeSrc": "4335:887:19", + "nodeType": "YulSwitch", + "src": "4335:887:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "3833:1395:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "3914:4:19", + "nodeType": "YulTypedName", + "src": "3914:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "3920:3:19", + "nodeType": "YulTypedName", + "src": "3920:3:19", + "type": "" + } + ], + "src": "3833:1395:19" + }, + { + "body": { + "nativeSrc": "5279:81:19", + "nodeType": "YulBlock", + "src": "5279:81:19", + "statements": [ + { + "nativeSrc": "5289:65:19", + "nodeType": "YulAssignment", + "src": "5289:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5304:5:19", + "nodeType": "YulIdentifier", + "src": "5304:5:19" + }, + { + "kind": "number", + "nativeSrc": "5311:42:19", + "nodeType": "YulLiteral", + "src": "5311:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5300:3:19", + "nodeType": "YulIdentifier", + "src": "5300:3:19" + }, + "nativeSrc": "5300:54:19", + "nodeType": "YulFunctionCall", + "src": "5300:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5289:7:19", + "nodeType": "YulIdentifier", + "src": "5289:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "5234:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5261:5:19", + "nodeType": "YulTypedName", + "src": "5261:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5271:7:19", + "nodeType": "YulTypedName", + "src": "5271:7:19", + "type": "" + } + ], + "src": "5234:126:19" + }, + { + "body": { + "nativeSrc": "5411:51:19", + "nodeType": "YulBlock", + "src": "5411:51:19", + "statements": [ + { + "nativeSrc": "5421:35:19", + "nodeType": "YulAssignment", + "src": "5421:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5450:5:19", + "nodeType": "YulIdentifier", + "src": "5450:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "5432:17:19", + "nodeType": "YulIdentifier", + "src": "5432:17:19" + }, + "nativeSrc": "5432:24:19", + "nodeType": "YulFunctionCall", + "src": "5432:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "5421:7:19", + "nodeType": "YulIdentifier", + "src": "5421:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "5366:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5393:5:19", + "nodeType": "YulTypedName", + "src": "5393:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "5403:7:19", + "nodeType": "YulTypedName", + "src": "5403:7:19", + "type": "" + } + ], + "src": "5366:96:19" + }, + { + "body": { + "nativeSrc": "5533:53:19", + "nodeType": "YulBlock", + "src": "5533:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5550:3:19", + "nodeType": "YulIdentifier", + "src": "5550:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5573:5:19", + "nodeType": "YulIdentifier", + "src": "5573:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "5555:17:19", + "nodeType": "YulIdentifier", + "src": "5555:17:19" + }, + "nativeSrc": "5555:24:19", + "nodeType": "YulFunctionCall", + "src": "5555:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5543:6:19", + "nodeType": "YulIdentifier", + "src": "5543:6:19" + }, + "nativeSrc": "5543:37:19", + "nodeType": "YulFunctionCall", + "src": "5543:37:19" + }, + "nativeSrc": "5543:37:19", + "nodeType": "YulExpressionStatement", + "src": "5543:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5468:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5521:5:19", + "nodeType": "YulTypedName", + "src": "5521:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5528:3:19", + "nodeType": "YulTypedName", + "src": "5528:3:19", + "type": "" + } + ], + "src": "5468:118:19" + }, + { + "body": { + "nativeSrc": "5690:124:19", + "nodeType": "YulBlock", + "src": "5690:124:19", + "statements": [ + { + "nativeSrc": "5700:26:19", + "nodeType": "YulAssignment", + "src": "5700:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5712:9:19", + "nodeType": "YulIdentifier", + "src": "5712:9:19" + }, + { + "kind": "number", + "nativeSrc": "5723:2:19", + "nodeType": "YulLiteral", + "src": "5723:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5708:3:19", + "nodeType": "YulIdentifier", + "src": "5708:3:19" + }, + "nativeSrc": "5708:18:19", + "nodeType": "YulFunctionCall", + "src": "5708:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5700:4:19", + "nodeType": "YulIdentifier", + "src": "5700:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5780:6:19", + "nodeType": "YulIdentifier", + "src": "5780:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5793:9:19", + "nodeType": "YulIdentifier", + "src": "5793:9:19" + }, + { + "kind": "number", + "nativeSrc": "5804:1:19", + "nodeType": "YulLiteral", + "src": "5804:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5789:3:19", + "nodeType": "YulIdentifier", + "src": "5789:3:19" + }, + "nativeSrc": "5789:17:19", + "nodeType": "YulFunctionCall", + "src": "5789:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "5736:43:19", + "nodeType": "YulIdentifier", + "src": "5736:43:19" + }, + "nativeSrc": "5736:71:19", + "nodeType": "YulFunctionCall", + "src": "5736:71:19" + }, + "nativeSrc": "5736:71:19", + "nodeType": "YulExpressionStatement", + "src": "5736:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "5592:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5662:9:19", + "nodeType": "YulTypedName", + "src": "5662:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5674:6:19", + "nodeType": "YulTypedName", + "src": "5674:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5685:4:19", + "nodeType": "YulTypedName", + "src": "5685:4:19", + "type": "" + } + ], + "src": "5592:222:19" + } + ] + }, + "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n 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}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040526000600855655af3107a40006009556df684df56c3e01bc6c73200000000600a556001600b55604051806060016040528060358152602001620038aa60359139600c9081620000549190620004c3565b503480156200006257600080fd5b50336040518060400160405280600a81526020017f43617665506172747979000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f43505900000000000000000000000000000000000000000000000000000000008152508160009081620000e19190620004c3565b508060019081620000f39190620004c3565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200016b5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001629190620005ef565b60405180910390fd5b6200017c816200018360201b60201c565b506200060c565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002cb57607f821691505b602082108103620002e157620002e062000283565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200034b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200030c565b6200035786836200030c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003a46200039e62000398846200036f565b62000379565b6200036f565b9050919050565b6000819050919050565b620003c08362000383565b620003d8620003cf82620003ab565b84845462000319565b825550505050565b600090565b620003ef620003e0565b620003fc818484620003b5565b505050565b5b81811015620004245762000418600082620003e5565b60018101905062000402565b5050565b601f82111562000473576200043d81620002e7565b6200044884620002fc565b8101602085101562000458578190505b620004706200046785620002fc565b83018262000401565b50505b505050565b600082821c905092915050565b6000620004986000198460080262000478565b1980831691505092915050565b6000620004b3838362000485565b9150826002028217905092915050565b620004ce8262000249565b67ffffffffffffffff811115620004ea57620004e962000254565b5b620004f68254620002b2565b6200050382828562000428565b600060209050601f8311600181146200053b576000841562000526578287015190505b620005328582620004a5565b865550620005a2565b601f1984166200054b86620002e7565b60005b8281101562000575578489015182556001820191506020850194506020810190506200054e565b8683101562000595578489015162000591601f89168262000485565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005d782620005aa565b9050919050565b620005e981620005ca565b82525050565b6000602082019050620006066000830184620005de565b92915050565b61328e806200061c6000396000f3fe6080604052600436106101815760003560e01c806370a08231116100d1578063b88d4fde1161008a578063cbdede7711610064578063cbdede7714610561578063d5abeb011461059e578063e985e9c5146105c9578063f2fde38b1461060657610181565b8063b88d4fde146104df578063c634d03214610508578063c87b56dd1461052457610181565b806370a08231146103e3578063715018a6146104205780638da5cb5b14610437578063918b5be11461046257806395d89b411461048b578063a22cb465146104b657610181565b806324600fc31161013e578063453c231011610118578063453c23101461032557806350516808146103505780636352211e1461037b5780636817c76c146103b857610181565b806324600fc3146102a85780633a5844ff146102bf57806342842e0e146102fc57610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631f21bfbf1461025457806323b872dd1461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906123da565b61062f565b6040516101ba9190612422565b60405180910390f35b3480156101cf57600080fd5b506101d8610641565b6040516101e591906124cd565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612525565b6106d3565b6040516102229190612593565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906125da565b6106ef565b005b34801561026057600080fd5b50610269610705565b6040516102769190612629565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612644565b61070b565b005b3480156102b457600080fd5b506102bd61080d565b005b3480156102cb57600080fd5b506102e660048036038101906102e19190612525565b610938565b6040516102f39190612629565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612644565b610950565b005b34801561033157600080fd5b5061033a610970565b6040516103479190612629565b60405180910390f35b34801561035c57600080fd5b50610365610976565b6040516103729190612629565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190612525565b6109bd565b6040516103af9190612593565b60405180910390f35b3480156103c457600080fd5b506103cd6109cf565b6040516103da9190612629565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190612697565b6109d5565b6040516104179190612629565b60405180910390f35b34801561042c57600080fd5b50610435610a8f565b005b34801561044357600080fd5b5061044c610aa3565b6040516104599190612593565b60405180910390f35b34801561046e57600080fd5b50610489600480360381019061048491906127f9565b610acd565b005b34801561049757600080fd5b506104a0610b9d565b6040516104ad91906124cd565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d8919061286e565b610c2f565b005b3480156104eb57600080fd5b506105066004803603810190610501919061294f565b610c45565b005b610522600480360381019061051d9190612525565b610c62565b005b34801561053057600080fd5b5061054b60048036038101906105469190612525565b610d8e565b60405161055891906124cd565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190612525565b610da0565b6040516105959190612629565b60405180910390f35b3480156105aa57600080fd5b506105b3610dbd565b6040516105c09190612629565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb91906129d2565b610dc3565b6040516105fd9190612422565b60405180910390f35b34801561061257600080fd5b5061062d60048036038101906106289190612697565b610e57565b005b600061063a82610edd565b9050919050565b60606000805461065090612a41565b80601f016020809104026020016040519081016040528092919081815260200182805461067c90612a41565b80156106c95780601f1061069e576101008083540402835291602001916106c9565b820191906000526020600020905b8154815290600101906020018083116106ac57829003601f168201915b5050505050905090565b60006106de82610f3e565b506106e882610fc6565b9050919050565b61070182826106fc611003565b61100b565b5050565b60085481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361077d5760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016107749190612593565b60405180910390fd5b6000610791838361078c611003565b61101d565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610807578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016107fe93929190612a72565b60405180910390fd5b50505050565b610815610aa3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087990612af5565b60405180910390fd5b600061088c610aa3565b73ffffffffffffffffffffffffffffffffffffffff16476040516108af90612b46565b60006040518083038185875af1925050503d80600081146108ec576040519150601f19603f3d011682016040523d82523d6000602084013e6108f1565b606091505b5050905080610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90612ba7565b60405180910390fd5b50565b600e6020528060005260406000206000915090505481565b61096b83838360405180602001604052806000815250610c45565b505050565b600b5481565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006109c882610f3e565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a485760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610a3f9190612593565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a97611237565b610aa160006112be565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ad5610aa3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990612af5565b60405180910390fd5b610b4b81611384565b610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612c39565b60405180910390fd5b80600c9081610b999190612e05565b5050565b606060018054610bac90612a41565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd890612a41565b8015610c255780601f10610bfa57610100808354040283529160200191610c25565b820191906000526020600020905b815481529060010190602001808311610c0857829003601f168201915b5050505050905090565b610c41610c3a611003565b83836114dd565b5050565b610c5084848461070b565b610c5c8484848461164c565b50505050565b3460095414610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90612f23565b60405180910390fd5b600b54600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612f8f565b60405180910390fd5b6001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d7a9190612fde565b92505081905550610d8b3382611803565b50565b6060610d99826118dd565b9050919050565b6000600e6000838152602001908152602001600020549050919050565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e5f611237565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ed15760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ec89190612593565b60405180910390fd5b610eda816112be565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f375750610f36826119f0565b5b9050919050565b600080610f4a83611ad2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fbd57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610fb49190612629565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6110188383836001611b0f565b505050565b60008061102984611ad2565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461106b5761106a818486611cd4565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110fc576110ad600085600080611b0f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461117f576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61123f611003565b73ffffffffffffffffffffffffffffffffffffffff1661125d610aa3565b73ffffffffffffffffffffffffffffffffffffffff16146112bc57611280611003565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016112b39190612593565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060006040518060400160405280600781526020017f697066733a2f2f0000000000000000000000000000000000000000000000000081525090508051825110156113d9576000925050506114d8565b60005b815183516113ea9190613012565b81116114d05760006001905060005b83518110156114a85783818151811061141557611414613046565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191685828561144f9190612fde565b815181106114605761145f613046565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461149b57600091506114a8565b80806001019150506113f9565b5080156114bc5760019450505050506114d8565b5080806114c890613075565b9150506113dc565b506000925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154e57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016115459190612593565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161163f9190612422565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156117fd578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611690611003565b8685856040518563ffffffff1660e01b81526004016116b29493929190613112565b6020604051808303816000875af19250505080156116ee57506040513d601f19601f820116820180604052508101906116eb9190613173565b60015b611772573d806000811461171e576040519150601f19603f3d011682016040523d82523d6000602084013e611723565b606091505b50600081510361176a57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016117619190612593565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146117fb57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016117f29190612593565b60405180910390fd5b505b50505050565b600060085490506008600081548092919061181d90613075565b919050555061182c8382611d98565b6118c081600c805461183d90612a41565b80601f016020809104026020016040519081016040528092919081815260200182805461186990612a41565b80156118b65780601f1061188b576101008083540402835291602001916118b6565b820191906000526020600020905b81548152906001019060200180831161189957829003601f168201915b5050505050611db6565b81600e600083815260200190815260200160002081905550505050565b60606118e882610f3e565b50600060066000848152602001908152602001600020805461190990612a41565b80601f016020809104026020016040519081016040528092919081815260200182805461193590612a41565b80156119825780601f1061195757610100808354040283529160200191611982565b820191906000526020600020905b81548152906001019060200180831161196557829003601f168201915b505050505090506000611993611e12565b905060008151036119a85781925050506119eb565b6000825111156119dd5780826040516020016119c59291906131dc565b604051602081830303815290604052925050506119eb565b6119e684611ea4565b925050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611abb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611acb5750611aca82611f0d565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b485750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c7c576000611b5884610f3e565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bc357508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611bd65750611bd48184610dc3565b155b15611c1857826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c0f9190612593565b60405180910390fd5b8115611c7a57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611cdf838383611f77565b611d9357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d5457806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d4b9190612629565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d8a929190613200565b60405180910390fd5b505050565b611db2828260405180602001604052806000815250612038565b5050565b80600660008481526020019081526020016000209081611dd69190612e05565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051611e069190612629565b60405180910390a15050565b6060600c8054611e2190612a41565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4d90612a41565b8015611e9a5780601f10611e6f57610100808354040283529160200191611e9a565b820191906000526020600020905b815481529060010190602001808311611e7d57829003601f168201915b5050505050905090565b6060611eaf82610f3e565b506000611eba611e12565b90506000815111611eda5760405180602001604052806000815250611f05565b80611ee484612054565b604051602001611ef59291906131dc565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561202f57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ff05750611fef8484610dc3565b5b8061202e57508273ffffffffffffffffffffffffffffffffffffffff1661201683610fc6565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6120428383612122565b61204f600084848461164c565b505050565b6060600060016120638461221b565b01905060008167ffffffffffffffff811115612082576120816126ce565b5b6040519080825280601f01601f1916602001820160405280156120b45781602001600182028036833780820191505090505b509050600082602001820190505b600115612117578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161210b5761210a613229565b5b049450600085036120c2575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121945760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161218b9190612593565b60405180910390fd5b60006121a28383600061101d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146122165760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161220d9190612593565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612279577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161226f5761226e613229565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106122b6576d04ee2d6d415b85acef810000000083816122ac576122ab613229565b5b0492506020810190505b662386f26fc1000083106122e557662386f26fc1000083816122db576122da613229565b5b0492506010810190505b6305f5e100831061230e576305f5e100838161230457612303613229565b5b0492506008810190505b612710831061233357612710838161232957612328613229565b5b0492506004810190505b60648310612356576064838161234c5761234b613229565b5b0492506002810190505b600a8310612365576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6123b781612382565b81146123c257600080fd5b50565b6000813590506123d4816123ae565b92915050565b6000602082840312156123f0576123ef612378565b5b60006123fe848285016123c5565b91505092915050565b60008115159050919050565b61241c81612407565b82525050565b60006020820190506124376000830184612413565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561247757808201518184015260208101905061245c565b60008484015250505050565b6000601f19601f8301169050919050565b600061249f8261243d565b6124a98185612448565b93506124b9818560208601612459565b6124c281612483565b840191505092915050565b600060208201905081810360008301526124e78184612494565b905092915050565b6000819050919050565b612502816124ef565b811461250d57600080fd5b50565b60008135905061251f816124f9565b92915050565b60006020828403121561253b5761253a612378565b5b600061254984828501612510565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257d82612552565b9050919050565b61258d81612572565b82525050565b60006020820190506125a86000830184612584565b92915050565b6125b781612572565b81146125c257600080fd5b50565b6000813590506125d4816125ae565b92915050565b600080604083850312156125f1576125f0612378565b5b60006125ff858286016125c5565b925050602061261085828601612510565b9150509250929050565b612623816124ef565b82525050565b600060208201905061263e600083018461261a565b92915050565b60008060006060848603121561265d5761265c612378565b5b600061266b868287016125c5565b935050602061267c868287016125c5565b925050604061268d86828701612510565b9150509250925092565b6000602082840312156126ad576126ac612378565b5b60006126bb848285016125c5565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61270682612483565b810181811067ffffffffffffffff82111715612725576127246126ce565b5b80604052505050565b600061273861236e565b905061274482826126fd565b919050565b600067ffffffffffffffff821115612764576127636126ce565b5b61276d82612483565b9050602081019050919050565b82818337600083830152505050565b600061279c61279784612749565b61272e565b9050828152602081018484840111156127b8576127b76126c9565b5b6127c384828561277a565b509392505050565b600082601f8301126127e0576127df6126c4565b5b81356127f0848260208601612789565b91505092915050565b60006020828403121561280f5761280e612378565b5b600082013567ffffffffffffffff81111561282d5761282c61237d565b5b612839848285016127cb565b91505092915050565b61284b81612407565b811461285657600080fd5b50565b60008135905061286881612842565b92915050565b6000806040838503121561288557612884612378565b5b6000612893858286016125c5565b92505060206128a485828601612859565b9150509250929050565b600067ffffffffffffffff8211156128c9576128c86126ce565b5b6128d282612483565b9050602081019050919050565b60006128f26128ed846128ae565b61272e565b90508281526020810184848401111561290e5761290d6126c9565b5b61291984828561277a565b509392505050565b600082601f830112612936576129356126c4565b5b81356129468482602086016128df565b91505092915050565b6000806000806080858703121561296957612968612378565b5b6000612977878288016125c5565b9450506020612988878288016125c5565b935050604061299987828801612510565b925050606085013567ffffffffffffffff8111156129ba576129b961237d565b5b6129c687828801612921565b91505092959194509250565b600080604083850312156129e9576129e8612378565b5b60006129f7858286016125c5565b9250506020612a08858286016125c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a5957607f821691505b602082108103612a6c57612a6b612a12565b5b50919050565b6000606082019050612a876000830186612584565b612a94602083018561261a565b612aa16040830184612584565b949350505050565b7f596f75277265206e6f7420746865206f776e6572000000000000000000000000600082015250565b6000612adf601483612448565b9150612aea82612aa9565b602082019050919050565b60006020820190508181036000830152612b0e81612ad2565b9050919050565b600081905092915050565b50565b6000612b30600083612b15565b9150612b3b82612b20565b600082019050919050565b6000612b5182612b23565b9150819050919050565b7f7769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612b91601183612448565b9150612b9c82612b5b565b602082019050919050565b60006020820190508181036000830152612bc081612b84565b9050919050565b7f496e76616c6964206173736574206d657461646174613a206d75737420696e6360008201527f6c7564652027697066733a2f2f27000000000000000000000000000000000000602082015250565b6000612c23602e83612448565b9150612c2e82612bc7565b604082019050919050565b60006020820190508181036000830152612c5281612c16565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612cbb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c7e565b612cc58683612c7e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612d02612cfd612cf8846124ef565b612cdd565b6124ef565b9050919050565b6000819050919050565b612d1c83612ce7565b612d30612d2882612d09565b848454612c8b565b825550505050565b600090565b612d45612d38565b612d50818484612d13565b505050565b5b81811015612d7457612d69600082612d3d565b600181019050612d56565b5050565b601f821115612db957612d8a81612c59565b612d9384612c6e565b81016020851015612da2578190505b612db6612dae85612c6e565b830182612d55565b50505b505050565b600082821c905092915050565b6000612ddc60001984600802612dbe565b1980831691505092915050565b6000612df58383612dcb565b9150826002028217905092915050565b612e0e8261243d565b67ffffffffffffffff811115612e2757612e266126ce565b5b612e318254612a41565b612e3c828285612d78565b600060209050601f831160018114612e6f5760008415612e5d578287015190505b612e678582612de9565b865550612ecf565b601f198416612e7d86612c59565b60005b82811015612ea557848901518255600182019150602085019450602081019050612e80565b86831015612ec25784890151612ebe601f891682612dcb565b8355505b6001600288020188555050505b505050505050565b7f77726f6e6720616d6f756e742073656e74000000000000000000000000000000600082015250565b6000612f0d601183612448565b9150612f1882612ed7565b602082019050919050565b60006020820190508181036000830152612f3c81612f00565b9050919050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b6000612f79601983612448565b9150612f8482612f43565b602082019050919050565b60006020820190508181036000830152612fa881612f6c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fe9826124ef565b9150612ff4836124ef565b925082820190508082111561300c5761300b612faf565b5b92915050565b600061301d826124ef565b9150613028836124ef565b92508282039050818111156130405761303f612faf565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613080826124ef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130b2576130b1612faf565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b60006130e4826130bd565b6130ee81856130c8565b93506130fe818560208601612459565b61310781612483565b840191505092915050565b60006080820190506131276000830187612584565b6131346020830186612584565b613141604083018561261a565b818103606083015261315381846130d9565b905095945050505050565b60008151905061316d816123ae565b92915050565b60006020828403121561318957613188612378565b5b60006131978482850161315e565b91505092915050565b600081905092915050565b60006131b68261243d565b6131c081856131a0565b93506131d0818560208601612459565b80840191505092915050565b60006131e882856131ab565b91506131f482846131ab565b91508190509392505050565b60006040820190506132156000830185612584565b613222602083018461261a565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220a2e05fc52ed70c893c250e5281de891d4224910b19e7b90e6f041e57f384922964736f6c63430008180033697066733a2f2f516d65586e7968726b4547664b7a515274757379574e464b636a795a784c63553170755276784c6b4b326b546553", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x8 SSTORE PUSH6 0x5AF3107A4000 PUSH1 0x9 SSTORE PUSH14 0xF684DF56C3E01BC6C73200000000 PUSH1 0xA SSTORE PUSH1 0x1 PUSH1 0xB SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x35 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x38AA PUSH1 0x35 SWAP2 CODECOPY PUSH1 0xC SWAP1 DUP2 PUSH3 0x54 SWAP2 SWAP1 PUSH3 0x4C3 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH3 0x62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4361766550617274797900000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4350590000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0xE1 SWAP2 SWAP1 PUSH3 0x4C3 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0xF3 SWAP2 SWAP1 PUSH3 0x4C3 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x16B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x162 SWAP2 SWAP1 PUSH3 0x5EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x17C DUP2 PUSH3 0x183 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x60C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x2CB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2E1 JUMPI PUSH3 0x2E0 PUSH3 0x283 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x34B PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x30C JUMP JUMPDEST PUSH3 0x357 DUP7 DUP4 PUSH3 0x30C JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3A4 PUSH3 0x39E PUSH3 0x398 DUP5 PUSH3 0x36F JUMP JUMPDEST PUSH3 0x379 JUMP JUMPDEST PUSH3 0x36F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3C0 DUP4 PUSH3 0x383 JUMP JUMPDEST PUSH3 0x3D8 PUSH3 0x3CF DUP3 PUSH3 0x3AB JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x319 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x3EF PUSH3 0x3E0 JUMP JUMPDEST PUSH3 0x3FC DUP2 DUP5 DUP5 PUSH3 0x3B5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x424 JUMPI PUSH3 0x418 PUSH1 0x0 DUP3 PUSH3 0x3E5 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x402 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x473 JUMPI PUSH3 0x43D DUP2 PUSH3 0x2E7 JUMP JUMPDEST PUSH3 0x448 DUP5 PUSH3 0x2FC JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x458 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x470 PUSH3 0x467 DUP6 PUSH3 0x2FC JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x401 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x498 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x478 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4B3 DUP4 DUP4 PUSH3 0x485 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x4CE DUP3 PUSH3 0x249 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x4EA JUMPI PUSH3 0x4E9 PUSH3 0x254 JUMP JUMPDEST JUMPDEST PUSH3 0x4F6 DUP3 SLOAD PUSH3 0x2B2 JUMP JUMPDEST PUSH3 0x503 DUP3 DUP3 DUP6 PUSH3 0x428 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x53B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x526 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x532 DUP6 DUP3 PUSH3 0x4A5 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x5A2 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x54B DUP7 PUSH3 0x2E7 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x575 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x54E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x595 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x591 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x485 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5D7 DUP3 PUSH3 0x5AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x5E9 DUP2 PUSH3 0x5CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x606 PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x5DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x328E DUP1 PUSH3 0x61C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x181 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCBDEDE77 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xCBDEDE77 EQ PUSH2 0x561 JUMPI DUP1 PUSH4 0xD5ABEB01 EQ PUSH2 0x59E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x5C9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x606 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x4DF JUMPI DUP1 PUSH4 0xC634D032 EQ PUSH2 0x508 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x524 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x437 JUMPI DUP1 PUSH4 0x918B5BE1 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x4B6 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x24600FC3 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x453C2310 GT PUSH2 0x118 JUMPI DUP1 PUSH4 0x453C2310 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x50516808 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x3B8 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x3A5844FF EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x2FC JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x1F21BFBF EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x27F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH2 0x641 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x210 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0x6D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x25DA JUMP JUMPDEST PUSH2 0x6EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0x705 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x2644 JUMP JUMPDEST PUSH2 0x70B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BD PUSH2 0x80D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x323 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x2644 JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x365 PUSH2 0x976 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0x9BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AF SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x9CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x405 SWAP2 SWAP1 PUSH2 0x2697 JUMP JUMPDEST PUSH2 0x9D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x417 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xA8F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH2 0xAA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x459 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x489 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x484 SWAP2 SWAP1 PUSH2 0x27F9 JUMP JUMPDEST PUSH2 0xACD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A0 PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AD SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D8 SWAP2 SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH2 0xC2F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x294F JUMP JUMPDEST PUSH2 0xC45 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x522 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x51D SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0xC62 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0xD8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x558 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x588 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x583 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0xDA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x595 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B3 PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5C0 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0x29D2 JUMP JUMPDEST PUSH2 0xDC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5FD SWAP2 SWAP1 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x628 SWAP2 SWAP1 PUSH2 0x2697 JUMP JUMPDEST PUSH2 0xE57 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH2 0x63A DUP3 PUSH2 0xEDD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x650 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67C SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x69E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6DE DUP3 PUSH2 0xF3E JUMP JUMPDEST POP PUSH2 0x6E8 DUP3 PUSH2 0xFC6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x701 DUP3 DUP3 PUSH2 0x6FC PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x100B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x77D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x774 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x791 DUP4 DUP4 PUSH2 0x78C PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x101D JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x807 JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7FE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x815 PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x882 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x879 SWAP1 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x88C PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0x8AF SWAP1 PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8EC 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 0x8F1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x935 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x92C SWAP1 PUSH2 0x2BA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH2 0x96B DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC45 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C8 DUP3 PUSH2 0xF3E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA48 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3F SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xA97 PUSH2 0x1237 JUMP JUMPDEST PUSH2 0xAA1 PUSH1 0x0 PUSH2 0x12BE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD5 PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB39 SWAP1 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4B DUP2 PUSH2 0x1384 JUMP JUMPDEST PUSH2 0xB8A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x2C39 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC SWAP1 DUP2 PUSH2 0xB99 SWAP2 SWAP1 PUSH2 0x2E05 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xBAC SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBD8 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC25 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBFA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC25 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC08 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC41 PUSH2 0xC3A PUSH2 0x1003 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x14DD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC50 DUP5 DUP5 DUP5 PUSH2 0x70B JUMP JUMPDEST PUSH2 0xC5C DUP5 DUP5 DUP5 DUP5 PUSH2 0x164C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE PUSH1 0x9 SLOAD EQ PUSH2 0xCA6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9D SWAP1 PUSH2 0x2F23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH1 0xD PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0xD2A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD21 SWAP1 PUSH2 0x2F8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xD 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 DUP3 DUP3 SLOAD PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x2FDE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xD8B CALLER DUP3 PUSH2 0x1803 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xD99 DUP3 PUSH2 0x18DD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH2 0xE5F PUSH2 0x1237 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xED1 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC8 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xEDA DUP2 PUSH2 0x12BE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF37 JUMPI POP PUSH2 0xF36 DUP3 PUSH2 0x19F0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF4A DUP4 PUSH2 0x1AD2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFBD JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFB4 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1018 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1B0F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1029 DUP5 PUSH2 0x1AD2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x106B JUMPI PUSH2 0x106A DUP2 DUP5 DUP7 PUSH2 0x1CD4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x10FC JUMPI PUSH2 0x10AD PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1B0F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x117F JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x123F PUSH2 0x1003 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x125D PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12BC JUMPI PUSH2 0x1280 PUSH2 0x1003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B3 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP DUP1 MLOAD DUP3 MLOAD LT ISZERO PUSH2 0x13D9 JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x14D8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP4 MLOAD PUSH2 0x13EA SWAP2 SWAP1 PUSH2 0x3012 JUMP JUMPDEST DUP2 GT PUSH2 0x14D0 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x14A8 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1415 JUMPI PUSH2 0x1414 PUSH2 0x3046 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP6 DUP3 DUP6 PUSH2 0x144F SWAP2 SWAP1 PUSH2 0x2FDE JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x1460 JUMPI PUSH2 0x145F PUSH2 0x3046 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x149B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x14A8 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x13F9 JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x14BC JUMPI PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x14D8 JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x14C8 SWAP1 PUSH2 0x3075 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x13DC JUMP JUMPDEST POP PUSH1 0x0 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x154E JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1545 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x163F SWAP2 SWAP1 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x17FD JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x1690 PUSH2 0x1003 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16B2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3112 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x16EE JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16EB SWAP2 SWAP1 PUSH2 0x3173 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1772 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x171E 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 0x1723 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x176A JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1761 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x17FB JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17F2 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x181D SWAP1 PUSH2 0x3075 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x182C DUP4 DUP3 PUSH2 0x1D98 JUMP JUMPDEST PUSH2 0x18C0 DUP2 PUSH1 0xC DUP1 SLOAD PUSH2 0x183D SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1869 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18B6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x188B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x18B6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1899 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x1DB6 JUMP JUMPDEST DUP2 PUSH1 0xE PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x18E8 DUP3 PUSH2 0xF3E JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x1909 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1935 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1982 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1957 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1982 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1965 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x1993 PUSH2 0x1E12 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x19A8 JUMPI DUP2 SWAP3 POP POP POP PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x19DD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x19C5 SWAP3 SWAP2 SWAP1 PUSH2 0x31DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP PUSH2 0x19EB JUMP JUMPDEST PUSH2 0x19E6 DUP5 PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1ABB JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1ACB JUMPI POP PUSH2 0x1ACA DUP3 PUSH2 0x1F0D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1B48 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1C7C JUMPI PUSH1 0x0 PUSH2 0x1B58 DUP5 PUSH2 0xF3E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1BC3 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1BD6 JUMPI POP PUSH2 0x1BD4 DUP2 DUP5 PUSH2 0xDC3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C18 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C0F SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1C7A JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH2 0x1CDF DUP4 DUP4 DUP4 PUSH2 0x1F77 JUMP JUMPDEST PUSH2 0x1D93 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D54 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D4B SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D8A SWAP3 SWAP2 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1DB2 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2038 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1DD6 SWAP2 SWAP1 PUSH2 0x2E05 JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1E06 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xC DUP1 SLOAD PUSH2 0x1E21 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E4D SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E9A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E6F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E9A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E7D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1EAF DUP3 PUSH2 0xF3E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1EBA PUSH2 0x1E12 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1EDA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1F05 JUMP JUMPDEST DUP1 PUSH2 0x1EE4 DUP5 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1EF5 SWAP3 SWAP2 SWAP1 PUSH2 0x31DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x202F JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1FF0 JUMPI POP PUSH2 0x1FEF DUP5 DUP5 PUSH2 0xDC3 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x202E JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2016 DUP4 PUSH2 0xFC6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2042 DUP4 DUP4 PUSH2 0x2122 JUMP JUMPDEST PUSH2 0x204F PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x164C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x2063 DUP5 PUSH2 0x221B JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2082 JUMPI PUSH2 0x2081 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x20B4 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x2117 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x210B JUMPI PUSH2 0x210A PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x20C2 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2194 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x218B SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21A2 DUP4 DUP4 PUSH1 0x0 PUSH2 0x101D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2216 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x220D SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x2279 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x226F JUMPI PUSH2 0x226E PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x22B6 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x22AC JUMPI PUSH2 0x22AB PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x22E5 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x22DB JUMPI PUSH2 0x22DA PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x230E JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2304 JUMPI PUSH2 0x2303 PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x2333 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x2329 JUMPI PUSH2 0x2328 PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x2356 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x234C JUMPI PUSH2 0x234B PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2365 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 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 0x23B7 DUP2 PUSH2 0x2382 JUMP JUMPDEST DUP2 EQ PUSH2 0x23C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23D4 DUP2 PUSH2 0x23AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F0 JUMPI PUSH2 0x23EF PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23FE DUP5 DUP3 DUP6 ADD PUSH2 0x23C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x241C DUP2 PUSH2 0x2407 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2437 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2413 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2477 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x245C JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x249F DUP3 PUSH2 0x243D JUMP JUMPDEST PUSH2 0x24A9 DUP2 DUP6 PUSH2 0x2448 JUMP JUMPDEST SWAP4 POP PUSH2 0x24B9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2459 JUMP JUMPDEST PUSH2 0x24C2 DUP2 PUSH2 0x2483 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x24E7 DUP2 DUP5 PUSH2 0x2494 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2502 DUP2 PUSH2 0x24EF JUMP JUMPDEST DUP2 EQ PUSH2 0x250D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x251F DUP2 PUSH2 0x24F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x253B JUMPI PUSH2 0x253A PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2549 DUP5 DUP3 DUP6 ADD PUSH2 0x2510 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 0x257D DUP3 PUSH2 0x2552 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x258D DUP2 PUSH2 0x2572 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25A8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2584 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25B7 DUP2 PUSH2 0x2572 JUMP JUMPDEST DUP2 EQ PUSH2 0x25C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25D4 DUP2 PUSH2 0x25AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25F1 JUMPI PUSH2 0x25F0 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25FF DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2610 DUP6 DUP3 DUP7 ADD PUSH2 0x2510 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2623 DUP2 PUSH2 0x24EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x263E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x261A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH2 0x265C PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x266B DUP7 DUP3 DUP8 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x267C DUP7 DUP3 DUP8 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x268D DUP7 DUP3 DUP8 ADD PUSH2 0x2510 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AD JUMPI PUSH2 0x26AC PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26BB DUP5 DUP3 DUP6 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2706 DUP3 PUSH2 0x2483 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2738 PUSH2 0x236E JUMP JUMPDEST SWAP1 POP PUSH2 0x2744 DUP3 DUP3 PUSH2 0x26FD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2764 JUMPI PUSH2 0x2763 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH2 0x276D DUP3 PUSH2 0x2483 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 0x279C PUSH2 0x2797 DUP5 PUSH2 0x2749 JUMP JUMPDEST PUSH2 0x272E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27B8 JUMPI PUSH2 0x27B7 PUSH2 0x26C9 JUMP JUMPDEST JUMPDEST PUSH2 0x27C3 DUP5 DUP3 DUP6 PUSH2 0x277A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27E0 JUMPI PUSH2 0x27DF PUSH2 0x26C4 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27F0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2789 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280F JUMPI PUSH2 0x280E PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282D JUMPI PUSH2 0x282C PUSH2 0x237D JUMP JUMPDEST JUMPDEST PUSH2 0x2839 DUP5 DUP3 DUP6 ADD PUSH2 0x27CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x284B DUP2 PUSH2 0x2407 JUMP JUMPDEST DUP2 EQ PUSH2 0x2856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2868 DUP2 PUSH2 0x2842 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2885 JUMPI PUSH2 0x2884 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2893 DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A4 DUP6 DUP3 DUP7 ADD PUSH2 0x2859 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28C9 JUMPI PUSH2 0x28C8 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH2 0x28D2 DUP3 PUSH2 0x2483 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F2 PUSH2 0x28ED DUP5 PUSH2 0x28AE JUMP JUMPDEST PUSH2 0x272E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x290E JUMPI PUSH2 0x290D PUSH2 0x26C9 JUMP JUMPDEST JUMPDEST PUSH2 0x2919 DUP5 DUP3 DUP6 PUSH2 0x277A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2936 JUMPI PUSH2 0x2935 PUSH2 0x26C4 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2946 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x28DF 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 0x2969 JUMPI PUSH2 0x2968 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2977 DUP8 DUP3 DUP9 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2988 DUP8 DUP3 DUP9 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2999 DUP8 DUP3 DUP9 ADD PUSH2 0x2510 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29BA JUMPI PUSH2 0x29B9 PUSH2 0x237D JUMP JUMPDEST JUMPDEST PUSH2 0x29C6 DUP8 DUP3 DUP9 ADD PUSH2 0x2921 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 0x29E9 JUMPI PUSH2 0x29E8 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x29F7 DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2A08 DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2A59 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2A6C JUMPI PUSH2 0x2A6B PUSH2 0x2A12 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2A87 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x2A94 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x261A JUMP JUMPDEST PUSH2 0x2AA1 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2584 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x596F75277265206E6F7420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ADF PUSH1 0x14 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2AEA DUP3 PUSH2 0x2AA9 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 0x2B0E DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B30 PUSH1 0x0 DUP4 PUSH2 0x2B15 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B3B DUP3 PUSH2 0x2B20 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B51 DUP3 PUSH2 0x2B23 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B91 PUSH1 0x11 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B9C DUP3 PUSH2 0x2B5B 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 0x2BC0 DUP2 PUSH2 0x2B84 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964206173736574206D657461646174613A206D75737420696E63 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C7564652027697066733A2F2F27000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C23 PUSH1 0x2E DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C2E DUP3 PUSH2 0x2BC7 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 0x2C52 DUP2 PUSH2 0x2C16 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2CBB PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2C7E JUMP JUMPDEST PUSH2 0x2CC5 DUP7 DUP4 PUSH2 0x2C7E JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D02 PUSH2 0x2CFD PUSH2 0x2CF8 DUP5 PUSH2 0x24EF JUMP JUMPDEST PUSH2 0x2CDD JUMP JUMPDEST PUSH2 0x24EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D1C DUP4 PUSH2 0x2CE7 JUMP JUMPDEST PUSH2 0x2D30 PUSH2 0x2D28 DUP3 PUSH2 0x2D09 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2C8B JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2D45 PUSH2 0x2D38 JUMP JUMPDEST PUSH2 0x2D50 DUP2 DUP5 DUP5 PUSH2 0x2D13 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2D74 JUMPI PUSH2 0x2D69 PUSH1 0x0 DUP3 PUSH2 0x2D3D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2D56 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2DB9 JUMPI PUSH2 0x2D8A DUP2 PUSH2 0x2C59 JUMP JUMPDEST PUSH2 0x2D93 DUP5 PUSH2 0x2C6E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2DA2 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2DB6 PUSH2 0x2DAE DUP6 PUSH2 0x2C6E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2D55 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DDC PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2DBE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DF5 DUP4 DUP4 PUSH2 0x2DCB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E0E DUP3 PUSH2 0x243D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E27 JUMPI PUSH2 0x2E26 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH2 0x2E31 DUP3 SLOAD PUSH2 0x2A41 JUMP JUMPDEST PUSH2 0x2E3C DUP3 DUP3 DUP6 PUSH2 0x2D78 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2E6F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2E5D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2E67 DUP6 DUP3 PUSH2 0x2DE9 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2ECF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2E7D DUP7 PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2EA5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2E80 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2EC2 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2EBE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2DCB JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x77726F6E6720616D6F756E742073656E74000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F0D PUSH1 0x11 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F18 DUP3 PUSH2 0x2ED7 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 0x2F3C DUP2 PUSH2 0x2F00 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6D696E7473207065722077616C6C657420657863656564656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F79 PUSH1 0x19 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F84 DUP3 PUSH2 0x2F43 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 0x2FA8 DUP2 PUSH2 0x2F6C 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 0x2FE9 DUP3 PUSH2 0x24EF JUMP JUMPDEST SWAP2 POP PUSH2 0x2FF4 DUP4 PUSH2 0x24EF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x300C JUMPI PUSH2 0x300B PUSH2 0x2FAF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x301D DUP3 PUSH2 0x24EF JUMP JUMPDEST SWAP2 POP PUSH2 0x3028 DUP4 PUSH2 0x24EF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3040 JUMPI PUSH2 0x303F PUSH2 0x2FAF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3080 DUP3 PUSH2 0x24EF JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x30B2 JUMPI PUSH2 0x30B1 PUSH2 0x2FAF JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD 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 PUSH2 0x30E4 DUP3 PUSH2 0x30BD JUMP JUMPDEST PUSH2 0x30EE DUP2 DUP6 PUSH2 0x30C8 JUMP JUMPDEST SWAP4 POP PUSH2 0x30FE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2459 JUMP JUMPDEST PUSH2 0x3107 DUP2 PUSH2 0x2483 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3127 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x3134 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x3141 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x261A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3153 DUP2 DUP5 PUSH2 0x30D9 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x316D DUP2 PUSH2 0x23AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3189 JUMPI PUSH2 0x3188 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3197 DUP5 DUP3 DUP6 ADD PUSH2 0x315E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31B6 DUP3 PUSH2 0x243D JUMP JUMPDEST PUSH2 0x31C0 DUP2 DUP6 PUSH2 0x31A0 JUMP JUMPDEST SWAP4 POP PUSH2 0x31D0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2459 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31E8 DUP3 DUP6 PUSH2 0x31AB JUMP JUMPDEST SWAP2 POP PUSH2 0x31F4 DUP3 DUP5 PUSH2 0x31AB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3215 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x3222 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x261A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG2 0xE0 PUSH0 0xC5 0x2E 0xD7 0xC DUP10 EXTCODECOPY 0x25 0xE MSTORE DUP2 0xDE DUP10 SAR TIMESTAMP 0x24 SWAP2 SIGNEXTEND NOT 0xE7 0xB9 0xE PUSH16 0x41E57F384922964736F6C6343000818 STOP CALLER PUSH10 0x7066733A2F2F516D6558 PUSH15 0x7968726B4547664B7A515274757379 JUMPI 0x4E CHAINID 0x4B PUSH4 0x6A795A78 0x4C PUSH4 0x55317075 MSTORE PUSH23 0x784C6B4B326B5465530000000000000000000000000000 ", + "sourceMap": "309:3391:17:-:0;;;490:1;462:29;;525:12;498:39;;571:19;544:46;;627:1;597:31;;635:95;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;920:44;;;;;;;;;;365:10;1381:113:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:5;1447;:13;;;;;;:::i;:::-;;1480:7;1470;:17;;;;;;:::i;:::-;;1381:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;309:3391:17;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:19:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;5234:126::-;5271:7;5311:42;5304:5;5300:54;5289:65;;5234:126;;;:::o;5366:96::-;5403:7;5432:24;5450:5;5432:24;:::i;:::-;5421:35;;5366:96;;;:::o;5468:118::-;5555:24;5573:5;5555:24;:::i;:::-;5550:3;5543:37;5468:118;;:::o;5592:222::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:71;5804:1;5793:9;5789:17;5780:6;5736:71;:::i;:::-;5592:222;;;;:::o;309:3391:17:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_approve_1128": { + "entryPoint": 4107, + "id": 1128, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1194": { + "entryPoint": 6927, + "id": 1194, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_3247": { + "entryPoint": 7698, + "id": 3247, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkAuthorized_776": { + "entryPoint": 7380, + "id": 776, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkOnERC721Received_1324": { + "entryPoint": 5708, + "id": 1324, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 4663, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getApproved_703": { + "entryPoint": 4038, + "id": 703, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isAuthorized_739": { + "entryPoint": 8055, + "id": 739, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_mint_932": { + "entryPoint": 8482, + "id": 932, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1626": { + "entryPoint": 4099, + "id": 1626, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_690": { + "entryPoint": 6866, + "id": 690, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireOwned_1260": { + "entryPoint": 3902, + "id": 1260, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_safeMint_947": { + "entryPoint": 7576, + "id": 947, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_973": { + "entryPoint": 8248, + "id": 973, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1231": { + "entryPoint": 5341, + "id": 1231, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setTokenURI_1585": { + "entryPoint": 7606, + "id": 1585, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 4798, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_update_882": { + "entryPoint": 4125, + "id": 882, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@approve_537": { + "entryPoint": 1775, + "id": 537, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_445": { + "entryPoint": 2517, + "id": 445, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@checkMetadata_3514": { + "entryPoint": 4996, + "id": 3514, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_554": { + "entryPoint": 1747, + "id": 554, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getEventIdForToken_3359": { + "entryPoint": 3488, + "id": 3359, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getMyWalletMints_3370": { + "entryPoint": 2422, + "id": 3370, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@isApprovedForAll_587": { + "entryPoint": 3523, + "id": 587, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_2809": { + "entryPoint": 8731, + "id": 2809, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@maxPerWallet_3219": { + "entryPoint": 2416, + "id": 3219, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@maxSupply_3216": { + "entryPoint": 3517, + "id": 3216, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@mintPrice_3213": { + "entryPoint": 2511, + "id": 3213, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@mintToken_3315": { + "entryPoint": 3170, + "id": 3315, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@name_467": { + "entryPoint": 1601, + "id": 467, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_458": { + "entryPoint": 2493, + "id": 458, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 2723, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 2703, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeMint_3278": { + "entryPoint": 6147, + "id": 3278, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@safeTransferFrom_651": { + "entryPoint": 2384, + "id": 651, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_677": { + "entryPoint": 3141, + "id": 677, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_570": { + "entryPoint": 3119, + "id": 570, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1509": { + "entryPoint": 3805, + "id": 1509, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1922": { + "entryPoint": 7949, + "id": 1922, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3347": { + "entryPoint": 1583, + "id": 3347, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_417": { + "entryPoint": 6640, + "id": 417, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_476": { + "entryPoint": 2973, + "id": 476, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_1712": { + "entryPoint": 8276, + "id": 1712, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenToEventMapping_3230": { + "entryPoint": 2360, + "id": 3230, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@tokenURI_1566": { + "entryPoint": 6365, + "id": 1566, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_3331": { + "entryPoint": 3470, + "id": 3331, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_512": { + "entryPoint": 7844, + "id": 512, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@totalMints_3210": { + "entryPoint": 1797, + "id": 3210, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@transferFrom_633": { + "entryPoint": 1803, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@transferOwnership_126": { + "entryPoint": 3671, + "id": 126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@updateMetadata_3428": { + "entryPoint": 2765, + "id": 3428, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@withdrawFunds_3402": { + "entryPoint": 2061, + "id": 3402, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 10463, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 10121, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 9669, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 10329, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 9157, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 12638, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 10529, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 10187, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 9488, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 9879, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 10706, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 9796, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 10575, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 10350, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 9690, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 9178, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 12659, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 10233, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 9509, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 9604, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 9235, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 12505, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 9364, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12715, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11286, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12032, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11140, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11043, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12140, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10962, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9754, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12764, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11078, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 9619, + "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": 12562, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 12800, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 10866, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 9250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 9421, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11321, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12067, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11175, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12175, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10997, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 9769, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 10030, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 9070, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 10414, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 10057, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 11353, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 12477, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 9277, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 12488, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11029, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 9288, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12704, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12254, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 12306, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 11640, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 9586, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 9223, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 9090, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 9554, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 9455, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 11605, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 11495, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 11781, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 10106, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 9305, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 11374, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 10817, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 11753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9981, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11485, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 12405, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 11723, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 12207, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 12841, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 10770, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 12358, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9934, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 11529, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9924, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9929, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 9085, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 9080, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 9347, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 11390, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 11710, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 11581, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938": { + "entryPoint": 11207, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac": { + "entryPoint": 11991, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6": { + "entryPoint": 11099, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": { + "entryPoint": 11040, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c": { + "entryPoint": 12099, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5": { + "entryPoint": 10921, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 11403, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 11539, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 9646, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 10306, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 9134, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 9465, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 11576, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:28594:19", + "nodeType": "YulBlock", + "src": "0:28594:19", + "statements": [ + { + "body": { + "nativeSrc": "47:35:19", + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nativeSrc": "57:19:19", + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:19", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:19", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nativeSrc": "67:9:19", + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:19", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:19", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nativeSrc": "177:28:19", + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:19", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:19", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:19", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:19", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nativeSrc": "300:28:19", + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:19", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:19", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:19", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:19", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nativeSrc": "378:105:19", + "nodeType": "YulBlock", + "src": "378:105:19", + "statements": [ + { + "nativeSrc": "388:89:19", + "nodeType": "YulAssignment", + "src": "388:89:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:19", + "nodeType": "YulIdentifier", + "src": "403:5:19" + }, + { + "kind": "number", + "nativeSrc": "410:66:19", + "nodeType": "YulLiteral", + "src": "410:66:19", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:19", + "nodeType": "YulIdentifier", + "src": "399:3:19" + }, + "nativeSrc": "399:78:19", + "nodeType": "YulFunctionCall", + "src": "399:78:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:19", + "nodeType": "YulIdentifier", + "src": "388:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:19", + "nodeType": "YulTypedName", + "src": "360:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:19", + "nodeType": "YulTypedName", + "src": "370:7:19", + "type": "" + } + ], + "src": "334:149:19" + }, + { + "body": { + "nativeSrc": "531:78:19", + "nodeType": "YulBlock", + "src": "531:78:19", + "statements": [ + { + "body": { + "nativeSrc": "587:16:19", + "nodeType": "YulBlock", + "src": "587:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:19", + "nodeType": "YulLiteral", + "src": "596:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:19", + "nodeType": "YulLiteral", + "src": "599:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:19", + "nodeType": "YulIdentifier", + "src": "589:6:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulFunctionCall", + "src": "589:12:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulExpressionStatement", + "src": "589:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:19", + "nodeType": "YulIdentifier", + "src": "554:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:19", + "nodeType": "YulIdentifier", + "src": "578:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:19", + "nodeType": "YulIdentifier", + "src": "561:16:19" + }, + "nativeSrc": "561:23:19", + "nodeType": "YulFunctionCall", + "src": "561:23:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:19", + "nodeType": "YulIdentifier", + "src": "551:2:19" + }, + "nativeSrc": "551:34:19", + "nodeType": "YulFunctionCall", + "src": "551:34:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:19", + "nodeType": "YulIdentifier", + "src": "544:6:19" + }, + "nativeSrc": "544:42:19", + "nodeType": "YulFunctionCall", + "src": "544:42:19" + }, + "nativeSrc": "541:62:19", + "nodeType": "YulIf", + "src": "541:62:19" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:19", + "nodeType": "YulTypedName", + "src": "524:5:19", + "type": "" + } + ], + "src": "489:120:19" + }, + { + "body": { + "nativeSrc": "666:86:19", + "nodeType": "YulBlock", + "src": "666:86:19", + "statements": [ + { + "nativeSrc": "676:29:19", + "nodeType": "YulAssignment", + "src": "676:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:19", + "nodeType": "YulIdentifier", + "src": "698:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:19", + "nodeType": "YulIdentifier", + "src": "685:12:19" + }, + "nativeSrc": "685:20:19", + "nodeType": "YulFunctionCall", + "src": "685:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:19", + "nodeType": "YulIdentifier", + "src": "676:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:19", + "nodeType": "YulIdentifier", + "src": "740:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:19", + "nodeType": "YulIdentifier", + "src": "714:25:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulFunctionCall", + "src": "714:32:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulExpressionStatement", + "src": "714:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:19", + "nodeType": "YulTypedName", + "src": "644:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:19", + "nodeType": "YulTypedName", + "src": "652:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:19", + "nodeType": "YulTypedName", + "src": "660:5:19", + "type": "" + } + ], + "src": "615:137:19" + }, + { + "body": { + "nativeSrc": "823:262:19", + "nodeType": "YulBlock", + "src": "823:262:19", + "statements": [ + { + "body": { + "nativeSrc": "869:83:19", + "nodeType": "YulBlock", + "src": "869:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:19", + "nodeType": "YulIdentifier", + "src": "871:77:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulFunctionCall", + "src": "871:79:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulExpressionStatement", + "src": "871:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:19", + "nodeType": "YulIdentifier", + "src": "844:7:19" + }, + { + "name": "headStart", + "nativeSrc": "853:9:19", + "nodeType": "YulIdentifier", + "src": "853:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:19", + "nodeType": "YulIdentifier", + "src": "840:3:19" + }, + "nativeSrc": "840:23:19", + "nodeType": "YulFunctionCall", + "src": "840:23:19" + }, + { + "kind": "number", + "nativeSrc": "865:2:19", + "nodeType": "YulLiteral", + "src": "865:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:19", + "nodeType": "YulIdentifier", + "src": "836:3:19" + }, + "nativeSrc": "836:32:19", + "nodeType": "YulFunctionCall", + "src": "836:32:19" + }, + "nativeSrc": "833:119:19", + "nodeType": "YulIf", + "src": "833:119:19" + }, + { + "nativeSrc": "962:116:19", + "nodeType": "YulBlock", + "src": "962:116:19", + "statements": [ + { + "nativeSrc": "977:15:19", + "nodeType": "YulVariableDeclaration", + "src": "977:15:19", + "value": { + "kind": "number", + "nativeSrc": "991:1:19", + "nodeType": "YulLiteral", + "src": "991:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:19", + "nodeType": "YulTypedName", + "src": "981:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:19", + "nodeType": "YulAssignment", + "src": "1006:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:19", + "nodeType": "YulIdentifier", + "src": "1040:9:19" + }, + { + "name": "offset", + "nativeSrc": "1051:6:19", + "nodeType": "YulIdentifier", + "src": "1051:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:19", + "nodeType": "YulIdentifier", + "src": "1036:3:19" + }, + "nativeSrc": "1036:22:19", + "nodeType": "YulFunctionCall", + "src": "1036:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:19", + "nodeType": "YulIdentifier", + "src": "1060:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:19", + "nodeType": "YulIdentifier", + "src": "1016:19:19" + }, + "nativeSrc": "1016:52:19", + "nodeType": "YulFunctionCall", + "src": "1016:52:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:19", + "nodeType": "YulIdentifier", + "src": "1006:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:19", + "nodeType": "YulTypedName", + "src": "793:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:19", + "nodeType": "YulTypedName", + "src": "804:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:19", + "nodeType": "YulTypedName", + "src": "816:6:19", + "type": "" + } + ], + "src": "758:327:19" + }, + { + "body": { + "nativeSrc": "1133:48:19", + "nodeType": "YulBlock", + "src": "1133:48:19", + "statements": [ + { + "nativeSrc": "1143:32:19", + "nodeType": "YulAssignment", + "src": "1143:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:19", + "nodeType": "YulIdentifier", + "src": "1168:5:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:19", + "nodeType": "YulIdentifier", + "src": "1161:6:19" + }, + "nativeSrc": "1161:13:19", + "nodeType": "YulFunctionCall", + "src": "1161:13:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:19", + "nodeType": "YulIdentifier", + "src": "1154:6:19" + }, + "nativeSrc": "1154:21:19", + "nodeType": "YulFunctionCall", + "src": "1154:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:19", + "nodeType": "YulIdentifier", + "src": "1143:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:19", + "nodeType": "YulTypedName", + "src": "1115:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:19", + "nodeType": "YulTypedName", + "src": "1125:7:19", + "type": "" + } + ], + "src": "1091:90:19" + }, + { + "body": { + "nativeSrc": "1246:50:19", + "nodeType": "YulBlock", + "src": "1246:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:19", + "nodeType": "YulIdentifier", + "src": "1263:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:19", + "nodeType": "YulIdentifier", + "src": "1283:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:19", + "nodeType": "YulIdentifier", + "src": "1268:14:19" + }, + "nativeSrc": "1268:21:19", + "nodeType": "YulFunctionCall", + "src": "1268:21:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:19", + "nodeType": "YulIdentifier", + "src": "1256:6:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulFunctionCall", + "src": "1256:34:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulExpressionStatement", + "src": "1256:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:19", + "nodeType": "YulTypedName", + "src": "1234:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:19", + "nodeType": "YulTypedName", + "src": "1241:3:19", + "type": "" + } + ], + "src": "1187:109:19" + }, + { + "body": { + "nativeSrc": "1394:118:19", + "nodeType": "YulBlock", + "src": "1394:118:19", + "statements": [ + { + "nativeSrc": "1404:26:19", + "nodeType": "YulAssignment", + "src": "1404:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:19", + "nodeType": "YulIdentifier", + "src": "1416:9:19" + }, + { + "kind": "number", + "nativeSrc": "1427:2:19", + "nodeType": "YulLiteral", + "src": "1427:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:19", + "nodeType": "YulIdentifier", + "src": "1412:3:19" + }, + "nativeSrc": "1412:18:19", + "nodeType": "YulFunctionCall", + "src": "1412:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:19", + "nodeType": "YulIdentifier", + "src": "1404:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:19", + "nodeType": "YulIdentifier", + "src": "1478:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:19", + "nodeType": "YulIdentifier", + "src": "1491:9:19" + }, + { + "kind": "number", + "nativeSrc": "1502:1:19", + "nodeType": "YulLiteral", + "src": "1502:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:19", + "nodeType": "YulIdentifier", + "src": "1487:3:19" + }, + "nativeSrc": "1487:17:19", + "nodeType": "YulFunctionCall", + "src": "1487:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:19", + "nodeType": "YulIdentifier", + "src": "1440:37:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulFunctionCall", + "src": "1440:65:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulExpressionStatement", + "src": "1440:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:19", + "nodeType": "YulTypedName", + "src": "1366:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:19", + "nodeType": "YulTypedName", + "src": "1378:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:19", + "nodeType": "YulTypedName", + "src": "1389:4:19", + "type": "" + } + ], + "src": "1302:210:19" + }, + { + "body": { + "nativeSrc": "1577:40:19", + "nodeType": "YulBlock", + "src": "1577:40:19", + "statements": [ + { + "nativeSrc": "1588:22:19", + "nodeType": "YulAssignment", + "src": "1588:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1604:5:19", + "nodeType": "YulIdentifier", + "src": "1604:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1598:5:19", + "nodeType": "YulIdentifier", + "src": "1598:5:19" + }, + "nativeSrc": "1598:12:19", + "nodeType": "YulFunctionCall", + "src": "1598:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "1588:6:19", + "nodeType": "YulIdentifier", + "src": "1588:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "1518:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1560:5:19", + "nodeType": "YulTypedName", + "src": "1560:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "1570:6:19", + "nodeType": "YulTypedName", + "src": "1570:6:19", + "type": "" + } + ], + "src": "1518:99:19" + }, + { + "body": { + "nativeSrc": "1719:73:19", + "nodeType": "YulBlock", + "src": "1719:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1736:3:19", + "nodeType": "YulIdentifier", + "src": "1736:3:19" + }, + { + "name": "length", + "nativeSrc": "1741:6:19", + "nodeType": "YulIdentifier", + "src": "1741:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1729:6:19", + "nodeType": "YulIdentifier", + "src": "1729:6:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulFunctionCall", + "src": "1729:19:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulExpressionStatement", + "src": "1729:19:19" + }, + { + "nativeSrc": "1757:29:19", + "nodeType": "YulAssignment", + "src": "1757:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1776:3:19", + "nodeType": "YulIdentifier", + "src": "1776:3:19" + }, + { + "kind": "number", + "nativeSrc": "1781:4:19", + "nodeType": "YulLiteral", + "src": "1781:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:19", + "nodeType": "YulIdentifier", + "src": "1772:3:19" + }, + "nativeSrc": "1772:14:19", + "nodeType": "YulFunctionCall", + "src": "1772:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "1757:11:19", + "nodeType": "YulIdentifier", + "src": "1757:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1623:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1691:3:19", + "nodeType": "YulTypedName", + "src": "1691:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1696:6:19", + "nodeType": "YulTypedName", + "src": "1696:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "1707:11:19", + "nodeType": "YulTypedName", + "src": "1707:11:19", + "type": "" + } + ], + "src": "1623:169:19" + }, + { + "body": { + "nativeSrc": "1860:184:19", + "nodeType": "YulBlock", + "src": "1860:184:19", + "statements": [ + { + "nativeSrc": "1870:10:19", + "nodeType": "YulVariableDeclaration", + "src": "1870:10:19", + "value": { + "kind": "number", + "nativeSrc": "1879:1:19", + "nodeType": "YulLiteral", + "src": "1879:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1874:1:19", + "nodeType": "YulTypedName", + "src": "1874:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1939:63:19", + "nodeType": "YulBlock", + "src": "1939:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1964:3:19", + "nodeType": "YulIdentifier", + "src": "1964:3:19" + }, + { + "name": "i", + "nativeSrc": "1969:1:19", + "nodeType": "YulIdentifier", + "src": "1969:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1960:3:19", + "nodeType": "YulIdentifier", + "src": "1960:3:19" + }, + "nativeSrc": "1960:11:19", + "nodeType": "YulFunctionCall", + "src": "1960:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1983:3:19", + "nodeType": "YulIdentifier", + "src": "1983:3:19" + }, + { + "name": "i", + "nativeSrc": "1988:1:19", + "nodeType": "YulIdentifier", + "src": "1988:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1979:3:19", + "nodeType": "YulIdentifier", + "src": "1979:3:19" + }, + "nativeSrc": "1979:11:19", + "nodeType": "YulFunctionCall", + "src": "1979:11:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1973:5:19", + "nodeType": "YulIdentifier", + "src": "1973:5:19" + }, + "nativeSrc": "1973:18:19", + "nodeType": "YulFunctionCall", + "src": "1973:18:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1953:6:19", + "nodeType": "YulIdentifier", + "src": "1953:6:19" + }, + "nativeSrc": "1953:39:19", + "nodeType": "YulFunctionCall", + "src": "1953:39:19" + }, + "nativeSrc": "1953:39:19", + "nodeType": "YulExpressionStatement", + "src": "1953:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1900:1:19", + "nodeType": "YulIdentifier", + "src": "1900:1:19" + }, + { + "name": "length", + "nativeSrc": "1903:6:19", + "nodeType": "YulIdentifier", + "src": "1903:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1897:2:19", + "nodeType": "YulIdentifier", + "src": "1897:2:19" + }, + "nativeSrc": "1897:13:19", + "nodeType": "YulFunctionCall", + "src": "1897:13:19" + }, + "nativeSrc": "1889:113:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1911:19:19", + "nodeType": "YulBlock", + "src": "1911:19:19", + "statements": [ + { + "nativeSrc": "1913:15:19", + "nodeType": "YulAssignment", + "src": "1913:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1922:1:19", + "nodeType": "YulIdentifier", + "src": "1922:1:19" + }, + { + "kind": "number", + "nativeSrc": "1925:2:19", + "nodeType": "YulLiteral", + "src": "1925:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1918:3:19", + "nodeType": "YulIdentifier", + "src": "1918:3:19" + }, + "nativeSrc": "1918:10:19", + "nodeType": "YulFunctionCall", + "src": "1918:10:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1913:1:19", + "nodeType": "YulIdentifier", + "src": "1913:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1893:3:19", + "nodeType": "YulBlock", + "src": "1893:3:19", + "statements": [] + }, + "src": "1889:113:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2022:3:19", + "nodeType": "YulIdentifier", + "src": "2022:3:19" + }, + { + "name": "length", + "nativeSrc": "2027:6:19", + "nodeType": "YulIdentifier", + "src": "2027:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2018:3:19", + "nodeType": "YulIdentifier", + "src": "2018:3:19" + }, + "nativeSrc": "2018:16:19", + "nodeType": "YulFunctionCall", + "src": "2018:16:19" + }, + { + "kind": "number", + "nativeSrc": "2036:1:19", + "nodeType": "YulLiteral", + "src": "2036:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2011:6:19", + "nodeType": "YulIdentifier", + "src": "2011:6:19" + }, + "nativeSrc": "2011:27:19", + "nodeType": "YulFunctionCall", + "src": "2011:27:19" + }, + "nativeSrc": "2011:27:19", + "nodeType": "YulExpressionStatement", + "src": "2011:27:19" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1798:246:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1842:3:19", + "nodeType": "YulTypedName", + "src": "1842:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1847:3:19", + "nodeType": "YulTypedName", + "src": "1847:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1852:6:19", + "nodeType": "YulTypedName", + "src": "1852:6:19", + "type": "" + } + ], + "src": "1798:246:19" + }, + { + "body": { + "nativeSrc": "2098:54:19", + "nodeType": "YulBlock", + "src": "2098:54:19", + "statements": [ + { + "nativeSrc": "2108:38:19", + "nodeType": "YulAssignment", + "src": "2108:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2126:5:19", + "nodeType": "YulIdentifier", + "src": "2126:5:19" + }, + { + "kind": "number", + "nativeSrc": "2133:2:19", + "nodeType": "YulLiteral", + "src": "2133:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2122:3:19", + "nodeType": "YulIdentifier", + "src": "2122:3:19" + }, + "nativeSrc": "2122:14:19", + "nodeType": "YulFunctionCall", + "src": "2122:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2142:2:19", + "nodeType": "YulLiteral", + "src": "2142:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2138:3:19", + "nodeType": "YulIdentifier", + "src": "2138:3:19" + }, + "nativeSrc": "2138:7:19", + "nodeType": "YulFunctionCall", + "src": "2138:7:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2118:3:19", + "nodeType": "YulIdentifier", + "src": "2118:3:19" + }, + "nativeSrc": "2118:28:19", + "nodeType": "YulFunctionCall", + "src": "2118:28:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2108:6:19", + "nodeType": "YulIdentifier", + "src": "2108:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "2050:102:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2081:5:19", + "nodeType": "YulTypedName", + "src": "2081:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2091:6:19", + "nodeType": "YulTypedName", + "src": "2091:6:19", + "type": "" + } + ], + "src": "2050:102:19" + }, + { + "body": { + "nativeSrc": "2250:285:19", + "nodeType": "YulBlock", + "src": "2250:285:19", + "statements": [ + { + "nativeSrc": "2260:53:19", + "nodeType": "YulVariableDeclaration", + "src": "2260:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2307:5:19", + "nodeType": "YulIdentifier", + "src": "2307:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "2274:32:19", + "nodeType": "YulIdentifier", + "src": "2274:32:19" + }, + "nativeSrc": "2274:39:19", + "nodeType": "YulFunctionCall", + "src": "2274:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2264:6:19", + "nodeType": "YulTypedName", + "src": "2264:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2322:78:19", + "nodeType": "YulAssignment", + "src": "2322:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2388:3:19", + "nodeType": "YulIdentifier", + "src": "2388:3:19" + }, + { + "name": "length", + "nativeSrc": "2393:6:19", + "nodeType": "YulIdentifier", + "src": "2393:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2329:58:19", + "nodeType": "YulIdentifier", + "src": "2329:58:19" + }, + "nativeSrc": "2329:71:19", + "nodeType": "YulFunctionCall", + "src": "2329:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2322:3:19", + "nodeType": "YulIdentifier", + "src": "2322:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2448:5:19", + "nodeType": "YulIdentifier", + "src": "2448:5:19" + }, + { + "kind": "number", + "nativeSrc": "2455:4:19", + "nodeType": "YulLiteral", + "src": "2455:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2444:3:19", + "nodeType": "YulIdentifier", + "src": "2444:3:19" + }, + "nativeSrc": "2444:16:19", + "nodeType": "YulFunctionCall", + "src": "2444:16:19" + }, + { + "name": "pos", + "nativeSrc": "2462:3:19", + "nodeType": "YulIdentifier", + "src": "2462:3:19" + }, + { + "name": "length", + "nativeSrc": "2467:6:19", + "nodeType": "YulIdentifier", + "src": "2467:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2409:34:19", + "nodeType": "YulIdentifier", + "src": "2409:34:19" + }, + "nativeSrc": "2409:65:19", + "nodeType": "YulFunctionCall", + "src": "2409:65:19" + }, + "nativeSrc": "2409:65:19", + "nodeType": "YulExpressionStatement", + "src": "2409:65:19" + }, + { + "nativeSrc": "2483:46:19", + "nodeType": "YulAssignment", + "src": "2483:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2494:3:19", + "nodeType": "YulIdentifier", + "src": "2494:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2521:6:19", + "nodeType": "YulIdentifier", + "src": "2521:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2499:21:19", + "nodeType": "YulIdentifier", + "src": "2499:21:19" + }, + "nativeSrc": "2499:29:19", + "nodeType": "YulFunctionCall", + "src": "2499:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2490:3:19", + "nodeType": "YulIdentifier", + "src": "2490:3:19" + }, + "nativeSrc": "2490:39:19", + "nodeType": "YulFunctionCall", + "src": "2490:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2483:3:19", + "nodeType": "YulIdentifier", + "src": "2483:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2158:377:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2231:5:19", + "nodeType": "YulTypedName", + "src": "2231:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2238:3:19", + "nodeType": "YulTypedName", + "src": "2238:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2246:3:19", + "nodeType": "YulTypedName", + "src": "2246:3:19", + "type": "" + } + ], + "src": "2158:377:19" + }, + { + "body": { + "nativeSrc": "2659:195:19", + "nodeType": "YulBlock", + "src": "2659:195:19", + "statements": [ + { + "nativeSrc": "2669:26:19", + "nodeType": "YulAssignment", + "src": "2669:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2681:9:19", + "nodeType": "YulIdentifier", + "src": "2681:9:19" + }, + { + "kind": "number", + "nativeSrc": "2692:2:19", + "nodeType": "YulLiteral", + "src": "2692:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2677:3:19", + "nodeType": "YulIdentifier", + "src": "2677:3:19" + }, + "nativeSrc": "2677:18:19", + "nodeType": "YulFunctionCall", + "src": "2677:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2669:4:19", + "nodeType": "YulIdentifier", + "src": "2669:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2716:9:19", + "nodeType": "YulIdentifier", + "src": "2716:9:19" + }, + { + "kind": "number", + "nativeSrc": "2727:1:19", + "nodeType": "YulLiteral", + "src": "2727:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2712:3:19", + "nodeType": "YulIdentifier", + "src": "2712:3:19" + }, + "nativeSrc": "2712:17:19", + "nodeType": "YulFunctionCall", + "src": "2712:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "2735:4:19", + "nodeType": "YulIdentifier", + "src": "2735:4:19" + }, + { + "name": "headStart", + "nativeSrc": "2741:9:19", + "nodeType": "YulIdentifier", + "src": "2741:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2731:3:19", + "nodeType": "YulIdentifier", + "src": "2731:3:19" + }, + "nativeSrc": "2731:20:19", + "nodeType": "YulFunctionCall", + "src": "2731:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2705:6:19", + "nodeType": "YulIdentifier", + "src": "2705:6:19" + }, + "nativeSrc": "2705:47:19", + "nodeType": "YulFunctionCall", + "src": "2705:47:19" + }, + "nativeSrc": "2705:47:19", + "nodeType": "YulExpressionStatement", + "src": "2705:47:19" + }, + { + "nativeSrc": "2761:86:19", + "nodeType": "YulAssignment", + "src": "2761:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2833:6:19", + "nodeType": "YulIdentifier", + "src": "2833:6:19" + }, + { + "name": "tail", + "nativeSrc": "2842:4:19", + "nodeType": "YulIdentifier", + "src": "2842:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2769:63:19", + "nodeType": "YulIdentifier", + "src": "2769:63:19" + }, + "nativeSrc": "2769:78:19", + "nodeType": "YulFunctionCall", + "src": "2769:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2761:4:19", + "nodeType": "YulIdentifier", + "src": "2761:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2541:313:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2631:9:19", + "nodeType": "YulTypedName", + "src": "2631:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2643:6:19", + "nodeType": "YulTypedName", + "src": "2643:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2654:4:19", + "nodeType": "YulTypedName", + "src": "2654:4:19", + "type": "" + } + ], + "src": "2541:313:19" + }, + { + "body": { + "nativeSrc": "2905:32:19", + "nodeType": "YulBlock", + "src": "2905:32:19", + "statements": [ + { + "nativeSrc": "2915:16:19", + "nodeType": "YulAssignment", + "src": "2915:16:19", + "value": { + "name": "value", + "nativeSrc": "2926:5:19", + "nodeType": "YulIdentifier", + "src": "2926:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2915:7:19", + "nodeType": "YulIdentifier", + "src": "2915:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2860:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2887:5:19", + "nodeType": "YulTypedName", + "src": "2887:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2897:7:19", + "nodeType": "YulTypedName", + "src": "2897:7:19", + "type": "" + } + ], + "src": "2860:77:19" + }, + { + "body": { + "nativeSrc": "2986:79:19", + "nodeType": "YulBlock", + "src": "2986:79:19", + "statements": [ + { + "body": { + "nativeSrc": "3043:16:19", + "nodeType": "YulBlock", + "src": "3043:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3052:1:19", + "nodeType": "YulLiteral", + "src": "3052:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3055:1:19", + "nodeType": "YulLiteral", + "src": "3055:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3045:6:19", + "nodeType": "YulIdentifier", + "src": "3045:6:19" + }, + "nativeSrc": "3045:12:19", + "nodeType": "YulFunctionCall", + "src": "3045:12:19" + }, + "nativeSrc": "3045:12:19", + "nodeType": "YulExpressionStatement", + "src": "3045:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3009:5:19", + "nodeType": "YulIdentifier", + "src": "3009:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3034:5:19", + "nodeType": "YulIdentifier", + "src": "3034:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "3016:17:19", + "nodeType": "YulIdentifier", + "src": "3016:17:19" + }, + "nativeSrc": "3016:24:19", + "nodeType": "YulFunctionCall", + "src": "3016:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3006:2:19", + "nodeType": "YulIdentifier", + "src": "3006:2:19" + }, + "nativeSrc": "3006:35:19", + "nodeType": "YulFunctionCall", + "src": "3006:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2999:6:19", + "nodeType": "YulIdentifier", + "src": "2999:6:19" + }, + "nativeSrc": "2999:43:19", + "nodeType": "YulFunctionCall", + "src": "2999:43:19" + }, + "nativeSrc": "2996:63:19", + "nodeType": "YulIf", + "src": "2996:63:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2943:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2979:5:19", + "nodeType": "YulTypedName", + "src": "2979:5:19", + "type": "" + } + ], + "src": "2943:122:19" + }, + { + "body": { + "nativeSrc": "3123:87:19", + "nodeType": "YulBlock", + "src": "3123:87:19", + "statements": [ + { + "nativeSrc": "3133:29:19", + "nodeType": "YulAssignment", + "src": "3133:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3155:6:19", + "nodeType": "YulIdentifier", + "src": "3155:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3142:12:19", + "nodeType": "YulIdentifier", + "src": "3142:12:19" + }, + "nativeSrc": "3142:20:19", + "nodeType": "YulFunctionCall", + "src": "3142:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3133:5:19", + "nodeType": "YulIdentifier", + "src": "3133:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3198:5:19", + "nodeType": "YulIdentifier", + "src": "3198:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3171:26:19", + "nodeType": "YulIdentifier", + "src": "3171:26:19" + }, + "nativeSrc": "3171:33:19", + "nodeType": "YulFunctionCall", + "src": "3171:33:19" + }, + "nativeSrc": "3171:33:19", + "nodeType": "YulExpressionStatement", + "src": "3171:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "3071:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3101:6:19", + "nodeType": "YulTypedName", + "src": "3101:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3109:3:19", + "nodeType": "YulTypedName", + "src": "3109:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3117:5:19", + "nodeType": "YulTypedName", + "src": "3117:5:19", + "type": "" + } + ], + "src": "3071:139:19" + }, + { + "body": { + "nativeSrc": "3282:263:19", + "nodeType": "YulBlock", + "src": "3282:263:19", + "statements": [ + { + "body": { + "nativeSrc": "3328:83:19", + "nodeType": "YulBlock", + "src": "3328:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3330:77:19", + "nodeType": "YulIdentifier", + "src": "3330:77:19" + }, + "nativeSrc": "3330:79:19", + "nodeType": "YulFunctionCall", + "src": "3330:79:19" + }, + "nativeSrc": "3330:79:19", + "nodeType": "YulExpressionStatement", + "src": "3330:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3303:7:19", + "nodeType": "YulIdentifier", + "src": "3303:7:19" + }, + { + "name": "headStart", + "nativeSrc": "3312:9:19", + "nodeType": "YulIdentifier", + "src": "3312:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3299:3:19", + "nodeType": "YulIdentifier", + "src": "3299:3:19" + }, + "nativeSrc": "3299:23:19", + "nodeType": "YulFunctionCall", + "src": "3299:23:19" + }, + { + "kind": "number", + "nativeSrc": "3324:2:19", + "nodeType": "YulLiteral", + "src": "3324:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3295:3:19", + "nodeType": "YulIdentifier", + "src": "3295:3:19" + }, + "nativeSrc": "3295:32:19", + "nodeType": "YulFunctionCall", + "src": "3295:32:19" + }, + "nativeSrc": "3292:119:19", + "nodeType": "YulIf", + "src": "3292:119:19" + }, + { + "nativeSrc": "3421:117:19", + "nodeType": "YulBlock", + "src": "3421:117:19", + "statements": [ + { + "nativeSrc": "3436:15:19", + "nodeType": "YulVariableDeclaration", + "src": "3436:15:19", + "value": { + "kind": "number", + "nativeSrc": "3450:1:19", + "nodeType": "YulLiteral", + "src": "3450:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3440:6:19", + "nodeType": "YulTypedName", + "src": "3440:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "3465:63:19", + "nodeType": "YulAssignment", + "src": "3465:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3500:9:19", + "nodeType": "YulIdentifier", + "src": "3500:9:19" + }, + { + "name": "offset", + "nativeSrc": "3511:6:19", + "nodeType": "YulIdentifier", + "src": "3511:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3496:3:19", + "nodeType": "YulIdentifier", + "src": "3496:3:19" + }, + "nativeSrc": "3496:22:19", + "nodeType": "YulFunctionCall", + "src": "3496:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "3520:7:19", + "nodeType": "YulIdentifier", + "src": "3520:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3475:20:19", + "nodeType": "YulIdentifier", + "src": "3475:20:19" + }, + "nativeSrc": "3475:53:19", + "nodeType": "YulFunctionCall", + "src": "3475:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3465:6:19", + "nodeType": "YulIdentifier", + "src": "3465:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3216:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3252:9:19", + "nodeType": "YulTypedName", + "src": "3252:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3263:7:19", + "nodeType": "YulTypedName", + "src": "3263:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3275:6:19", + "nodeType": "YulTypedName", + "src": "3275:6:19", + "type": "" + } + ], + "src": "3216:329:19" + }, + { + "body": { + "nativeSrc": "3596:81:19", + "nodeType": "YulBlock", + "src": "3596:81:19", + "statements": [ + { + "nativeSrc": "3606:65:19", + "nodeType": "YulAssignment", + "src": "3606:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3621:5:19", + "nodeType": "YulIdentifier", + "src": "3621:5:19" + }, + { + "kind": "number", + "nativeSrc": "3628:42:19", + "nodeType": "YulLiteral", + "src": "3628:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3617:3:19", + "nodeType": "YulIdentifier", + "src": "3617:3:19" + }, + "nativeSrc": "3617:54:19", + "nodeType": "YulFunctionCall", + "src": "3617:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3606:7:19", + "nodeType": "YulIdentifier", + "src": "3606:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3551:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3578:5:19", + "nodeType": "YulTypedName", + "src": "3578:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3588:7:19", + "nodeType": "YulTypedName", + "src": "3588:7:19", + "type": "" + } + ], + "src": "3551:126:19" + }, + { + "body": { + "nativeSrc": "3728:51:19", + "nodeType": "YulBlock", + "src": "3728:51:19", + "statements": [ + { + "nativeSrc": "3738:35:19", + "nodeType": "YulAssignment", + "src": "3738:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3767:5:19", + "nodeType": "YulIdentifier", + "src": "3767:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3749:17:19", + "nodeType": "YulIdentifier", + "src": "3749:17:19" + }, + "nativeSrc": "3749:24:19", + "nodeType": "YulFunctionCall", + "src": "3749:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3738:7:19", + "nodeType": "YulIdentifier", + "src": "3738:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3683:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3710:5:19", + "nodeType": "YulTypedName", + "src": "3710:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3720:7:19", + "nodeType": "YulTypedName", + "src": "3720:7:19", + "type": "" + } + ], + "src": "3683:96:19" + }, + { + "body": { + "nativeSrc": "3850:53:19", + "nodeType": "YulBlock", + "src": "3850:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3867:3:19", + "nodeType": "YulIdentifier", + "src": "3867:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3890:5:19", + "nodeType": "YulIdentifier", + "src": "3890:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3872:17:19", + "nodeType": "YulIdentifier", + "src": "3872:17:19" + }, + "nativeSrc": "3872:24:19", + "nodeType": "YulFunctionCall", + "src": "3872:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3860:6:19", + "nodeType": "YulIdentifier", + "src": "3860:6:19" + }, + "nativeSrc": "3860:37:19", + "nodeType": "YulFunctionCall", + "src": "3860:37:19" + }, + "nativeSrc": "3860:37:19", + "nodeType": "YulExpressionStatement", + "src": "3860:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3785:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3838:5:19", + "nodeType": "YulTypedName", + "src": "3838:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3845:3:19", + "nodeType": "YulTypedName", + "src": "3845:3:19", + "type": "" + } + ], + "src": "3785:118:19" + }, + { + "body": { + "nativeSrc": "4007:124:19", + "nodeType": "YulBlock", + "src": "4007:124:19", + "statements": [ + { + "nativeSrc": "4017:26:19", + "nodeType": "YulAssignment", + "src": "4017:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4029:9:19", + "nodeType": "YulIdentifier", + "src": "4029:9:19" + }, + { + "kind": "number", + "nativeSrc": "4040:2:19", + "nodeType": "YulLiteral", + "src": "4040:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4025:3:19", + "nodeType": "YulIdentifier", + "src": "4025:3:19" + }, + "nativeSrc": "4025:18:19", + "nodeType": "YulFunctionCall", + "src": "4025:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4017:4:19", + "nodeType": "YulIdentifier", + "src": "4017:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4097:6:19", + "nodeType": "YulIdentifier", + "src": "4097:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4110:9:19", + "nodeType": "YulIdentifier", + "src": "4110:9:19" + }, + { + "kind": "number", + "nativeSrc": "4121:1:19", + "nodeType": "YulLiteral", + "src": "4121:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4106:3:19", + "nodeType": "YulIdentifier", + "src": "4106:3:19" + }, + "nativeSrc": "4106:17:19", + "nodeType": "YulFunctionCall", + "src": "4106:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4053:43:19", + "nodeType": "YulIdentifier", + "src": "4053:43:19" + }, + "nativeSrc": "4053:71:19", + "nodeType": "YulFunctionCall", + "src": "4053:71:19" + }, + "nativeSrc": "4053:71:19", + "nodeType": "YulExpressionStatement", + "src": "4053:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "3909:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3979:9:19", + "nodeType": "YulTypedName", + "src": "3979:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3991:6:19", + "nodeType": "YulTypedName", + "src": "3991:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4002:4:19", + "nodeType": "YulTypedName", + "src": "4002:4:19", + "type": "" + } + ], + "src": "3909:222:19" + }, + { + "body": { + "nativeSrc": "4180:79:19", + "nodeType": "YulBlock", + "src": "4180:79:19", + "statements": [ + { + "body": { + "nativeSrc": "4237:16:19", + "nodeType": "YulBlock", + "src": "4237:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4246:1:19", + "nodeType": "YulLiteral", + "src": "4246:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4249:1:19", + "nodeType": "YulLiteral", + "src": "4249:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4239:6:19", + "nodeType": "YulIdentifier", + "src": "4239:6:19" + }, + "nativeSrc": "4239:12:19", + "nodeType": "YulFunctionCall", + "src": "4239:12:19" + }, + "nativeSrc": "4239:12:19", + "nodeType": "YulExpressionStatement", + "src": "4239:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4203:5:19", + "nodeType": "YulIdentifier", + "src": "4203:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4228:5:19", + "nodeType": "YulIdentifier", + "src": "4228:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4210:17:19", + "nodeType": "YulIdentifier", + "src": "4210:17:19" + }, + "nativeSrc": "4210:24:19", + "nodeType": "YulFunctionCall", + "src": "4210:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4200:2:19", + "nodeType": "YulIdentifier", + "src": "4200:2:19" + }, + "nativeSrc": "4200:35:19", + "nodeType": "YulFunctionCall", + "src": "4200:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4193:6:19", + "nodeType": "YulIdentifier", + "src": "4193:6:19" + }, + "nativeSrc": "4193:43:19", + "nodeType": "YulFunctionCall", + "src": "4193:43:19" + }, + "nativeSrc": "4190:63:19", + "nodeType": "YulIf", + "src": "4190:63:19" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "4137:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4173:5:19", + "nodeType": "YulTypedName", + "src": "4173:5:19", + "type": "" + } + ], + "src": "4137:122:19" + }, + { + "body": { + "nativeSrc": "4317:87:19", + "nodeType": "YulBlock", + "src": "4317:87:19", + "statements": [ + { + "nativeSrc": "4327:29:19", + "nodeType": "YulAssignment", + "src": "4327:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4349:6:19", + "nodeType": "YulIdentifier", + "src": "4349:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4336:12:19", + "nodeType": "YulIdentifier", + "src": "4336:12:19" + }, + "nativeSrc": "4336:20:19", + "nodeType": "YulFunctionCall", + "src": "4336:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4327:5:19", + "nodeType": "YulIdentifier", + "src": "4327:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4392:5:19", + "nodeType": "YulIdentifier", + "src": "4392:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "4365:26:19", + "nodeType": "YulIdentifier", + "src": "4365:26:19" + }, + "nativeSrc": "4365:33:19", + "nodeType": "YulFunctionCall", + "src": "4365:33:19" + }, + "nativeSrc": "4365:33:19", + "nodeType": "YulExpressionStatement", + "src": "4365:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "4265:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4295:6:19", + "nodeType": "YulTypedName", + "src": "4295:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4303:3:19", + "nodeType": "YulTypedName", + "src": "4303:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4311:5:19", + "nodeType": "YulTypedName", + "src": "4311:5:19", + "type": "" + } + ], + "src": "4265:139:19" + }, + { + "body": { + "nativeSrc": "4493:391:19", + "nodeType": "YulBlock", + "src": "4493:391:19", + "statements": [ + { + "body": { + "nativeSrc": "4539:83:19", + "nodeType": "YulBlock", + "src": "4539:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4541:77:19", + "nodeType": "YulIdentifier", + "src": "4541:77:19" + }, + "nativeSrc": "4541:79:19", + "nodeType": "YulFunctionCall", + "src": "4541:79:19" + }, + "nativeSrc": "4541:79:19", + "nodeType": "YulExpressionStatement", + "src": "4541:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4514:7:19", + "nodeType": "YulIdentifier", + "src": "4514:7:19" + }, + { + "name": "headStart", + "nativeSrc": "4523:9:19", + "nodeType": "YulIdentifier", + "src": "4523:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4510:3:19", + "nodeType": "YulIdentifier", + "src": "4510:3:19" + }, + "nativeSrc": "4510:23:19", + "nodeType": "YulFunctionCall", + "src": "4510:23:19" + }, + { + "kind": "number", + "nativeSrc": "4535:2:19", + "nodeType": "YulLiteral", + "src": "4535:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4506:3:19", + "nodeType": "YulIdentifier", + "src": "4506:3:19" + }, + "nativeSrc": "4506:32:19", + "nodeType": "YulFunctionCall", + "src": "4506:32:19" + }, + "nativeSrc": "4503:119:19", + "nodeType": "YulIf", + "src": "4503:119:19" + }, + { + "nativeSrc": "4632:117:19", + "nodeType": "YulBlock", + "src": "4632:117:19", + "statements": [ + { + "nativeSrc": "4647:15:19", + "nodeType": "YulVariableDeclaration", + "src": "4647:15:19", + "value": { + "kind": "number", + "nativeSrc": "4661:1:19", + "nodeType": "YulLiteral", + "src": "4661:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4651:6:19", + "nodeType": "YulTypedName", + "src": "4651:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4676:63:19", + "nodeType": "YulAssignment", + "src": "4676:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4711:9:19", + "nodeType": "YulIdentifier", + "src": "4711:9:19" + }, + { + "name": "offset", + "nativeSrc": "4722:6:19", + "nodeType": "YulIdentifier", + "src": "4722:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4707:3:19", + "nodeType": "YulIdentifier", + "src": "4707:3:19" + }, + "nativeSrc": "4707:22:19", + "nodeType": "YulFunctionCall", + "src": "4707:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4731:7:19", + "nodeType": "YulIdentifier", + "src": "4731:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4686:20:19", + "nodeType": "YulIdentifier", + "src": "4686:20:19" + }, + "nativeSrc": "4686:53:19", + "nodeType": "YulFunctionCall", + "src": "4686:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4676:6:19", + "nodeType": "YulIdentifier", + "src": "4676:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "4759:118:19", + "nodeType": "YulBlock", + "src": "4759:118:19", + "statements": [ + { + "nativeSrc": "4774:16:19", + "nodeType": "YulVariableDeclaration", + "src": "4774:16:19", + "value": { + "kind": "number", + "nativeSrc": "4788:2:19", + "nodeType": "YulLiteral", + "src": "4788:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4778:6:19", + "nodeType": "YulTypedName", + "src": "4778:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4804:63:19", + "nodeType": "YulAssignment", + "src": "4804:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4839:9:19", + "nodeType": "YulIdentifier", + "src": "4839:9:19" + }, + { + "name": "offset", + "nativeSrc": "4850:6:19", + "nodeType": "YulIdentifier", + "src": "4850:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4835:3:19", + "nodeType": "YulIdentifier", + "src": "4835:3:19" + }, + "nativeSrc": "4835:22:19", + "nodeType": "YulFunctionCall", + "src": "4835:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4859:7:19", + "nodeType": "YulIdentifier", + "src": "4859:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4814:20:19", + "nodeType": "YulIdentifier", + "src": "4814:20:19" + }, + "nativeSrc": "4814:53:19", + "nodeType": "YulFunctionCall", + "src": "4814:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4804:6:19", + "nodeType": "YulIdentifier", + "src": "4804:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "4410:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4455:9:19", + "nodeType": "YulTypedName", + "src": "4455:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4466:7:19", + "nodeType": "YulTypedName", + "src": "4466:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4478:6:19", + "nodeType": "YulTypedName", + "src": "4478:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4486:6:19", + "nodeType": "YulTypedName", + "src": "4486:6:19", + "type": "" + } + ], + "src": "4410:474:19" + }, + { + "body": { + "nativeSrc": "4955:53:19", + "nodeType": "YulBlock", + "src": "4955:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4972:3:19", + "nodeType": "YulIdentifier", + "src": "4972:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4995:5:19", + "nodeType": "YulIdentifier", + "src": "4995:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4977:17:19", + "nodeType": "YulIdentifier", + "src": "4977:17:19" + }, + "nativeSrc": "4977:24:19", + "nodeType": "YulFunctionCall", + "src": "4977:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4965:6:19", + "nodeType": "YulIdentifier", + "src": "4965:6:19" + }, + "nativeSrc": "4965:37:19", + "nodeType": "YulFunctionCall", + "src": "4965:37:19" + }, + "nativeSrc": "4965:37:19", + "nodeType": "YulExpressionStatement", + "src": "4965:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4890:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4943:5:19", + "nodeType": "YulTypedName", + "src": "4943:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4950:3:19", + "nodeType": "YulTypedName", + "src": "4950:3:19", + "type": "" + } + ], + "src": "4890:118:19" + }, + { + "body": { + "nativeSrc": "5112:124:19", + "nodeType": "YulBlock", + "src": "5112:124:19", + "statements": [ + { + "nativeSrc": "5122:26:19", + "nodeType": "YulAssignment", + "src": "5122:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5134:9:19", + "nodeType": "YulIdentifier", + "src": "5134:9:19" + }, + { + "kind": "number", + "nativeSrc": "5145:2:19", + "nodeType": "YulLiteral", + "src": "5145:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5130:3:19", + "nodeType": "YulIdentifier", + "src": "5130:3:19" + }, + "nativeSrc": "5130:18:19", + "nodeType": "YulFunctionCall", + "src": "5130:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5122:4:19", + "nodeType": "YulIdentifier", + "src": "5122:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5202:6:19", + "nodeType": "YulIdentifier", + "src": "5202:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5215:9:19", + "nodeType": "YulIdentifier", + "src": "5215:9:19" + }, + { + "kind": "number", + "nativeSrc": "5226:1:19", + "nodeType": "YulLiteral", + "src": "5226:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5211:3:19", + "nodeType": "YulIdentifier", + "src": "5211:3:19" + }, + "nativeSrc": "5211:17:19", + "nodeType": "YulFunctionCall", + "src": "5211:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5158:43:19", + "nodeType": "YulIdentifier", + "src": "5158:43:19" + }, + "nativeSrc": "5158:71:19", + "nodeType": "YulFunctionCall", + "src": "5158:71:19" + }, + "nativeSrc": "5158:71:19", + "nodeType": "YulExpressionStatement", + "src": "5158:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "5014:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5084:9:19", + "nodeType": "YulTypedName", + "src": "5084:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5096:6:19", + "nodeType": "YulTypedName", + "src": "5096:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5107:4:19", + "nodeType": "YulTypedName", + "src": "5107:4:19", + "type": "" + } + ], + "src": "5014:222:19" + }, + { + "body": { + "nativeSrc": "5342:519:19", + "nodeType": "YulBlock", + "src": "5342:519:19", + "statements": [ + { + "body": { + "nativeSrc": "5388:83:19", + "nodeType": "YulBlock", + "src": "5388:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5390:77:19", + "nodeType": "YulIdentifier", + "src": "5390:77:19" + }, + "nativeSrc": "5390:79:19", + "nodeType": "YulFunctionCall", + "src": "5390:79:19" + }, + "nativeSrc": "5390:79:19", + "nodeType": "YulExpressionStatement", + "src": "5390:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5363:7:19", + "nodeType": "YulIdentifier", + "src": "5363:7:19" + }, + { + "name": "headStart", + "nativeSrc": "5372:9:19", + "nodeType": "YulIdentifier", + "src": "5372:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5359:3:19", + "nodeType": "YulIdentifier", + "src": "5359:3:19" + }, + "nativeSrc": "5359:23:19", + "nodeType": "YulFunctionCall", + "src": "5359:23:19" + }, + { + "kind": "number", + "nativeSrc": "5384:2:19", + "nodeType": "YulLiteral", + "src": "5384:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5355:3:19", + "nodeType": "YulIdentifier", + "src": "5355:3:19" + }, + "nativeSrc": "5355:32:19", + "nodeType": "YulFunctionCall", + "src": "5355:32:19" + }, + "nativeSrc": "5352:119:19", + "nodeType": "YulIf", + "src": "5352:119:19" + }, + { + "nativeSrc": "5481:117:19", + "nodeType": "YulBlock", + "src": "5481:117:19", + "statements": [ + { + "nativeSrc": "5496:15:19", + "nodeType": "YulVariableDeclaration", + "src": "5496:15:19", + "value": { + "kind": "number", + "nativeSrc": "5510:1:19", + "nodeType": "YulLiteral", + "src": "5510:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5500:6:19", + "nodeType": "YulTypedName", + "src": "5500:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5525:63:19", + "nodeType": "YulAssignment", + "src": "5525:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5560:9:19", + "nodeType": "YulIdentifier", + "src": "5560:9:19" + }, + { + "name": "offset", + "nativeSrc": "5571:6:19", + "nodeType": "YulIdentifier", + "src": "5571:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5556:3:19", + "nodeType": "YulIdentifier", + "src": "5556:3:19" + }, + "nativeSrc": "5556:22:19", + "nodeType": "YulFunctionCall", + "src": "5556:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5580:7:19", + "nodeType": "YulIdentifier", + "src": "5580:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5535:20:19", + "nodeType": "YulIdentifier", + "src": "5535:20:19" + }, + "nativeSrc": "5535:53:19", + "nodeType": "YulFunctionCall", + "src": "5535:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5525:6:19", + "nodeType": "YulIdentifier", + "src": "5525:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5608:118:19", + "nodeType": "YulBlock", + "src": "5608:118:19", + "statements": [ + { + "nativeSrc": "5623:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5623:16:19", + "value": { + "kind": "number", + "nativeSrc": "5637:2:19", + "nodeType": "YulLiteral", + "src": "5637:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5627:6:19", + "nodeType": "YulTypedName", + "src": "5627:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5653:63:19", + "nodeType": "YulAssignment", + "src": "5653:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5688:9:19", + "nodeType": "YulIdentifier", + "src": "5688:9:19" + }, + { + "name": "offset", + "nativeSrc": "5699:6:19", + "nodeType": "YulIdentifier", + "src": "5699:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5684:3:19", + "nodeType": "YulIdentifier", + "src": "5684:3:19" + }, + "nativeSrc": "5684:22:19", + "nodeType": "YulFunctionCall", + "src": "5684:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5708:7:19", + "nodeType": "YulIdentifier", + "src": "5708:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5663:20:19", + "nodeType": "YulIdentifier", + "src": "5663:20:19" + }, + "nativeSrc": "5663:53:19", + "nodeType": "YulFunctionCall", + "src": "5663:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5653:6:19", + "nodeType": "YulIdentifier", + "src": "5653:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5736:118:19", + "nodeType": "YulBlock", + "src": "5736:118:19", + "statements": [ + { + "nativeSrc": "5751:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5751:16:19", + "value": { + "kind": "number", + "nativeSrc": "5765:2:19", + "nodeType": "YulLiteral", + "src": "5765:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5755:6:19", + "nodeType": "YulTypedName", + "src": "5755:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5781:63:19", + "nodeType": "YulAssignment", + "src": "5781:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5816:9:19", + "nodeType": "YulIdentifier", + "src": "5816:9:19" + }, + { + "name": "offset", + "nativeSrc": "5827:6:19", + "nodeType": "YulIdentifier", + "src": "5827:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5812:3:19", + "nodeType": "YulIdentifier", + "src": "5812:3:19" + }, + "nativeSrc": "5812:22:19", + "nodeType": "YulFunctionCall", + "src": "5812:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5836:7:19", + "nodeType": "YulIdentifier", + "src": "5836:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5791:20:19", + "nodeType": "YulIdentifier", + "src": "5791:20:19" + }, + "nativeSrc": "5791:53:19", + "nodeType": "YulFunctionCall", + "src": "5791:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5781:6:19", + "nodeType": "YulIdentifier", + "src": "5781:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "5242:619:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5296:9:19", + "nodeType": "YulTypedName", + "src": "5296:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5307:7:19", + "nodeType": "YulTypedName", + "src": "5307:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5319:6:19", + "nodeType": "YulTypedName", + "src": "5319:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5327:6:19", + "nodeType": "YulTypedName", + "src": "5327:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5335:6:19", + "nodeType": "YulTypedName", + "src": "5335:6:19", + "type": "" + } + ], + "src": "5242:619:19" + }, + { + "body": { + "nativeSrc": "5933:263:19", + "nodeType": "YulBlock", + "src": "5933:263:19", + "statements": [ + { + "body": { + "nativeSrc": "5979:83:19", + "nodeType": "YulBlock", + "src": "5979:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5981:77:19", + "nodeType": "YulIdentifier", + "src": "5981:77:19" + }, + "nativeSrc": "5981:79:19", + "nodeType": "YulFunctionCall", + "src": "5981:79:19" + }, + "nativeSrc": "5981:79:19", + "nodeType": "YulExpressionStatement", + "src": "5981:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5954:7:19", + "nodeType": "YulIdentifier", + "src": "5954:7:19" + }, + { + "name": "headStart", + "nativeSrc": "5963:9:19", + "nodeType": "YulIdentifier", + "src": "5963:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5950:3:19", + "nodeType": "YulIdentifier", + "src": "5950:3:19" + }, + "nativeSrc": "5950:23:19", + "nodeType": "YulFunctionCall", + "src": "5950:23:19" + }, + { + "kind": "number", + "nativeSrc": "5975:2:19", + "nodeType": "YulLiteral", + "src": "5975:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5946:3:19", + "nodeType": "YulIdentifier", + "src": "5946:3:19" + }, + "nativeSrc": "5946:32:19", + "nodeType": "YulFunctionCall", + "src": "5946:32:19" + }, + "nativeSrc": "5943:119:19", + "nodeType": "YulIf", + "src": "5943:119:19" + }, + { + "nativeSrc": "6072:117:19", + "nodeType": "YulBlock", + "src": "6072:117:19", + "statements": [ + { + "nativeSrc": "6087:15:19", + "nodeType": "YulVariableDeclaration", + "src": "6087:15:19", + "value": { + "kind": "number", + "nativeSrc": "6101:1:19", + "nodeType": "YulLiteral", + "src": "6101:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6091:6:19", + "nodeType": "YulTypedName", + "src": "6091:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "6116:63:19", + "nodeType": "YulAssignment", + "src": "6116:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6151:9:19", + "nodeType": "YulIdentifier", + "src": "6151:9:19" + }, + { + "name": "offset", + "nativeSrc": "6162:6:19", + "nodeType": "YulIdentifier", + "src": "6162:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6147:3:19", + "nodeType": "YulIdentifier", + "src": "6147:3:19" + }, + "nativeSrc": "6147:22:19", + "nodeType": "YulFunctionCall", + "src": "6147:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "6171:7:19", + "nodeType": "YulIdentifier", + "src": "6171:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "6126:20:19", + "nodeType": "YulIdentifier", + "src": "6126:20:19" + }, + "nativeSrc": "6126:53:19", + "nodeType": "YulFunctionCall", + "src": "6126:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6116:6:19", + "nodeType": "YulIdentifier", + "src": "6116:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "5867:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5903:9:19", + "nodeType": "YulTypedName", + "src": "5903:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5914:7:19", + "nodeType": "YulTypedName", + "src": "5914:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5926:6:19", + "nodeType": "YulTypedName", + "src": "5926:6:19", + "type": "" + } + ], + "src": "5867:329:19" + }, + { + "body": { + "nativeSrc": "6291:28:19", + "nodeType": "YulBlock", + "src": "6291:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6308:1:19", + "nodeType": "YulLiteral", + "src": "6308:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6311:1:19", + "nodeType": "YulLiteral", + "src": "6311:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6301:6:19", + "nodeType": "YulIdentifier", + "src": "6301:6:19" + }, + "nativeSrc": "6301:12:19", + "nodeType": "YulFunctionCall", + "src": "6301:12:19" + }, + "nativeSrc": "6301:12:19", + "nodeType": "YulExpressionStatement", + "src": "6301:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "6202:117:19", + "nodeType": "YulFunctionDefinition", + "src": "6202:117:19" + }, + { + "body": { + "nativeSrc": "6414:28:19", + "nodeType": "YulBlock", + "src": "6414:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6431:1:19", + "nodeType": "YulLiteral", + "src": "6431:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6434:1:19", + "nodeType": "YulLiteral", + "src": "6434:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6424:6:19", + "nodeType": "YulIdentifier", + "src": "6424:6:19" + }, + "nativeSrc": "6424:12:19", + "nodeType": "YulFunctionCall", + "src": "6424:12:19" + }, + "nativeSrc": "6424:12:19", + "nodeType": "YulExpressionStatement", + "src": "6424:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "6325:117:19", + "nodeType": "YulFunctionDefinition", + "src": "6325:117:19" + }, + { + "body": { + "nativeSrc": "6476:152:19", + "nodeType": "YulBlock", + "src": "6476:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6493:1:19", + "nodeType": "YulLiteral", + "src": "6493:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6496:77:19", + "nodeType": "YulLiteral", + "src": "6496:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6486:6:19", + "nodeType": "YulIdentifier", + "src": "6486:6:19" + }, + "nativeSrc": "6486:88:19", + "nodeType": "YulFunctionCall", + "src": "6486:88:19" + }, + "nativeSrc": "6486:88:19", + "nodeType": "YulExpressionStatement", + "src": "6486:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6590:1:19", + "nodeType": "YulLiteral", + "src": "6590:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6593:4:19", + "nodeType": "YulLiteral", + "src": "6593:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6583:6:19", + "nodeType": "YulIdentifier", + "src": "6583:6:19" + }, + "nativeSrc": "6583:15:19", + "nodeType": "YulFunctionCall", + "src": "6583:15:19" + }, + "nativeSrc": "6583:15:19", + "nodeType": "YulExpressionStatement", + "src": "6583:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6614:1:19", + "nodeType": "YulLiteral", + "src": "6614:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6617:4:19", + "nodeType": "YulLiteral", + "src": "6617:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6607:6:19", + "nodeType": "YulIdentifier", + "src": "6607:6:19" + }, + "nativeSrc": "6607:15:19", + "nodeType": "YulFunctionCall", + "src": "6607:15:19" + }, + "nativeSrc": "6607:15:19", + "nodeType": "YulExpressionStatement", + "src": "6607:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6448:180:19", + "nodeType": "YulFunctionDefinition", + "src": "6448:180:19" + }, + { + "body": { + "nativeSrc": "6677:238:19", + "nodeType": "YulBlock", + "src": "6677:238:19", + "statements": [ + { + "nativeSrc": "6687:58:19", + "nodeType": "YulVariableDeclaration", + "src": "6687:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6709:6:19", + "nodeType": "YulIdentifier", + "src": "6709:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6739:4:19", + "nodeType": "YulIdentifier", + "src": "6739:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6717:21:19", + "nodeType": "YulIdentifier", + "src": "6717:21:19" + }, + "nativeSrc": "6717:27:19", + "nodeType": "YulFunctionCall", + "src": "6717:27:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6705:3:19", + "nodeType": "YulIdentifier", + "src": "6705:3:19" + }, + "nativeSrc": "6705:40:19", + "nodeType": "YulFunctionCall", + "src": "6705:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6691:10:19", + "nodeType": "YulTypedName", + "src": "6691:10:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6856:22:19", + "nodeType": "YulBlock", + "src": "6856:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6858:16:19", + "nodeType": "YulIdentifier", + "src": "6858:16:19" + }, + "nativeSrc": "6858:18:19", + "nodeType": "YulFunctionCall", + "src": "6858:18:19" + }, + "nativeSrc": "6858:18:19", + "nodeType": "YulExpressionStatement", + "src": "6858:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6799:10:19", + "nodeType": "YulIdentifier", + "src": "6799:10:19" + }, + { + "kind": "number", + "nativeSrc": "6811:18:19", + "nodeType": "YulLiteral", + "src": "6811:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6796:2:19", + "nodeType": "YulIdentifier", + "src": "6796:2:19" + }, + "nativeSrc": "6796:34:19", + "nodeType": "YulFunctionCall", + "src": "6796:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6835:10:19", + "nodeType": "YulIdentifier", + "src": "6835:10:19" + }, + { + "name": "memPtr", + "nativeSrc": "6847:6:19", + "nodeType": "YulIdentifier", + "src": "6847:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6832:2:19", + "nodeType": "YulIdentifier", + "src": "6832:2:19" + }, + "nativeSrc": "6832:22:19", + "nodeType": "YulFunctionCall", + "src": "6832:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6793:2:19", + "nodeType": "YulIdentifier", + "src": "6793:2:19" + }, + "nativeSrc": "6793:62:19", + "nodeType": "YulFunctionCall", + "src": "6793:62:19" + }, + "nativeSrc": "6790:88:19", + "nodeType": "YulIf", + "src": "6790:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6894:2:19", + "nodeType": "YulLiteral", + "src": "6894:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6898:10:19", + "nodeType": "YulIdentifier", + "src": "6898:10:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6887:6:19", + "nodeType": "YulIdentifier", + "src": "6887:6:19" + }, + "nativeSrc": "6887:22:19", + "nodeType": "YulFunctionCall", + "src": "6887:22:19" + }, + "nativeSrc": "6887:22:19", + "nodeType": "YulExpressionStatement", + "src": "6887:22:19" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6634:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6663:6:19", + "nodeType": "YulTypedName", + "src": "6663:6:19", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6671:4:19", + "nodeType": "YulTypedName", + "src": "6671:4:19", + "type": "" + } + ], + "src": "6634:281:19" + }, + { + "body": { + "nativeSrc": "6962:88:19", + "nodeType": "YulBlock", + "src": "6962:88:19", + "statements": [ + { + "nativeSrc": "6972:30:19", + "nodeType": "YulAssignment", + "src": "6972:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6982:18:19", + "nodeType": "YulIdentifier", + "src": "6982:18:19" + }, + "nativeSrc": "6982:20:19", + "nodeType": "YulFunctionCall", + "src": "6982:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6972:6:19", + "nodeType": "YulIdentifier", + "src": "6972:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7031:6:19", + "nodeType": "YulIdentifier", + "src": "7031:6:19" + }, + { + "name": "size", + "nativeSrc": "7039:4:19", + "nodeType": "YulIdentifier", + "src": "7039:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "7011:19:19", + "nodeType": "YulIdentifier", + "src": "7011:19:19" + }, + "nativeSrc": "7011:33:19", + "nodeType": "YulFunctionCall", + "src": "7011:33:19" + }, + "nativeSrc": "7011:33:19", + "nodeType": "YulExpressionStatement", + "src": "7011:33:19" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6921:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6946:4:19", + "nodeType": "YulTypedName", + "src": "6946:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6955:6:19", + "nodeType": "YulTypedName", + "src": "6955:6:19", + "type": "" + } + ], + "src": "6921:129:19" + }, + { + "body": { + "nativeSrc": "7123:241:19", + "nodeType": "YulBlock", + "src": "7123:241:19", + "statements": [ + { + "body": { + "nativeSrc": "7228:22:19", + "nodeType": "YulBlock", + "src": "7228:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7230:16:19", + "nodeType": "YulIdentifier", + "src": "7230:16:19" + }, + "nativeSrc": "7230:18:19", + "nodeType": "YulFunctionCall", + "src": "7230:18:19" + }, + "nativeSrc": "7230:18:19", + "nodeType": "YulExpressionStatement", + "src": "7230:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7200:6:19", + "nodeType": "YulIdentifier", + "src": "7200:6:19" + }, + { + "kind": "number", + "nativeSrc": "7208:18:19", + "nodeType": "YulLiteral", + "src": "7208:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7197:2:19", + "nodeType": "YulIdentifier", + "src": "7197:2:19" + }, + "nativeSrc": "7197:30:19", + "nodeType": "YulFunctionCall", + "src": "7197:30:19" + }, + "nativeSrc": "7194:56:19", + "nodeType": "YulIf", + "src": "7194:56:19" + }, + { + "nativeSrc": "7260:37:19", + "nodeType": "YulAssignment", + "src": "7260:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7290:6:19", + "nodeType": "YulIdentifier", + "src": "7290:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7268:21:19", + "nodeType": "YulIdentifier", + "src": "7268:21:19" + }, + "nativeSrc": "7268:29:19", + "nodeType": "YulFunctionCall", + "src": "7268:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7260:4:19", + "nodeType": "YulIdentifier", + "src": "7260:4:19" + } + ] + }, + { + "nativeSrc": "7334:23:19", + "nodeType": "YulAssignment", + "src": "7334:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "7346:4:19", + "nodeType": "YulIdentifier", + "src": "7346:4:19" + }, + { + "kind": "number", + "nativeSrc": "7352:4:19", + "nodeType": "YulLiteral", + "src": "7352:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7342:3:19", + "nodeType": "YulIdentifier", + "src": "7342:3:19" + }, + "nativeSrc": "7342:15:19", + "nodeType": "YulFunctionCall", + "src": "7342:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7334:4:19", + "nodeType": "YulIdentifier", + "src": "7334:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7056:308:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "7107:6:19", + "nodeType": "YulTypedName", + "src": "7107:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "7118:4:19", + "nodeType": "YulTypedName", + "src": "7118:4:19", + "type": "" + } + ], + "src": "7056:308:19" + }, + { + "body": { + "nativeSrc": "7434:82:19", + "nodeType": "YulBlock", + "src": "7434:82:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7457:3:19", + "nodeType": "YulIdentifier", + "src": "7457:3:19" + }, + { + "name": "src", + "nativeSrc": "7462:3:19", + "nodeType": "YulIdentifier", + "src": "7462:3:19" + }, + { + "name": "length", + "nativeSrc": "7467:6:19", + "nodeType": "YulIdentifier", + "src": "7467:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "7444:12:19", + "nodeType": "YulIdentifier", + "src": "7444:12:19" + }, + "nativeSrc": "7444:30:19", + "nodeType": "YulFunctionCall", + "src": "7444:30:19" + }, + "nativeSrc": "7444:30:19", + "nodeType": "YulExpressionStatement", + "src": "7444:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7494:3:19", + "nodeType": "YulIdentifier", + "src": "7494:3:19" + }, + { + "name": "length", + "nativeSrc": "7499:6:19", + "nodeType": "YulIdentifier", + "src": "7499:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7490:3:19", + "nodeType": "YulIdentifier", + "src": "7490:3:19" + }, + "nativeSrc": "7490:16:19", + "nodeType": "YulFunctionCall", + "src": "7490:16:19" + }, + { + "kind": "number", + "nativeSrc": "7508:1:19", + "nodeType": "YulLiteral", + "src": "7508:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7483:6:19", + "nodeType": "YulIdentifier", + "src": "7483:6:19" + }, + "nativeSrc": "7483:27:19", + "nodeType": "YulFunctionCall", + "src": "7483:27:19" + }, + "nativeSrc": "7483:27:19", + "nodeType": "YulExpressionStatement", + "src": "7483:27:19" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7370:146:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7416:3:19", + "nodeType": "YulTypedName", + "src": "7416:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "7421:3:19", + "nodeType": "YulTypedName", + "src": "7421:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7426:6:19", + "nodeType": "YulTypedName", + "src": "7426:6:19", + "type": "" + } + ], + "src": "7370:146:19" + }, + { + "body": { + "nativeSrc": "7606:341:19", + "nodeType": "YulBlock", + "src": "7606:341:19", + "statements": [ + { + "nativeSrc": "7616:75:19", + "nodeType": "YulAssignment", + "src": "7616:75:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7683:6:19", + "nodeType": "YulIdentifier", + "src": "7683:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7641:41:19", + "nodeType": "YulIdentifier", + "src": "7641:41:19" + }, + "nativeSrc": "7641:49:19", + "nodeType": "YulFunctionCall", + "src": "7641:49:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7625:15:19", + "nodeType": "YulIdentifier", + "src": "7625:15:19" + }, + "nativeSrc": "7625:66:19", + "nodeType": "YulFunctionCall", + "src": "7625:66:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7616:5:19", + "nodeType": "YulIdentifier", + "src": "7616:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7707:5:19", + "nodeType": "YulIdentifier", + "src": "7707:5:19" + }, + { + "name": "length", + "nativeSrc": "7714:6:19", + "nodeType": "YulIdentifier", + "src": "7714:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7700:6:19", + "nodeType": "YulIdentifier", + "src": "7700:6:19" + }, + "nativeSrc": "7700:21:19", + "nodeType": "YulFunctionCall", + "src": "7700:21:19" + }, + "nativeSrc": "7700:21:19", + "nodeType": "YulExpressionStatement", + "src": "7700:21:19" + }, + { + "nativeSrc": "7730:27:19", + "nodeType": "YulVariableDeclaration", + "src": "7730:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7745:5:19", + "nodeType": "YulIdentifier", + "src": "7745:5:19" + }, + { + "kind": "number", + "nativeSrc": "7752:4:19", + "nodeType": "YulLiteral", + "src": "7752:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7741:3:19", + "nodeType": "YulIdentifier", + "src": "7741:3:19" + }, + "nativeSrc": "7741:16:19", + "nodeType": "YulFunctionCall", + "src": "7741:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7734:3:19", + "nodeType": "YulTypedName", + "src": "7734:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7795:83:19", + "nodeType": "YulBlock", + "src": "7795:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7797:77:19", + "nodeType": "YulIdentifier", + "src": "7797:77:19" + }, + "nativeSrc": "7797:79:19", + "nodeType": "YulFunctionCall", + "src": "7797:79:19" + }, + "nativeSrc": "7797:79:19", + "nodeType": "YulExpressionStatement", + "src": "7797:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7776:3:19", + "nodeType": "YulIdentifier", + "src": "7776:3:19" + }, + { + "name": "length", + "nativeSrc": "7781:6:19", + "nodeType": "YulIdentifier", + "src": "7781:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7772:3:19", + "nodeType": "YulIdentifier", + "src": "7772:3:19" + }, + "nativeSrc": "7772:16:19", + "nodeType": "YulFunctionCall", + "src": "7772:16:19" + }, + { + "name": "end", + "nativeSrc": "7790:3:19", + "nodeType": "YulIdentifier", + "src": "7790:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7769:2:19", + "nodeType": "YulIdentifier", + "src": "7769:2:19" + }, + "nativeSrc": "7769:25:19", + "nodeType": "YulFunctionCall", + "src": "7769:25:19" + }, + "nativeSrc": "7766:112:19", + "nodeType": "YulIf", + "src": "7766:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7924:3:19", + "nodeType": "YulIdentifier", + "src": "7924:3:19" + }, + { + "name": "dst", + "nativeSrc": "7929:3:19", + "nodeType": "YulIdentifier", + "src": "7929:3:19" + }, + { + "name": "length", + "nativeSrc": "7934:6:19", + "nodeType": "YulIdentifier", + "src": "7934:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7887:36:19", + "nodeType": "YulIdentifier", + "src": "7887:36:19" + }, + "nativeSrc": "7887:54:19", + "nodeType": "YulFunctionCall", + "src": "7887:54:19" + }, + "nativeSrc": "7887:54:19", + "nodeType": "YulExpressionStatement", + "src": "7887:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "7522:425:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7579:3:19", + "nodeType": "YulTypedName", + "src": "7579:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7584:6:19", + "nodeType": "YulTypedName", + "src": "7584:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7592:3:19", + "nodeType": "YulTypedName", + "src": "7592:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7600:5:19", + "nodeType": "YulTypedName", + "src": "7600:5:19", + "type": "" + } + ], + "src": "7522:425:19" + }, + { + "body": { + "nativeSrc": "8029:278:19", + "nodeType": "YulBlock", + "src": "8029:278:19", + "statements": [ + { + "body": { + "nativeSrc": "8078:83:19", + "nodeType": "YulBlock", + "src": "8078:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "8080:77:19", + "nodeType": "YulIdentifier", + "src": "8080:77:19" + }, + "nativeSrc": "8080:79:19", + "nodeType": "YulFunctionCall", + "src": "8080:79:19" + }, + "nativeSrc": "8080:79:19", + "nodeType": "YulExpressionStatement", + "src": "8080:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8057:6:19", + "nodeType": "YulIdentifier", + "src": "8057:6:19" + }, + { + "kind": "number", + "nativeSrc": "8065:4:19", + "nodeType": "YulLiteral", + "src": "8065:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8053:3:19", + "nodeType": "YulIdentifier", + "src": "8053:3:19" + }, + "nativeSrc": "8053:17:19", + "nodeType": "YulFunctionCall", + "src": "8053:17:19" + }, + { + "name": "end", + "nativeSrc": "8072:3:19", + "nodeType": "YulIdentifier", + "src": "8072:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8049:3:19", + "nodeType": "YulIdentifier", + "src": "8049:3:19" + }, + "nativeSrc": "8049:27:19", + "nodeType": "YulFunctionCall", + "src": "8049:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8042:6:19", + "nodeType": "YulIdentifier", + "src": "8042:6:19" + }, + "nativeSrc": "8042:35:19", + "nodeType": "YulFunctionCall", + "src": "8042:35:19" + }, + "nativeSrc": "8039:122:19", + "nodeType": "YulIf", + "src": "8039:122:19" + }, + { + "nativeSrc": "8170:34:19", + "nodeType": "YulVariableDeclaration", + "src": "8170:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8197:6:19", + "nodeType": "YulIdentifier", + "src": "8197:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8184:12:19", + "nodeType": "YulIdentifier", + "src": "8184:12:19" + }, + "nativeSrc": "8184:20:19", + "nodeType": "YulFunctionCall", + "src": "8184:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8174:6:19", + "nodeType": "YulTypedName", + "src": "8174:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "8213:88:19", + "nodeType": "YulAssignment", + "src": "8213:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8274:6:19", + "nodeType": "YulIdentifier", + "src": "8274:6:19" + }, + { + "kind": "number", + "nativeSrc": "8282:4:19", + "nodeType": "YulLiteral", + "src": "8282:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8270:3:19", + "nodeType": "YulIdentifier", + "src": "8270:3:19" + }, + "nativeSrc": "8270:17:19", + "nodeType": "YulFunctionCall", + "src": "8270:17:19" + }, + { + "name": "length", + "nativeSrc": "8289:6:19", + "nodeType": "YulIdentifier", + "src": "8289:6:19" + }, + { + "name": "end", + "nativeSrc": "8297:3:19", + "nodeType": "YulIdentifier", + "src": "8297:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "8222:47:19", + "nodeType": "YulIdentifier", + "src": "8222:47:19" + }, + "nativeSrc": "8222:79:19", + "nodeType": "YulFunctionCall", + "src": "8222:79:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8213:5:19", + "nodeType": "YulIdentifier", + "src": "8213:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "7967:340:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8007:6:19", + "nodeType": "YulTypedName", + "src": "8007:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8015:3:19", + "nodeType": "YulTypedName", + "src": "8015:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8023:5:19", + "nodeType": "YulTypedName", + "src": "8023:5:19", + "type": "" + } + ], + "src": "7967:340:19" + }, + { + "body": { + "nativeSrc": "8389:433:19", + "nodeType": "YulBlock", + "src": "8389:433:19", + "statements": [ + { + "body": { + "nativeSrc": "8435:83:19", + "nodeType": "YulBlock", + "src": "8435:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8437:77:19", + "nodeType": "YulIdentifier", + "src": "8437:77:19" + }, + "nativeSrc": "8437:79:19", + "nodeType": "YulFunctionCall", + "src": "8437:79:19" + }, + "nativeSrc": "8437:79:19", + "nodeType": "YulExpressionStatement", + "src": "8437:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8410:7:19", + "nodeType": "YulIdentifier", + "src": "8410:7:19" + }, + { + "name": "headStart", + "nativeSrc": "8419:9:19", + "nodeType": "YulIdentifier", + "src": "8419:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8406:3:19", + "nodeType": "YulIdentifier", + "src": "8406:3:19" + }, + "nativeSrc": "8406:23:19", + "nodeType": "YulFunctionCall", + "src": "8406:23:19" + }, + { + "kind": "number", + "nativeSrc": "8431:2:19", + "nodeType": "YulLiteral", + "src": "8431:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8402:3:19", + "nodeType": "YulIdentifier", + "src": "8402:3:19" + }, + "nativeSrc": "8402:32:19", + "nodeType": "YulFunctionCall", + "src": "8402:32:19" + }, + "nativeSrc": "8399:119:19", + "nodeType": "YulIf", + "src": "8399:119:19" + }, + { + "nativeSrc": "8528:287:19", + "nodeType": "YulBlock", + "src": "8528:287:19", + "statements": [ + { + "nativeSrc": "8543:45:19", + "nodeType": "YulVariableDeclaration", + "src": "8543:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8574:9:19", + "nodeType": "YulIdentifier", + "src": "8574:9:19" + }, + { + "kind": "number", + "nativeSrc": "8585:1:19", + "nodeType": "YulLiteral", + "src": "8585:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8570:3:19", + "nodeType": "YulIdentifier", + "src": "8570:3:19" + }, + "nativeSrc": "8570:17:19", + "nodeType": "YulFunctionCall", + "src": "8570:17:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8557:12:19", + "nodeType": "YulIdentifier", + "src": "8557:12:19" + }, + "nativeSrc": "8557:31:19", + "nodeType": "YulFunctionCall", + "src": "8557:31:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8547:6:19", + "nodeType": "YulTypedName", + "src": "8547:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8635:83:19", + "nodeType": "YulBlock", + "src": "8635:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "8637:77:19", + "nodeType": "YulIdentifier", + "src": "8637:77:19" + }, + "nativeSrc": "8637:79:19", + "nodeType": "YulFunctionCall", + "src": "8637:79:19" + }, + "nativeSrc": "8637:79:19", + "nodeType": "YulExpressionStatement", + "src": "8637:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8607:6:19", + "nodeType": "YulIdentifier", + "src": "8607:6:19" + }, + { + "kind": "number", + "nativeSrc": "8615:18:19", + "nodeType": "YulLiteral", + "src": "8615:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8604:2:19", + "nodeType": "YulIdentifier", + "src": "8604:2:19" + }, + "nativeSrc": "8604:30:19", + "nodeType": "YulFunctionCall", + "src": "8604:30:19" + }, + "nativeSrc": "8601:117:19", + "nodeType": "YulIf", + "src": "8601:117:19" + }, + { + "nativeSrc": "8732:73:19", + "nodeType": "YulAssignment", + "src": "8732:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8777:9:19", + "nodeType": "YulIdentifier", + "src": "8777:9:19" + }, + { + "name": "offset", + "nativeSrc": "8788:6:19", + "nodeType": "YulIdentifier", + "src": "8788:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8773:3:19", + "nodeType": "YulIdentifier", + "src": "8773:3:19" + }, + "nativeSrc": "8773:22:19", + "nodeType": "YulFunctionCall", + "src": "8773:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "8797:7:19", + "nodeType": "YulIdentifier", + "src": "8797:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "8742:30:19", + "nodeType": "YulIdentifier", + "src": "8742:30:19" + }, + "nativeSrc": "8742:63:19", + "nodeType": "YulFunctionCall", + "src": "8742:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8732:6:19", + "nodeType": "YulIdentifier", + "src": "8732:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "8313:509:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8359:9:19", + "nodeType": "YulTypedName", + "src": "8359:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8370:7:19", + "nodeType": "YulTypedName", + "src": "8370:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8382:6:19", + "nodeType": "YulTypedName", + "src": "8382:6:19", + "type": "" + } + ], + "src": "8313:509:19" + }, + { + "body": { + "nativeSrc": "8868:76:19", + "nodeType": "YulBlock", + "src": "8868:76:19", + "statements": [ + { + "body": { + "nativeSrc": "8922:16:19", + "nodeType": "YulBlock", + "src": "8922:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8931:1:19", + "nodeType": "YulLiteral", + "src": "8931:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8934:1:19", + "nodeType": "YulLiteral", + "src": "8934:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8924:6:19", + "nodeType": "YulIdentifier", + "src": "8924:6:19" + }, + "nativeSrc": "8924:12:19", + "nodeType": "YulFunctionCall", + "src": "8924:12:19" + }, + "nativeSrc": "8924:12:19", + "nodeType": "YulExpressionStatement", + "src": "8924:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8891:5:19", + "nodeType": "YulIdentifier", + "src": "8891:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8913:5:19", + "nodeType": "YulIdentifier", + "src": "8913:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "8898:14:19", + "nodeType": "YulIdentifier", + "src": "8898:14:19" + }, + "nativeSrc": "8898:21:19", + "nodeType": "YulFunctionCall", + "src": "8898:21:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8888:2:19", + "nodeType": "YulIdentifier", + "src": "8888:2:19" + }, + "nativeSrc": "8888:32:19", + "nodeType": "YulFunctionCall", + "src": "8888:32:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8881:6:19", + "nodeType": "YulIdentifier", + "src": "8881:6:19" + }, + "nativeSrc": "8881:40:19", + "nodeType": "YulFunctionCall", + "src": "8881:40:19" + }, + "nativeSrc": "8878:60:19", + "nodeType": "YulIf", + "src": "8878:60:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "8828:116:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8861:5:19", + "nodeType": "YulTypedName", + "src": "8861:5:19", + "type": "" + } + ], + "src": "8828:116:19" + }, + { + "body": { + "nativeSrc": "8999:84:19", + "nodeType": "YulBlock", + "src": "8999:84:19", + "statements": [ + { + "nativeSrc": "9009:29:19", + "nodeType": "YulAssignment", + "src": "9009:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9031:6:19", + "nodeType": "YulIdentifier", + "src": "9031:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9018:12:19", + "nodeType": "YulIdentifier", + "src": "9018:12:19" + }, + "nativeSrc": "9018:20:19", + "nodeType": "YulFunctionCall", + "src": "9018:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9009:5:19", + "nodeType": "YulIdentifier", + "src": "9009:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9071:5:19", + "nodeType": "YulIdentifier", + "src": "9071:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "9047:23:19", + "nodeType": "YulIdentifier", + "src": "9047:23:19" + }, + "nativeSrc": "9047:30:19", + "nodeType": "YulFunctionCall", + "src": "9047:30:19" + }, + "nativeSrc": "9047:30:19", + "nodeType": "YulExpressionStatement", + "src": "9047:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "8950:133:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8977:6:19", + "nodeType": "YulTypedName", + "src": "8977:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8985:3:19", + "nodeType": "YulTypedName", + "src": "8985:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "8993:5:19", + "nodeType": "YulTypedName", + "src": "8993:5:19", + "type": "" + } + ], + "src": "8950:133:19" + }, + { + "body": { + "nativeSrc": "9169:388:19", + "nodeType": "YulBlock", + "src": "9169:388:19", + "statements": [ + { + "body": { + "nativeSrc": "9215:83:19", + "nodeType": "YulBlock", + "src": "9215:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9217:77:19", + "nodeType": "YulIdentifier", + "src": "9217:77:19" + }, + "nativeSrc": "9217:79:19", + "nodeType": "YulFunctionCall", + "src": "9217:79:19" + }, + "nativeSrc": "9217:79:19", + "nodeType": "YulExpressionStatement", + "src": "9217:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9190:7:19", + "nodeType": "YulIdentifier", + "src": "9190:7:19" + }, + { + "name": "headStart", + "nativeSrc": "9199:9:19", + "nodeType": "YulIdentifier", + "src": "9199:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9186:3:19", + "nodeType": "YulIdentifier", + "src": "9186:3:19" + }, + "nativeSrc": "9186:23:19", + "nodeType": "YulFunctionCall", + "src": "9186:23:19" + }, + { + "kind": "number", + "nativeSrc": "9211:2:19", + "nodeType": "YulLiteral", + "src": "9211:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9182:3:19", + "nodeType": "YulIdentifier", + "src": "9182:3:19" + }, + "nativeSrc": "9182:32:19", + "nodeType": "YulFunctionCall", + "src": "9182:32:19" + }, + "nativeSrc": "9179:119:19", + "nodeType": "YulIf", + "src": "9179:119:19" + }, + { + "nativeSrc": "9308:117:19", + "nodeType": "YulBlock", + "src": "9308:117:19", + "statements": [ + { + "nativeSrc": "9323:15:19", + "nodeType": "YulVariableDeclaration", + "src": "9323:15:19", + "value": { + "kind": "number", + "nativeSrc": "9337:1:19", + "nodeType": "YulLiteral", + "src": "9337:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9327:6:19", + "nodeType": "YulTypedName", + "src": "9327:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9352:63:19", + "nodeType": "YulAssignment", + "src": "9352:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9387:9:19", + "nodeType": "YulIdentifier", + "src": "9387:9:19" + }, + { + "name": "offset", + "nativeSrc": "9398:6:19", + "nodeType": "YulIdentifier", + "src": "9398:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9383:3:19", + "nodeType": "YulIdentifier", + "src": "9383:3:19" + }, + "nativeSrc": "9383:22:19", + "nodeType": "YulFunctionCall", + "src": "9383:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9407:7:19", + "nodeType": "YulIdentifier", + "src": "9407:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9362:20:19", + "nodeType": "YulIdentifier", + "src": "9362:20:19" + }, + "nativeSrc": "9362:53:19", + "nodeType": "YulFunctionCall", + "src": "9362:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9352:6:19", + "nodeType": "YulIdentifier", + "src": "9352:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "9435:115:19", + "nodeType": "YulBlock", + "src": "9435:115:19", + "statements": [ + { + "nativeSrc": "9450:16:19", + "nodeType": "YulVariableDeclaration", + "src": "9450:16:19", + "value": { + "kind": "number", + "nativeSrc": "9464:2:19", + "nodeType": "YulLiteral", + "src": "9464:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9454:6:19", + "nodeType": "YulTypedName", + "src": "9454:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9480:60:19", + "nodeType": "YulAssignment", + "src": "9480:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9512:9:19", + "nodeType": "YulIdentifier", + "src": "9512:9:19" + }, + { + "name": "offset", + "nativeSrc": "9523:6:19", + "nodeType": "YulIdentifier", + "src": "9523:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9508:3:19", + "nodeType": "YulIdentifier", + "src": "9508:3:19" + }, + "nativeSrc": "9508:22:19", + "nodeType": "YulFunctionCall", + "src": "9508:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9532:7:19", + "nodeType": "YulIdentifier", + "src": "9532:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "9490:17:19", + "nodeType": "YulIdentifier", + "src": "9490:17:19" + }, + "nativeSrc": "9490:50:19", + "nodeType": "YulFunctionCall", + "src": "9490:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9480:6:19", + "nodeType": "YulIdentifier", + "src": "9480:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "9089:468:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9131:9:19", + "nodeType": "YulTypedName", + "src": "9131:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9142:7:19", + "nodeType": "YulTypedName", + "src": "9142:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9154:6:19", + "nodeType": "YulTypedName", + "src": "9154:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9162:6:19", + "nodeType": "YulTypedName", + "src": "9162:6:19", + "type": "" + } + ], + "src": "9089:468:19" + }, + { + "body": { + "nativeSrc": "9629:241:19", + "nodeType": "YulBlock", + "src": "9629:241:19", + "statements": [ + { + "body": { + "nativeSrc": "9734:22:19", + "nodeType": "YulBlock", + "src": "9734:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "9736:16:19", + "nodeType": "YulIdentifier", + "src": "9736:16:19" + }, + "nativeSrc": "9736:18:19", + "nodeType": "YulFunctionCall", + "src": "9736:18:19" + }, + "nativeSrc": "9736:18:19", + "nodeType": "YulExpressionStatement", + "src": "9736:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9706:6:19", + "nodeType": "YulIdentifier", + "src": "9706:6:19" + }, + { + "kind": "number", + "nativeSrc": "9714:18:19", + "nodeType": "YulLiteral", + "src": "9714:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9703:2:19", + "nodeType": "YulIdentifier", + "src": "9703:2:19" + }, + "nativeSrc": "9703:30:19", + "nodeType": "YulFunctionCall", + "src": "9703:30:19" + }, + "nativeSrc": "9700:56:19", + "nodeType": "YulIf", + "src": "9700:56:19" + }, + { + "nativeSrc": "9766:37:19", + "nodeType": "YulAssignment", + "src": "9766:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9796:6:19", + "nodeType": "YulIdentifier", + "src": "9796:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "9774:21:19", + "nodeType": "YulIdentifier", + "src": "9774:21:19" + }, + "nativeSrc": "9774:29:19", + "nodeType": "YulFunctionCall", + "src": "9774:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9766:4:19", + "nodeType": "YulIdentifier", + "src": "9766:4:19" + } + ] + }, + { + "nativeSrc": "9840:23:19", + "nodeType": "YulAssignment", + "src": "9840:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "9852:4:19", + "nodeType": "YulIdentifier", + "src": "9852:4:19" + }, + { + "kind": "number", + "nativeSrc": "9858:4:19", + "nodeType": "YulLiteral", + "src": "9858:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9848:3:19", + "nodeType": "YulIdentifier", + "src": "9848:3:19" + }, + "nativeSrc": "9848:15:19", + "nodeType": "YulFunctionCall", + "src": "9848:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9840:4:19", + "nodeType": "YulIdentifier", + "src": "9840:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9563:307:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "9613:6:19", + "nodeType": "YulTypedName", + "src": "9613:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "9624:4:19", + "nodeType": "YulTypedName", + "src": "9624:4:19", + "type": "" + } + ], + "src": "9563:307:19" + }, + { + "body": { + "nativeSrc": "9959:340:19", + "nodeType": "YulBlock", + "src": "9959:340:19", + "statements": [ + { + "nativeSrc": "9969:74:19", + "nodeType": "YulAssignment", + "src": "9969:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "10035:6:19", + "nodeType": "YulIdentifier", + "src": "10035:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9994:40:19", + "nodeType": "YulIdentifier", + "src": "9994:40:19" + }, + "nativeSrc": "9994:48:19", + "nodeType": "YulFunctionCall", + "src": "9994:48:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9978:15:19", + "nodeType": "YulIdentifier", + "src": "9978:15:19" + }, + "nativeSrc": "9978:65:19", + "nodeType": "YulFunctionCall", + "src": "9978:65:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9969:5:19", + "nodeType": "YulIdentifier", + "src": "9969:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10059:5:19", + "nodeType": "YulIdentifier", + "src": "10059:5:19" + }, + { + "name": "length", + "nativeSrc": "10066:6:19", + "nodeType": "YulIdentifier", + "src": "10066:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10052:6:19", + "nodeType": "YulIdentifier", + "src": "10052:6:19" + }, + "nativeSrc": "10052:21:19", + "nodeType": "YulFunctionCall", + "src": "10052:21:19" + }, + "nativeSrc": "10052:21:19", + "nodeType": "YulExpressionStatement", + "src": "10052:21:19" + }, + { + "nativeSrc": "10082:27:19", + "nodeType": "YulVariableDeclaration", + "src": "10082:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10097:5:19", + "nodeType": "YulIdentifier", + "src": "10097:5:19" + }, + { + "kind": "number", + "nativeSrc": "10104:4:19", + "nodeType": "YulLiteral", + "src": "10104:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10093:3:19", + "nodeType": "YulIdentifier", + "src": "10093:3:19" + }, + "nativeSrc": "10093:16:19", + "nodeType": "YulFunctionCall", + "src": "10093:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "10086:3:19", + "nodeType": "YulTypedName", + "src": "10086:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10147:83:19", + "nodeType": "YulBlock", + "src": "10147:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "10149:77:19", + "nodeType": "YulIdentifier", + "src": "10149:77:19" + }, + "nativeSrc": "10149:79:19", + "nodeType": "YulFunctionCall", + "src": "10149:79:19" + }, + "nativeSrc": "10149:79:19", + "nodeType": "YulExpressionStatement", + "src": "10149:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "10128:3:19", + "nodeType": "YulIdentifier", + "src": "10128:3:19" + }, + { + "name": "length", + "nativeSrc": "10133:6:19", + "nodeType": "YulIdentifier", + "src": "10133:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10124:3:19", + "nodeType": "YulIdentifier", + "src": "10124:3:19" + }, + "nativeSrc": "10124:16:19", + "nodeType": "YulFunctionCall", + "src": "10124:16:19" + }, + { + "name": "end", + "nativeSrc": "10142:3:19", + "nodeType": "YulIdentifier", + "src": "10142:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10121:2:19", + "nodeType": "YulIdentifier", + "src": "10121:2:19" + }, + "nativeSrc": "10121:25:19", + "nodeType": "YulFunctionCall", + "src": "10121:25:19" + }, + "nativeSrc": "10118:112:19", + "nodeType": "YulIf", + "src": "10118:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "10276:3:19", + "nodeType": "YulIdentifier", + "src": "10276:3:19" + }, + { + "name": "dst", + "nativeSrc": "10281:3:19", + "nodeType": "YulIdentifier", + "src": "10281:3:19" + }, + { + "name": "length", + "nativeSrc": "10286:6:19", + "nodeType": "YulIdentifier", + "src": "10286:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "10239:36:19", + "nodeType": "YulIdentifier", + "src": "10239:36:19" + }, + "nativeSrc": "10239:54:19", + "nodeType": "YulFunctionCall", + "src": "10239:54:19" + }, + "nativeSrc": "10239:54:19", + "nodeType": "YulExpressionStatement", + "src": "10239:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9876:423:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "9932:3:19", + "nodeType": "YulTypedName", + "src": "9932:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9937:6:19", + "nodeType": "YulTypedName", + "src": "9937:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9945:3:19", + "nodeType": "YulTypedName", + "src": "9945:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9953:5:19", + "nodeType": "YulTypedName", + "src": "9953:5:19", + "type": "" + } + ], + "src": "9876:423:19" + }, + { + "body": { + "nativeSrc": "10379:277:19", + "nodeType": "YulBlock", + "src": "10379:277:19", + "statements": [ + { + "body": { + "nativeSrc": "10428:83:19", + "nodeType": "YulBlock", + "src": "10428:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "10430:77:19", + "nodeType": "YulIdentifier", + "src": "10430:77:19" + }, + "nativeSrc": "10430:79:19", + "nodeType": "YulFunctionCall", + "src": "10430:79:19" + }, + "nativeSrc": "10430:79:19", + "nodeType": "YulExpressionStatement", + "src": "10430:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10407:6:19", + "nodeType": "YulIdentifier", + "src": "10407:6:19" + }, + { + "kind": "number", + "nativeSrc": "10415:4:19", + "nodeType": "YulLiteral", + "src": "10415:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10403:3:19", + "nodeType": "YulIdentifier", + "src": "10403:3:19" + }, + "nativeSrc": "10403:17:19", + "nodeType": "YulFunctionCall", + "src": "10403:17:19" + }, + { + "name": "end", + "nativeSrc": "10422:3:19", + "nodeType": "YulIdentifier", + "src": "10422:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10399:3:19", + "nodeType": "YulIdentifier", + "src": "10399:3:19" + }, + "nativeSrc": "10399:27:19", + "nodeType": "YulFunctionCall", + "src": "10399:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10392:6:19", + "nodeType": "YulIdentifier", + "src": "10392:6:19" + }, + "nativeSrc": "10392:35:19", + "nodeType": "YulFunctionCall", + "src": "10392:35:19" + }, + "nativeSrc": "10389:122:19", + "nodeType": "YulIf", + "src": "10389:122:19" + }, + { + "nativeSrc": "10520:34:19", + "nodeType": "YulVariableDeclaration", + "src": "10520:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10547:6:19", + "nodeType": "YulIdentifier", + "src": "10547:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10534:12:19", + "nodeType": "YulIdentifier", + "src": "10534:12:19" + }, + "nativeSrc": "10534:20:19", + "nodeType": "YulFunctionCall", + "src": "10534:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10524:6:19", + "nodeType": "YulTypedName", + "src": "10524:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10563:87:19", + "nodeType": "YulAssignment", + "src": "10563:87:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10623:6:19", + "nodeType": "YulIdentifier", + "src": "10623:6:19" + }, + { + "kind": "number", + "nativeSrc": "10631:4:19", + "nodeType": "YulLiteral", + "src": "10631:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10619:3:19", + "nodeType": "YulIdentifier", + "src": "10619:3:19" + }, + "nativeSrc": "10619:17:19", + "nodeType": "YulFunctionCall", + "src": "10619:17:19" + }, + { + "name": "length", + "nativeSrc": "10638:6:19", + "nodeType": "YulIdentifier", + "src": "10638:6:19" + }, + { + "name": "end", + "nativeSrc": "10646:3:19", + "nodeType": "YulIdentifier", + "src": "10646:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "10572:46:19", + "nodeType": "YulIdentifier", + "src": "10572:46:19" + }, + "nativeSrc": "10572:78:19", + "nodeType": "YulFunctionCall", + "src": "10572:78:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "10563:5:19", + "nodeType": "YulIdentifier", + "src": "10563:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "10318:338:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "10357:6:19", + "nodeType": "YulTypedName", + "src": "10357:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "10365:3:19", + "nodeType": "YulTypedName", + "src": "10365:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "10373:5:19", + "nodeType": "YulTypedName", + "src": "10373:5:19", + "type": "" + } + ], + "src": "10318:338:19" + }, + { + "body": { + "nativeSrc": "10788:817:19", + "nodeType": "YulBlock", + "src": "10788:817:19", + "statements": [ + { + "body": { + "nativeSrc": "10835:83:19", + "nodeType": "YulBlock", + "src": "10835:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10837:77:19", + "nodeType": "YulIdentifier", + "src": "10837:77:19" + }, + "nativeSrc": "10837:79:19", + "nodeType": "YulFunctionCall", + "src": "10837:79:19" + }, + "nativeSrc": "10837:79:19", + "nodeType": "YulExpressionStatement", + "src": "10837:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10809:7:19", + "nodeType": "YulIdentifier", + "src": "10809:7:19" + }, + { + "name": "headStart", + "nativeSrc": "10818:9:19", + "nodeType": "YulIdentifier", + "src": "10818:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10805:3:19", + "nodeType": "YulIdentifier", + "src": "10805:3:19" + }, + "nativeSrc": "10805:23:19", + "nodeType": "YulFunctionCall", + "src": "10805:23:19" + }, + { + "kind": "number", + "nativeSrc": "10830:3:19", + "nodeType": "YulLiteral", + "src": "10830:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10801:3:19", + "nodeType": "YulIdentifier", + "src": "10801:3:19" + }, + "nativeSrc": "10801:33:19", + "nodeType": "YulFunctionCall", + "src": "10801:33:19" + }, + "nativeSrc": "10798:120:19", + "nodeType": "YulIf", + "src": "10798:120:19" + }, + { + "nativeSrc": "10928:117:19", + "nodeType": "YulBlock", + "src": "10928:117:19", + "statements": [ + { + "nativeSrc": "10943:15:19", + "nodeType": "YulVariableDeclaration", + "src": "10943:15:19", + "value": { + "kind": "number", + "nativeSrc": "10957:1:19", + "nodeType": "YulLiteral", + "src": "10957:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10947:6:19", + "nodeType": "YulTypedName", + "src": "10947:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10972:63:19", + "nodeType": "YulAssignment", + "src": "10972:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11007:9:19", + "nodeType": "YulIdentifier", + "src": "11007:9:19" + }, + { + "name": "offset", + "nativeSrc": "11018:6:19", + "nodeType": "YulIdentifier", + "src": "11018:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11003:3:19", + "nodeType": "YulIdentifier", + "src": "11003:3:19" + }, + "nativeSrc": "11003:22:19", + "nodeType": "YulFunctionCall", + "src": "11003:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11027:7:19", + "nodeType": "YulIdentifier", + "src": "11027:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10982:20:19", + "nodeType": "YulIdentifier", + "src": "10982:20:19" + }, + "nativeSrc": "10982:53:19", + "nodeType": "YulFunctionCall", + "src": "10982:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10972:6:19", + "nodeType": "YulIdentifier", + "src": "10972:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11055:118:19", + "nodeType": "YulBlock", + "src": "11055:118:19", + "statements": [ + { + "nativeSrc": "11070:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11070:16:19", + "value": { + "kind": "number", + "nativeSrc": "11084:2:19", + "nodeType": "YulLiteral", + "src": "11084:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11074:6:19", + "nodeType": "YulTypedName", + "src": "11074:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11100:63:19", + "nodeType": "YulAssignment", + "src": "11100:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11135:9:19", + "nodeType": "YulIdentifier", + "src": "11135:9:19" + }, + { + "name": "offset", + "nativeSrc": "11146:6:19", + "nodeType": "YulIdentifier", + "src": "11146:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11131:3:19", + "nodeType": "YulIdentifier", + "src": "11131:3:19" + }, + "nativeSrc": "11131:22:19", + "nodeType": "YulFunctionCall", + "src": "11131:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11155:7:19", + "nodeType": "YulIdentifier", + "src": "11155:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11110:20:19", + "nodeType": "YulIdentifier", + "src": "11110:20:19" + }, + "nativeSrc": "11110:53:19", + "nodeType": "YulFunctionCall", + "src": "11110:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11100:6:19", + "nodeType": "YulIdentifier", + "src": "11100:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11183:118:19", + "nodeType": "YulBlock", + "src": "11183:118:19", + "statements": [ + { + "nativeSrc": "11198:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11198:16:19", + "value": { + "kind": "number", + "nativeSrc": "11212:2:19", + "nodeType": "YulLiteral", + "src": "11212:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11202:6:19", + "nodeType": "YulTypedName", + "src": "11202:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11228:63:19", + "nodeType": "YulAssignment", + "src": "11228:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11263:9:19", + "nodeType": "YulIdentifier", + "src": "11263:9:19" + }, + { + "name": "offset", + "nativeSrc": "11274:6:19", + "nodeType": "YulIdentifier", + "src": "11274:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11259:3:19", + "nodeType": "YulIdentifier", + "src": "11259:3:19" + }, + "nativeSrc": "11259:22:19", + "nodeType": "YulFunctionCall", + "src": "11259:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11283:7:19", + "nodeType": "YulIdentifier", + "src": "11283:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "11238:20:19", + "nodeType": "YulIdentifier", + "src": "11238:20:19" + }, + "nativeSrc": "11238:53:19", + "nodeType": "YulFunctionCall", + "src": "11238:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11228:6:19", + "nodeType": "YulIdentifier", + "src": "11228:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11311:287:19", + "nodeType": "YulBlock", + "src": "11311:287:19", + "statements": [ + { + "nativeSrc": "11326:46:19", + "nodeType": "YulVariableDeclaration", + "src": "11326:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11357:9:19", + "nodeType": "YulIdentifier", + "src": "11357:9:19" + }, + { + "kind": "number", + "nativeSrc": "11368:2:19", + "nodeType": "YulLiteral", + "src": "11368:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11353:3:19", + "nodeType": "YulIdentifier", + "src": "11353:3:19" + }, + "nativeSrc": "11353:18:19", + "nodeType": "YulFunctionCall", + "src": "11353:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11340:12:19", + "nodeType": "YulIdentifier", + "src": "11340:12:19" + }, + "nativeSrc": "11340:32:19", + "nodeType": "YulFunctionCall", + "src": "11340:32:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11330:6:19", + "nodeType": "YulTypedName", + "src": "11330:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11419:83:19", + "nodeType": "YulBlock", + "src": "11419:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "11421:77:19", + "nodeType": "YulIdentifier", + "src": "11421:77:19" + }, + "nativeSrc": "11421:79:19", + "nodeType": "YulFunctionCall", + "src": "11421:79:19" + }, + "nativeSrc": "11421:79:19", + "nodeType": "YulExpressionStatement", + "src": "11421:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11391:6:19", + "nodeType": "YulIdentifier", + "src": "11391:6:19" + }, + { + "kind": "number", + "nativeSrc": "11399:18:19", + "nodeType": "YulLiteral", + "src": "11399:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11388:2:19", + "nodeType": "YulIdentifier", + "src": "11388:2:19" + }, + "nativeSrc": "11388:30:19", + "nodeType": "YulFunctionCall", + "src": "11388:30:19" + }, + "nativeSrc": "11385:117:19", + "nodeType": "YulIf", + "src": "11385:117:19" + }, + { + "nativeSrc": "11516:72:19", + "nodeType": "YulAssignment", + "src": "11516:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11560:9:19", + "nodeType": "YulIdentifier", + "src": "11560:9:19" + }, + { + "name": "offset", + "nativeSrc": "11571:6:19", + "nodeType": "YulIdentifier", + "src": "11571:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11556:3:19", + "nodeType": "YulIdentifier", + "src": "11556:3:19" + }, + "nativeSrc": "11556:22:19", + "nodeType": "YulFunctionCall", + "src": "11556:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11580:7:19", + "nodeType": "YulIdentifier", + "src": "11580:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11526:29:19", + "nodeType": "YulIdentifier", + "src": "11526:29:19" + }, + "nativeSrc": "11526:62:19", + "nodeType": "YulFunctionCall", + "src": "11526:62:19" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "11516:6:19", + "nodeType": "YulIdentifier", + "src": "11516:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "10662:943:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10734:9:19", + "nodeType": "YulTypedName", + "src": "10734:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10745:7:19", + "nodeType": "YulTypedName", + "src": "10745:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10757:6:19", + "nodeType": "YulTypedName", + "src": "10757:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10765:6:19", + "nodeType": "YulTypedName", + "src": "10765:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10773:6:19", + "nodeType": "YulTypedName", + "src": "10773:6:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "10781:6:19", + "nodeType": "YulTypedName", + "src": "10781:6:19", + "type": "" + } + ], + "src": "10662:943:19" + }, + { + "body": { + "nativeSrc": "11694:391:19", + "nodeType": "YulBlock", + "src": "11694:391:19", + "statements": [ + { + "body": { + "nativeSrc": "11740:83:19", + "nodeType": "YulBlock", + "src": "11740:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11742:77:19", + "nodeType": "YulIdentifier", + "src": "11742:77:19" + }, + "nativeSrc": "11742:79:19", + "nodeType": "YulFunctionCall", + "src": "11742:79:19" + }, + "nativeSrc": "11742:79:19", + "nodeType": "YulExpressionStatement", + "src": "11742:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11715:7:19", + "nodeType": "YulIdentifier", + "src": "11715:7:19" + }, + { + "name": "headStart", + "nativeSrc": "11724:9:19", + "nodeType": "YulIdentifier", + "src": "11724:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11711:3:19", + "nodeType": "YulIdentifier", + "src": "11711:3:19" + }, + "nativeSrc": "11711:23:19", + "nodeType": "YulFunctionCall", + "src": "11711:23:19" + }, + { + "kind": "number", + "nativeSrc": "11736:2:19", + "nodeType": "YulLiteral", + "src": "11736:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11707:3:19", + "nodeType": "YulIdentifier", + "src": "11707:3:19" + }, + "nativeSrc": "11707:32:19", + "nodeType": "YulFunctionCall", + "src": "11707:32:19" + }, + "nativeSrc": "11704:119:19", + "nodeType": "YulIf", + "src": "11704:119:19" + }, + { + "nativeSrc": "11833:117:19", + "nodeType": "YulBlock", + "src": "11833:117:19", + "statements": [ + { + "nativeSrc": "11848:15:19", + "nodeType": "YulVariableDeclaration", + "src": "11848:15:19", + "value": { + "kind": "number", + "nativeSrc": "11862:1:19", + "nodeType": "YulLiteral", + "src": "11862:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11852:6:19", + "nodeType": "YulTypedName", + "src": "11852:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11877:63:19", + "nodeType": "YulAssignment", + "src": "11877:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11912:9:19", + "nodeType": "YulIdentifier", + "src": "11912:9:19" + }, + { + "name": "offset", + "nativeSrc": "11923:6:19", + "nodeType": "YulIdentifier", + "src": "11923:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11908:3:19", + "nodeType": "YulIdentifier", + "src": "11908:3:19" + }, + "nativeSrc": "11908:22:19", + "nodeType": "YulFunctionCall", + "src": "11908:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11932:7:19", + "nodeType": "YulIdentifier", + "src": "11932:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11887:20:19", + "nodeType": "YulIdentifier", + "src": "11887:20:19" + }, + "nativeSrc": "11887:53:19", + "nodeType": "YulFunctionCall", + "src": "11887:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11877:6:19", + "nodeType": "YulIdentifier", + "src": "11877:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11960:118:19", + "nodeType": "YulBlock", + "src": "11960:118:19", + "statements": [ + { + "nativeSrc": "11975:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11975:16:19", + "value": { + "kind": "number", + "nativeSrc": "11989:2:19", + "nodeType": "YulLiteral", + "src": "11989:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11979:6:19", + "nodeType": "YulTypedName", + "src": "11979:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "12005:63:19", + "nodeType": "YulAssignment", + "src": "12005:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12040:9:19", + "nodeType": "YulIdentifier", + "src": "12040:9:19" + }, + { + "name": "offset", + "nativeSrc": "12051:6:19", + "nodeType": "YulIdentifier", + "src": "12051:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12036:3:19", + "nodeType": "YulIdentifier", + "src": "12036:3:19" + }, + "nativeSrc": "12036:22:19", + "nodeType": "YulFunctionCall", + "src": "12036:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "12060:7:19", + "nodeType": "YulIdentifier", + "src": "12060:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12015:20:19", + "nodeType": "YulIdentifier", + "src": "12015:20:19" + }, + "nativeSrc": "12015:53:19", + "nodeType": "YulFunctionCall", + "src": "12015:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12005:6:19", + "nodeType": "YulIdentifier", + "src": "12005:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "11611:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11656:9:19", + "nodeType": "YulTypedName", + "src": "11656:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11667:7:19", + "nodeType": "YulTypedName", + "src": "11667:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11679:6:19", + "nodeType": "YulTypedName", + "src": "11679:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11687:6:19", + "nodeType": "YulTypedName", + "src": "11687:6:19", + "type": "" + } + ], + "src": "11611:474:19" + }, + { + "body": { + "nativeSrc": "12119:152:19", + "nodeType": "YulBlock", + "src": "12119:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12136:1:19", + "nodeType": "YulLiteral", + "src": "12136:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12139:77:19", + "nodeType": "YulLiteral", + "src": "12139:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12129:6:19", + "nodeType": "YulIdentifier", + "src": "12129:6:19" + }, + "nativeSrc": "12129:88:19", + "nodeType": "YulFunctionCall", + "src": "12129:88:19" + }, + "nativeSrc": "12129:88:19", + "nodeType": "YulExpressionStatement", + "src": "12129:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12233:1:19", + "nodeType": "YulLiteral", + "src": "12233:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12236:4:19", + "nodeType": "YulLiteral", + "src": "12236:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12226:6:19", + "nodeType": "YulIdentifier", + "src": "12226:6:19" + }, + "nativeSrc": "12226:15:19", + "nodeType": "YulFunctionCall", + "src": "12226:15:19" + }, + "nativeSrc": "12226:15:19", + "nodeType": "YulExpressionStatement", + "src": "12226:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12257:1:19", + "nodeType": "YulLiteral", + "src": "12257:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12260:4:19", + "nodeType": "YulLiteral", + "src": "12260:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12250:6:19", + "nodeType": "YulIdentifier", + "src": "12250:6:19" + }, + "nativeSrc": "12250:15:19", + "nodeType": "YulFunctionCall", + "src": "12250:15:19" + }, + "nativeSrc": "12250:15:19", + "nodeType": "YulExpressionStatement", + "src": "12250:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "12091:180:19", + "nodeType": "YulFunctionDefinition", + "src": "12091:180:19" + }, + { + "body": { + "nativeSrc": "12328:269:19", + "nodeType": "YulBlock", + "src": "12328:269:19", + "statements": [ + { + "nativeSrc": "12338:22:19", + "nodeType": "YulAssignment", + "src": "12338:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12352:4:19", + "nodeType": "YulIdentifier", + "src": "12352:4:19" + }, + { + "kind": "number", + "nativeSrc": "12358:1:19", + "nodeType": "YulLiteral", + "src": "12358:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "12348:3:19", + "nodeType": "YulIdentifier", + "src": "12348:3:19" + }, + "nativeSrc": "12348:12:19", + "nodeType": "YulFunctionCall", + "src": "12348:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12338:6:19", + "nodeType": "YulIdentifier", + "src": "12338:6:19" + } + ] + }, + { + "nativeSrc": "12369:38:19", + "nodeType": "YulVariableDeclaration", + "src": "12369:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12399:4:19", + "nodeType": "YulIdentifier", + "src": "12399:4:19" + }, + { + "kind": "number", + "nativeSrc": "12405:1:19", + "nodeType": "YulLiteral", + "src": "12405:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12395:3:19", + "nodeType": "YulIdentifier", + "src": "12395:3:19" + }, + "nativeSrc": "12395:12:19", + "nodeType": "YulFunctionCall", + "src": "12395:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12373:18:19", + "nodeType": "YulTypedName", + "src": "12373:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12446:51:19", + "nodeType": "YulBlock", + "src": "12446:51:19", + "statements": [ + { + "nativeSrc": "12460:27:19", + "nodeType": "YulAssignment", + "src": "12460:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12474:6:19", + "nodeType": "YulIdentifier", + "src": "12474:6:19" + }, + { + "kind": "number", + "nativeSrc": "12482:4:19", + "nodeType": "YulLiteral", + "src": "12482:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12470:3:19", + "nodeType": "YulIdentifier", + "src": "12470:3:19" + }, + "nativeSrc": "12470:17:19", + "nodeType": "YulFunctionCall", + "src": "12470:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12460:6:19", + "nodeType": "YulIdentifier", + "src": "12460:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12426:18:19", + "nodeType": "YulIdentifier", + "src": "12426:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12419:6:19", + "nodeType": "YulIdentifier", + "src": "12419:6:19" + }, + "nativeSrc": "12419:26:19", + "nodeType": "YulFunctionCall", + "src": "12419:26:19" + }, + "nativeSrc": "12416:81:19", + "nodeType": "YulIf", + "src": "12416:81:19" + }, + { + "body": { + "nativeSrc": "12549:42:19", + "nodeType": "YulBlock", + "src": "12549:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "12563:16:19", + "nodeType": "YulIdentifier", + "src": "12563:16:19" + }, + "nativeSrc": "12563:18:19", + "nodeType": "YulFunctionCall", + "src": "12563:18:19" + }, + "nativeSrc": "12563:18:19", + "nodeType": "YulExpressionStatement", + "src": "12563:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12513:18:19", + "nodeType": "YulIdentifier", + "src": "12513:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12536:6:19", + "nodeType": "YulIdentifier", + "src": "12536:6:19" + }, + { + "kind": "number", + "nativeSrc": "12544:2:19", + "nodeType": "YulLiteral", + "src": "12544:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12533:2:19", + "nodeType": "YulIdentifier", + "src": "12533:2:19" + }, + "nativeSrc": "12533:14:19", + "nodeType": "YulFunctionCall", + "src": "12533:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "12510:2:19", + "nodeType": "YulIdentifier", + "src": "12510:2:19" + }, + "nativeSrc": "12510:38:19", + "nodeType": "YulFunctionCall", + "src": "12510:38:19" + }, + "nativeSrc": "12507:84:19", + "nodeType": "YulIf", + "src": "12507:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "12277:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "12312:4:19", + "nodeType": "YulTypedName", + "src": "12312:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "12321:6:19", + "nodeType": "YulTypedName", + "src": "12321:6:19", + "type": "" + } + ], + "src": "12277:320:19" + }, + { + "body": { + "nativeSrc": "12757:288:19", + "nodeType": "YulBlock", + "src": "12757:288:19", + "statements": [ + { + "nativeSrc": "12767:26:19", + "nodeType": "YulAssignment", + "src": "12767:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12779:9:19", + "nodeType": "YulIdentifier", + "src": "12779:9:19" + }, + { + "kind": "number", + "nativeSrc": "12790:2:19", + "nodeType": "YulLiteral", + "src": "12790:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12775:3:19", + "nodeType": "YulIdentifier", + "src": "12775:3:19" + }, + "nativeSrc": "12775:18:19", + "nodeType": "YulFunctionCall", + "src": "12775:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12767:4:19", + "nodeType": "YulIdentifier", + "src": "12767:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12847:6:19", + "nodeType": "YulIdentifier", + "src": "12847:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12860:9:19", + "nodeType": "YulIdentifier", + "src": "12860:9:19" + }, + { + "kind": "number", + "nativeSrc": "12871:1:19", + "nodeType": "YulLiteral", + "src": "12871:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12856:3:19", + "nodeType": "YulIdentifier", + "src": "12856:3:19" + }, + "nativeSrc": "12856:17:19", + "nodeType": "YulFunctionCall", + "src": "12856:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12803:43:19", + "nodeType": "YulIdentifier", + "src": "12803:43:19" + }, + "nativeSrc": "12803:71:19", + "nodeType": "YulFunctionCall", + "src": "12803:71:19" + }, + "nativeSrc": "12803:71:19", + "nodeType": "YulExpressionStatement", + "src": "12803:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "12928:6:19", + "nodeType": "YulIdentifier", + "src": "12928:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12941:9:19", + "nodeType": "YulIdentifier", + "src": "12941:9:19" + }, + { + "kind": "number", + "nativeSrc": "12952:2:19", + "nodeType": "YulLiteral", + "src": "12952:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12937:3:19", + "nodeType": "YulIdentifier", + "src": "12937:3:19" + }, + "nativeSrc": "12937:18:19", + "nodeType": "YulFunctionCall", + "src": "12937:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "12884:43:19", + "nodeType": "YulIdentifier", + "src": "12884:43:19" + }, + "nativeSrc": "12884:72:19", + "nodeType": "YulFunctionCall", + "src": "12884:72:19" + }, + "nativeSrc": "12884:72:19", + "nodeType": "YulExpressionStatement", + "src": "12884:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "13010:6:19", + "nodeType": "YulIdentifier", + "src": "13010:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13023:9:19", + "nodeType": "YulIdentifier", + "src": "13023:9:19" + }, + { + "kind": "number", + "nativeSrc": "13034:2:19", + "nodeType": "YulLiteral", + "src": "13034:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13019:3:19", + "nodeType": "YulIdentifier", + "src": "13019:3:19" + }, + "nativeSrc": "13019:18:19", + "nodeType": "YulFunctionCall", + "src": "13019:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "12966:43:19", + "nodeType": "YulIdentifier", + "src": "12966:43:19" + }, + "nativeSrc": "12966:72:19", + "nodeType": "YulFunctionCall", + "src": "12966:72:19" + }, + "nativeSrc": "12966:72:19", + "nodeType": "YulExpressionStatement", + "src": "12966:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "12603:442:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12713:9:19", + "nodeType": "YulTypedName", + "src": "12713:9:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12725:6:19", + "nodeType": "YulTypedName", + "src": "12725:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12733:6:19", + "nodeType": "YulTypedName", + "src": "12733:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12741:6:19", + "nodeType": "YulTypedName", + "src": "12741:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12752:4:19", + "nodeType": "YulTypedName", + "src": "12752:4:19", + "type": "" + } + ], + "src": "12603:442:19" + }, + { + "body": { + "nativeSrc": "13157:64:19", + "nodeType": "YulBlock", + "src": "13157:64:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "13179:6:19", + "nodeType": "YulIdentifier", + "src": "13179:6:19" + }, + { + "kind": "number", + "nativeSrc": "13187:1:19", + "nodeType": "YulLiteral", + "src": "13187:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13175:3:19", + "nodeType": "YulIdentifier", + "src": "13175:3:19" + }, + "nativeSrc": "13175:14:19", + "nodeType": "YulFunctionCall", + "src": "13175:14:19" + }, + { + "hexValue": "596f75277265206e6f7420746865206f776e6572", + "kind": "string", + "nativeSrc": "13191:22:19", + "nodeType": "YulLiteral", + "src": "13191:22:19", + "type": "", + "value": "You're not the owner" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13168:6:19", + "nodeType": "YulIdentifier", + "src": "13168:6:19" + }, + "nativeSrc": "13168:46:19", + "nodeType": "YulFunctionCall", + "src": "13168:46:19" + }, + "nativeSrc": "13168:46:19", + "nodeType": "YulExpressionStatement", + "src": "13168:46:19" + } + ] + }, + "name": "store_literal_in_memory_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5", + "nativeSrc": "13051:170:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "13149:6:19", + "nodeType": "YulTypedName", + "src": "13149:6:19", + "type": "" + } + ], + "src": "13051:170:19" + }, + { + "body": { + "nativeSrc": "13373:220:19", + "nodeType": "YulBlock", + "src": "13373:220:19", + "statements": [ + { + "nativeSrc": "13383:74:19", + "nodeType": "YulAssignment", + "src": "13383:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13449:3:19", + "nodeType": "YulIdentifier", + "src": "13449:3:19" + }, + { + "kind": "number", + "nativeSrc": "13454:2:19", + "nodeType": "YulLiteral", + "src": "13454:2:19", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13390:58:19", + "nodeType": "YulIdentifier", + "src": "13390:58:19" + }, + "nativeSrc": "13390:67:19", + "nodeType": "YulFunctionCall", + "src": "13390:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13383:3:19", + "nodeType": "YulIdentifier", + "src": "13383:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13555:3:19", + "nodeType": "YulIdentifier", + "src": "13555:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5", + "nativeSrc": "13466:88:19", + "nodeType": "YulIdentifier", + "src": "13466:88:19" + }, + "nativeSrc": "13466:93:19", + "nodeType": "YulFunctionCall", + "src": "13466:93:19" + }, + "nativeSrc": "13466:93:19", + "nodeType": "YulExpressionStatement", + "src": "13466:93:19" + }, + { + "nativeSrc": "13568:19:19", + "nodeType": "YulAssignment", + "src": "13568:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13579:3:19", + "nodeType": "YulIdentifier", + "src": "13579:3:19" + }, + { + "kind": "number", + "nativeSrc": "13584:2:19", + "nodeType": "YulLiteral", + "src": "13584:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13575:3:19", + "nodeType": "YulIdentifier", + "src": "13575:3:19" + }, + "nativeSrc": "13575:12:19", + "nodeType": "YulFunctionCall", + "src": "13575:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13568:3:19", + "nodeType": "YulIdentifier", + "src": "13568:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13227:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13361:3:19", + "nodeType": "YulTypedName", + "src": "13361:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13369:3:19", + "nodeType": "YulTypedName", + "src": "13369:3:19", + "type": "" + } + ], + "src": "13227:366:19" + }, + { + "body": { + "nativeSrc": "13770:248:19", + "nodeType": "YulBlock", + "src": "13770:248:19", + "statements": [ + { + "nativeSrc": "13780:26:19", + "nodeType": "YulAssignment", + "src": "13780:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13792:9:19", + "nodeType": "YulIdentifier", + "src": "13792:9:19" + }, + { + "kind": "number", + "nativeSrc": "13803:2:19", + "nodeType": "YulLiteral", + "src": "13803:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13788:3:19", + "nodeType": "YulIdentifier", + "src": "13788:3:19" + }, + "nativeSrc": "13788:18:19", + "nodeType": "YulFunctionCall", + "src": "13788:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13780:4:19", + "nodeType": "YulIdentifier", + "src": "13780:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13827:9:19", + "nodeType": "YulIdentifier", + "src": "13827:9:19" + }, + { + "kind": "number", + "nativeSrc": "13838:1:19", + "nodeType": "YulLiteral", + "src": "13838:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13823:3:19", + "nodeType": "YulIdentifier", + "src": "13823:3:19" + }, + "nativeSrc": "13823:17:19", + "nodeType": "YulFunctionCall", + "src": "13823:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13846:4:19", + "nodeType": "YulIdentifier", + "src": "13846:4:19" + }, + { + "name": "headStart", + "nativeSrc": "13852:9:19", + "nodeType": "YulIdentifier", + "src": "13852:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13842:3:19", + "nodeType": "YulIdentifier", + "src": "13842:3:19" + }, + "nativeSrc": "13842:20:19", + "nodeType": "YulFunctionCall", + "src": "13842:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13816:6:19", + "nodeType": "YulIdentifier", + "src": "13816:6:19" + }, + "nativeSrc": "13816:47:19", + "nodeType": "YulFunctionCall", + "src": "13816:47:19" + }, + "nativeSrc": "13816:47:19", + "nodeType": "YulExpressionStatement", + "src": "13816:47:19" + }, + { + "nativeSrc": "13872:139:19", + "nodeType": "YulAssignment", + "src": "13872:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "14006:4:19", + "nodeType": "YulIdentifier", + "src": "14006:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13880:124:19", + "nodeType": "YulIdentifier", + "src": "13880:124:19" + }, + "nativeSrc": "13880:131:19", + "nodeType": "YulFunctionCall", + "src": "13880:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13872:4:19", + "nodeType": "YulIdentifier", + "src": "13872:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13599:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13750:9:19", + "nodeType": "YulTypedName", + "src": "13750:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13765:4:19", + "nodeType": "YulTypedName", + "src": "13765:4:19", + "type": "" + } + ], + "src": "13599:419:19" + }, + { + "body": { + "nativeSrc": "14137:34:19", + "nodeType": "YulBlock", + "src": "14137:34:19", + "statements": [ + { + "nativeSrc": "14147:18:19", + "nodeType": "YulAssignment", + "src": "14147:18:19", + "value": { + "name": "pos", + "nativeSrc": "14162:3:19", + "nodeType": "YulIdentifier", + "src": "14162:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "14147:11:19", + "nodeType": "YulIdentifier", + "src": "14147:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14024:147:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14109:3:19", + "nodeType": "YulTypedName", + "src": "14109:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "14114:6:19", + "nodeType": "YulTypedName", + "src": "14114:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "14125:11:19", + "nodeType": "YulTypedName", + "src": "14125:11:19", + "type": "" + } + ], + "src": "14024:147:19" + }, + { + "body": { + "nativeSrc": "14283:8:19", + "nodeType": "YulBlock", + "src": "14283:8:19", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "14177:114:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "14275:6:19", + "nodeType": "YulTypedName", + "src": "14275:6:19", + "type": "" + } + ], + "src": "14177:114:19" + }, + { + "body": { + "nativeSrc": "14460:235:19", + "nodeType": "YulBlock", + "src": "14460:235:19", + "statements": [ + { + "nativeSrc": "14470:90:19", + "nodeType": "YulAssignment", + "src": "14470:90:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14553:3:19", + "nodeType": "YulIdentifier", + "src": "14553:3:19" + }, + { + "kind": "number", + "nativeSrc": "14558:1:19", + "nodeType": "YulLiteral", + "src": "14558:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14477:75:19", + "nodeType": "YulIdentifier", + "src": "14477:75:19" + }, + "nativeSrc": "14477:83:19", + "nodeType": "YulFunctionCall", + "src": "14477:83:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14470:3:19", + "nodeType": "YulIdentifier", + "src": "14470:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14658:3:19", + "nodeType": "YulIdentifier", + "src": "14658:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "14569:88:19", + "nodeType": "YulIdentifier", + "src": "14569:88:19" + }, + "nativeSrc": "14569:93:19", + "nodeType": "YulFunctionCall", + "src": "14569:93:19" + }, + "nativeSrc": "14569:93:19", + "nodeType": "YulExpressionStatement", + "src": "14569:93:19" + }, + { + "nativeSrc": "14671:18:19", + "nodeType": "YulAssignment", + "src": "14671:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14682:3:19", + "nodeType": "YulIdentifier", + "src": "14682:3:19" + }, + { + "kind": "number", + "nativeSrc": "14687:1:19", + "nodeType": "YulLiteral", + "src": "14687:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14678:3:19", + "nodeType": "YulIdentifier", + "src": "14678:3:19" + }, + "nativeSrc": "14678:11:19", + "nodeType": "YulFunctionCall", + "src": "14678:11:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14671:3:19", + "nodeType": "YulIdentifier", + "src": "14671:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14297:398:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14448:3:19", + "nodeType": "YulTypedName", + "src": "14448:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14456:3:19", + "nodeType": "YulTypedName", + "src": "14456:3:19", + "type": "" + } + ], + "src": "14297:398:19" + }, + { + "body": { + "nativeSrc": "14889:191:19", + "nodeType": "YulBlock", + "src": "14889:191:19", + "statements": [ + { + "nativeSrc": "14900:154:19", + "nodeType": "YulAssignment", + "src": "14900:154:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15050:3:19", + "nodeType": "YulIdentifier", + "src": "15050:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "14907:141:19", + "nodeType": "YulIdentifier", + "src": "14907:141:19" + }, + "nativeSrc": "14907:147:19", + "nodeType": "YulFunctionCall", + "src": "14907:147:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14900:3:19", + "nodeType": "YulIdentifier", + "src": "14900:3:19" + } + ] + }, + { + "nativeSrc": "15064:10:19", + "nodeType": "YulAssignment", + "src": "15064:10:19", + "value": { + "name": "pos", + "nativeSrc": "15071:3:19", + "nodeType": "YulIdentifier", + "src": "15071:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15064:3:19", + "nodeType": "YulIdentifier", + "src": "15064:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "14701:379:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14876:3:19", + "nodeType": "YulTypedName", + "src": "14876:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14885:3:19", + "nodeType": "YulTypedName", + "src": "14885:3:19", + "type": "" + } + ], + "src": "14701:379:19" + }, + { + "body": { + "nativeSrc": "15192:61:19", + "nodeType": "YulBlock", + "src": "15192:61:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "15214:6:19", + "nodeType": "YulIdentifier", + "src": "15214:6:19" + }, + { + "kind": "number", + "nativeSrc": "15222:1:19", + "nodeType": "YulLiteral", + "src": "15222:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15210:3:19", + "nodeType": "YulIdentifier", + "src": "15210:3:19" + }, + "nativeSrc": "15210:14:19", + "nodeType": "YulFunctionCall", + "src": "15210:14:19" + }, + { + "hexValue": "7769746864726177616c206661696c6564", + "kind": "string", + "nativeSrc": "15226:19:19", + "nodeType": "YulLiteral", + "src": "15226:19:19", + "type": "", + "value": "withdrawal failed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15203:6:19", + "nodeType": "YulIdentifier", + "src": "15203:6:19" + }, + "nativeSrc": "15203:43:19", + "nodeType": "YulFunctionCall", + "src": "15203:43:19" + }, + "nativeSrc": "15203:43:19", + "nodeType": "YulExpressionStatement", + "src": "15203:43:19" + } + ] + }, + "name": "store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "nativeSrc": "15086:167:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "15184:6:19", + "nodeType": "YulTypedName", + "src": "15184:6:19", + "type": "" + } + ], + "src": "15086:167:19" + }, + { + "body": { + "nativeSrc": "15405:220:19", + "nodeType": "YulBlock", + "src": "15405:220:19", + "statements": [ + { + "nativeSrc": "15415:74:19", + "nodeType": "YulAssignment", + "src": "15415:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15481:3:19", + "nodeType": "YulIdentifier", + "src": "15481:3:19" + }, + { + "kind": "number", + "nativeSrc": "15486:2:19", + "nodeType": "YulLiteral", + "src": "15486:2:19", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "15422:58:19", + "nodeType": "YulIdentifier", + "src": "15422:58:19" + }, + "nativeSrc": "15422:67:19", + "nodeType": "YulFunctionCall", + "src": "15422:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15415:3:19", + "nodeType": "YulIdentifier", + "src": "15415:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15587:3:19", + "nodeType": "YulIdentifier", + "src": "15587:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6", + "nativeSrc": "15498:88:19", + "nodeType": "YulIdentifier", + "src": "15498:88:19" + }, + "nativeSrc": "15498:93:19", + "nodeType": "YulFunctionCall", + "src": "15498:93:19" + }, + "nativeSrc": "15498:93:19", + "nodeType": "YulExpressionStatement", + "src": "15498:93:19" + }, + { + "nativeSrc": "15600:19:19", + "nodeType": "YulAssignment", + "src": "15600:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15611:3:19", + "nodeType": "YulIdentifier", + "src": "15611:3:19" + }, + { + "kind": "number", + "nativeSrc": "15616:2:19", + "nodeType": "YulLiteral", + "src": "15616:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15607:3:19", + "nodeType": "YulIdentifier", + "src": "15607:3:19" + }, + "nativeSrc": "15607:12:19", + "nodeType": "YulFunctionCall", + "src": "15607:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15600:3:19", + "nodeType": "YulIdentifier", + "src": "15600:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "15259:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15393:3:19", + "nodeType": "YulTypedName", + "src": "15393:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15401:3:19", + "nodeType": "YulTypedName", + "src": "15401:3:19", + "type": "" + } + ], + "src": "15259:366:19" + }, + { + "body": { + "nativeSrc": "15802:248:19", + "nodeType": "YulBlock", + "src": "15802:248:19", + "statements": [ + { + "nativeSrc": "15812:26:19", + "nodeType": "YulAssignment", + "src": "15812:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15824:9:19", + "nodeType": "YulIdentifier", + "src": "15824:9:19" + }, + { + "kind": "number", + "nativeSrc": "15835:2:19", + "nodeType": "YulLiteral", + "src": "15835:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15820:3:19", + "nodeType": "YulIdentifier", + "src": "15820:3:19" + }, + "nativeSrc": "15820:18:19", + "nodeType": "YulFunctionCall", + "src": "15820:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15812:4:19", + "nodeType": "YulIdentifier", + "src": "15812:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15859:9:19", + "nodeType": "YulIdentifier", + "src": "15859:9:19" + }, + { + "kind": "number", + "nativeSrc": "15870:1:19", + "nodeType": "YulLiteral", + "src": "15870:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15855:3:19", + "nodeType": "YulIdentifier", + "src": "15855:3:19" + }, + "nativeSrc": "15855:17:19", + "nodeType": "YulFunctionCall", + "src": "15855:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15878:4:19", + "nodeType": "YulIdentifier", + "src": "15878:4:19" + }, + { + "name": "headStart", + "nativeSrc": "15884:9:19", + "nodeType": "YulIdentifier", + "src": "15884:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15874:3:19", + "nodeType": "YulIdentifier", + "src": "15874:3:19" + }, + "nativeSrc": "15874:20:19", + "nodeType": "YulFunctionCall", + "src": "15874:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15848:6:19", + "nodeType": "YulIdentifier", + "src": "15848:6:19" + }, + "nativeSrc": "15848:47:19", + "nodeType": "YulFunctionCall", + "src": "15848:47:19" + }, + "nativeSrc": "15848:47:19", + "nodeType": "YulExpressionStatement", + "src": "15848:47:19" + }, + { + "nativeSrc": "15904:139:19", + "nodeType": "YulAssignment", + "src": "15904:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "16038:4:19", + "nodeType": "YulIdentifier", + "src": "16038:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack", + "nativeSrc": "15912:124:19", + "nodeType": "YulIdentifier", + "src": "15912:124:19" + }, + "nativeSrc": "15912:131:19", + "nodeType": "YulFunctionCall", + "src": "15912:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15904:4:19", + "nodeType": "YulIdentifier", + "src": "15904:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "15631:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15782:9:19", + "nodeType": "YulTypedName", + "src": "15782:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15797:4:19", + "nodeType": "YulTypedName", + "src": "15797:4:19", + "type": "" + } + ], + "src": "15631:419:19" + }, + { + "body": { + "nativeSrc": "16162:131:19", + "nodeType": "YulBlock", + "src": "16162:131:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16184:6:19", + "nodeType": "YulIdentifier", + "src": "16184:6:19" + }, + { + "kind": "number", + "nativeSrc": "16192:1:19", + "nodeType": "YulLiteral", + "src": "16192:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16180:3:19", + "nodeType": "YulIdentifier", + "src": "16180:3:19" + }, + "nativeSrc": "16180:14:19", + "nodeType": "YulFunctionCall", + "src": "16180:14:19" + }, + { + "hexValue": "496e76616c6964206173736574206d657461646174613a206d75737420696e63", + "kind": "string", + "nativeSrc": "16196:34:19", + "nodeType": "YulLiteral", + "src": "16196:34:19", + "type": "", + "value": "Invalid asset metadata: must inc" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16173:6:19", + "nodeType": "YulIdentifier", + "src": "16173:6:19" + }, + "nativeSrc": "16173:58:19", + "nodeType": "YulFunctionCall", + "src": "16173:58:19" + }, + "nativeSrc": "16173:58:19", + "nodeType": "YulExpressionStatement", + "src": "16173:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16252:6:19", + "nodeType": "YulIdentifier", + "src": "16252:6:19" + }, + { + "kind": "number", + "nativeSrc": "16260:2:19", + "nodeType": "YulLiteral", + "src": "16260:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16248:3:19", + "nodeType": "YulIdentifier", + "src": "16248:3:19" + }, + "nativeSrc": "16248:15:19", + "nodeType": "YulFunctionCall", + "src": "16248:15:19" + }, + { + "hexValue": "6c7564652027697066733a2f2f27", + "kind": "string", + "nativeSrc": "16265:16:19", + "nodeType": "YulLiteral", + "src": "16265:16:19", + "type": "", + "value": "lude 'ipfs://'" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16241:6:19", + "nodeType": "YulIdentifier", + "src": "16241:6:19" + }, + "nativeSrc": "16241:41:19", + "nodeType": "YulFunctionCall", + "src": "16241:41:19" + }, + "nativeSrc": "16241:41:19", + "nodeType": "YulExpressionStatement", + "src": "16241:41:19" + } + ] + }, + "name": "store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "nativeSrc": "16056:237:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "16154:6:19", + "nodeType": "YulTypedName", + "src": "16154:6:19", + "type": "" + } + ], + "src": "16056:237:19" + }, + { + "body": { + "nativeSrc": "16449:236:19", + "nodeType": "YulBlock", + "src": "16449:236:19", + "statements": [ + { + "nativeSrc": "16463:74:19", + "nodeType": "YulAssignment", + "src": "16463:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16529:3:19", + "nodeType": "YulIdentifier", + "src": "16529:3:19" + }, + { + "kind": "number", + "nativeSrc": "16534:2:19", + "nodeType": "YulLiteral", + "src": "16534:2:19", + "type": "", + "value": "46" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "16470:58:19", + "nodeType": "YulIdentifier", + "src": "16470:58:19" + }, + "nativeSrc": "16470:67:19", + "nodeType": "YulFunctionCall", + "src": "16470:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16463:3:19", + "nodeType": "YulIdentifier", + "src": "16463:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16639:3:19", + "nodeType": "YulIdentifier", + "src": "16639:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938", + "nativeSrc": "16550:88:19", + "nodeType": "YulIdentifier", + "src": "16550:88:19" + }, + "nativeSrc": "16550:93:19", + "nodeType": "YulFunctionCall", + "src": "16550:93:19" + }, + "nativeSrc": "16550:93:19", + "nodeType": "YulExpressionStatement", + "src": "16550:93:19" + }, + { + "nativeSrc": "16656:19:19", + "nodeType": "YulAssignment", + "src": "16656:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16667:3:19", + "nodeType": "YulIdentifier", + "src": "16667:3:19" + }, + { + "kind": "number", + "nativeSrc": "16672:2:19", + "nodeType": "YulLiteral", + "src": "16672:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16663:3:19", + "nodeType": "YulIdentifier", + "src": "16663:3:19" + }, + "nativeSrc": "16663:12:19", + "nodeType": "YulFunctionCall", + "src": "16663:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16656:3:19", + "nodeType": "YulIdentifier", + "src": "16656:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack", + "nativeSrc": "16303:382:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16437:3:19", + "nodeType": "YulTypedName", + "src": "16437:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16445:3:19", + "nodeType": "YulTypedName", + "src": "16445:3:19", + "type": "" + } + ], + "src": "16303:382:19" + }, + { + "body": { + "nativeSrc": "16866:264:19", + "nodeType": "YulBlock", + "src": "16866:264:19", + "statements": [ + { + "nativeSrc": "16880:26:19", + "nodeType": "YulAssignment", + "src": "16880:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16892:9:19", + "nodeType": "YulIdentifier", + "src": "16892:9:19" + }, + { + "kind": "number", + "nativeSrc": "16903:2:19", + "nodeType": "YulLiteral", + "src": "16903:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16888:3:19", + "nodeType": "YulIdentifier", + "src": "16888:3:19" + }, + "nativeSrc": "16888:18:19", + "nodeType": "YulFunctionCall", + "src": "16888:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16880:4:19", + "nodeType": "YulIdentifier", + "src": "16880:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16931:9:19", + "nodeType": "YulIdentifier", + "src": "16931:9:19" + }, + { + "kind": "number", + "nativeSrc": "16942:1:19", + "nodeType": "YulLiteral", + "src": "16942:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16927:3:19", + "nodeType": "YulIdentifier", + "src": "16927:3:19" + }, + "nativeSrc": "16927:17:19", + "nodeType": "YulFunctionCall", + "src": "16927:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "16950:4:19", + "nodeType": "YulIdentifier", + "src": "16950:4:19" + }, + { + "name": "headStart", + "nativeSrc": "16956:9:19", + "nodeType": "YulIdentifier", + "src": "16956:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16946:3:19", + "nodeType": "YulIdentifier", + "src": "16946:3:19" + }, + "nativeSrc": "16946:20:19", + "nodeType": "YulFunctionCall", + "src": "16946:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16920:6:19", + "nodeType": "YulIdentifier", + "src": "16920:6:19" + }, + "nativeSrc": "16920:47:19", + "nodeType": "YulFunctionCall", + "src": "16920:47:19" + }, + "nativeSrc": "16920:47:19", + "nodeType": "YulExpressionStatement", + "src": "16920:47:19" + }, + { + "nativeSrc": "16980:139:19", + "nodeType": "YulAssignment", + "src": "16980:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17114:4:19", + "nodeType": "YulIdentifier", + "src": "17114:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack", + "nativeSrc": "16988:124:19", + "nodeType": "YulIdentifier", + "src": "16988:124:19" + }, + "nativeSrc": "16988:131:19", + "nodeType": "YulFunctionCall", + "src": "16988:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16980:4:19", + "nodeType": "YulIdentifier", + "src": "16980:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "16695:435:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16846:9:19", + "nodeType": "YulTypedName", + "src": "16846:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16861:4:19", + "nodeType": "YulTypedName", + "src": "16861:4:19", + "type": "" + } + ], + "src": "16695:435:19" + }, + { + "body": { + "nativeSrc": "17194:103:19", + "nodeType": "YulBlock", + "src": "17194:103:19", + "statements": [ + { + "nativeSrc": "17208:11:19", + "nodeType": "YulAssignment", + "src": "17208:11:19", + "value": { + "name": "ptr", + "nativeSrc": "17216:3:19", + "nodeType": "YulIdentifier", + "src": "17216:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "17208:4:19", + "nodeType": "YulIdentifier", + "src": "17208:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17240:1:19", + "nodeType": "YulLiteral", + "src": "17240:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "17243:3:19", + "nodeType": "YulIdentifier", + "src": "17243:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17233:6:19", + "nodeType": "YulIdentifier", + "src": "17233:6:19" + }, + "nativeSrc": "17233:14:19", + "nodeType": "YulFunctionCall", + "src": "17233:14:19" + }, + "nativeSrc": "17233:14:19", + "nodeType": "YulExpressionStatement", + "src": "17233:14:19" + }, + { + "nativeSrc": "17260:26:19", + "nodeType": "YulAssignment", + "src": "17260:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17278:1:19", + "nodeType": "YulLiteral", + "src": "17278:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17281:4:19", + "nodeType": "YulLiteral", + "src": "17281:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "17268:9:19", + "nodeType": "YulIdentifier", + "src": "17268:9:19" + }, + "nativeSrc": "17268:18:19", + "nodeType": "YulFunctionCall", + "src": "17268:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "17260:4:19", + "nodeType": "YulIdentifier", + "src": "17260:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "17140:157:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "17181:3:19", + "nodeType": "YulTypedName", + "src": "17181:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "17189:4:19", + "nodeType": "YulTypedName", + "src": "17189:4:19", + "type": "" + } + ], + "src": "17140:157:19" + }, + { + "body": { + "nativeSrc": "17351:57:19", + "nodeType": "YulBlock", + "src": "17351:57:19", + "statements": [ + { + "nativeSrc": "17365:33:19", + "nodeType": "YulAssignment", + "src": "17365:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17383:5:19", + "nodeType": "YulIdentifier", + "src": "17383:5:19" + }, + { + "kind": "number", + "nativeSrc": "17390:2:19", + "nodeType": "YulLiteral", + "src": "17390:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17379:3:19", + "nodeType": "YulIdentifier", + "src": "17379:3:19" + }, + "nativeSrc": "17379:14:19", + "nodeType": "YulFunctionCall", + "src": "17379:14:19" + }, + { + "kind": "number", + "nativeSrc": "17395:2:19", + "nodeType": "YulLiteral", + "src": "17395:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "17375:3:19", + "nodeType": "YulIdentifier", + "src": "17375:3:19" + }, + "nativeSrc": "17375:23:19", + "nodeType": "YulFunctionCall", + "src": "17375:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "17365:6:19", + "nodeType": "YulIdentifier", + "src": "17365:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "17307:101:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17334:5:19", + "nodeType": "YulTypedName", + "src": "17334:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "17344:6:19", + "nodeType": "YulTypedName", + "src": "17344:6:19", + "type": "" + } + ], + "src": "17307:101:19" + }, + { + "body": { + "nativeSrc": "17471:66:19", + "nodeType": "YulBlock", + "src": "17471:66:19", + "statements": [ + { + "nativeSrc": "17485:41:19", + "nodeType": "YulAssignment", + "src": "17485:41:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "17514:4:19", + "nodeType": "YulIdentifier", + "src": "17514:4:19" + }, + { + "name": "value", + "nativeSrc": "17520:5:19", + "nodeType": "YulIdentifier", + "src": "17520:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "17510:3:19", + "nodeType": "YulIdentifier", + "src": "17510:3:19" + }, + "nativeSrc": "17510:16:19", + "nodeType": "YulFunctionCall", + "src": "17510:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "17485:8:19", + "nodeType": "YulIdentifier", + "src": "17485:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "17418:119:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "17446:4:19", + "nodeType": "YulTypedName", + "src": "17446:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "17452:5:19", + "nodeType": "YulTypedName", + "src": "17452:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "17462:8:19", + "nodeType": "YulTypedName", + "src": "17462:8:19", + "type": "" + } + ], + "src": "17418:119:19" + }, + { + "body": { + "nativeSrc": "17623:341:19", + "nodeType": "YulBlock", + "src": "17623:341:19", + "statements": [ + { + "nativeSrc": "17637:35:19", + "nodeType": "YulVariableDeclaration", + "src": "17637:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "17658:10:19", + "nodeType": "YulIdentifier", + "src": "17658:10:19" + }, + { + "kind": "number", + "nativeSrc": "17670:1:19", + "nodeType": "YulLiteral", + "src": "17670:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "17654:3:19", + "nodeType": "YulIdentifier", + "src": "17654:3:19" + }, + "nativeSrc": "17654:18:19", + "nodeType": "YulFunctionCall", + "src": "17654:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "17641:9:19", + "nodeType": "YulTypedName", + "src": "17641:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "17685:109:19", + "nodeType": "YulVariableDeclaration", + "src": "17685:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "17716:9:19", + "nodeType": "YulIdentifier", + "src": "17716:9:19" + }, + { + "kind": "number", + "nativeSrc": "17727:66:19", + "nodeType": "YulLiteral", + "src": "17727:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "17697:18:19", + "nodeType": "YulIdentifier", + "src": "17697:18:19" + }, + "nativeSrc": "17697:97:19", + "nodeType": "YulFunctionCall", + "src": "17697:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "17689:4:19", + "nodeType": "YulTypedName", + "src": "17689:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "17807:51:19", + "nodeType": "YulAssignment", + "src": "17807:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "17838:9:19", + "nodeType": "YulIdentifier", + "src": "17838:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "17849:8:19", + "nodeType": "YulIdentifier", + "src": "17849:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "17819:18:19", + "nodeType": "YulIdentifier", + "src": "17819:18:19" + }, + "nativeSrc": "17819:39:19", + "nodeType": "YulFunctionCall", + "src": "17819:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "17807:8:19", + "nodeType": "YulIdentifier", + "src": "17807:8:19" + } + ] + }, + { + "nativeSrc": "17871:30:19", + "nodeType": "YulAssignment", + "src": "17871:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17884:5:19", + "nodeType": "YulIdentifier", + "src": "17884:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "17895:4:19", + "nodeType": "YulIdentifier", + "src": "17895:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "17891:3:19", + "nodeType": "YulIdentifier", + "src": "17891:3:19" + }, + "nativeSrc": "17891:9:19", + "nodeType": "YulFunctionCall", + "src": "17891:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17880:3:19", + "nodeType": "YulIdentifier", + "src": "17880:3:19" + }, + "nativeSrc": "17880:21:19", + "nodeType": "YulFunctionCall", + "src": "17880:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17871:5:19", + "nodeType": "YulIdentifier", + "src": "17871:5:19" + } + ] + }, + { + "nativeSrc": "17914:40:19", + "nodeType": "YulAssignment", + "src": "17914:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17927:5:19", + "nodeType": "YulIdentifier", + "src": "17927:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "17938:8:19", + "nodeType": "YulIdentifier", + "src": "17938:8:19" + }, + { + "name": "mask", + "nativeSrc": "17948:4:19", + "nodeType": "YulIdentifier", + "src": "17948:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17934:3:19", + "nodeType": "YulIdentifier", + "src": "17934:3:19" + }, + "nativeSrc": "17934:19:19", + "nodeType": "YulFunctionCall", + "src": "17934:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "17924:2:19", + "nodeType": "YulIdentifier", + "src": "17924:2:19" + }, + "nativeSrc": "17924:30:19", + "nodeType": "YulFunctionCall", + "src": "17924:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "17914:6:19", + "nodeType": "YulIdentifier", + "src": "17914:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "17547:417:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17584:5:19", + "nodeType": "YulTypedName", + "src": "17584:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "17591:10:19", + "nodeType": "YulTypedName", + "src": "17591:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "17603:8:19", + "nodeType": "YulTypedName", + "src": "17603:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "17616:6:19", + "nodeType": "YulTypedName", + "src": "17616:6:19", + "type": "" + } + ], + "src": "17547:417:19" + }, + { + "body": { + "nativeSrc": "18006:36:19", + "nodeType": "YulBlock", + "src": "18006:36:19", + "statements": [ + { + "nativeSrc": "18020:12:19", + "nodeType": "YulAssignment", + "src": "18020:12:19", + "value": { + "name": "value", + "nativeSrc": "18027:5:19", + "nodeType": "YulIdentifier", + "src": "18027:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "18020:3:19", + "nodeType": "YulIdentifier", + "src": "18020:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "17974:68:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17992:5:19", + "nodeType": "YulTypedName", + "src": "17992:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "18002:3:19", + "nodeType": "YulTypedName", + "src": "18002:3:19", + "type": "" + } + ], + "src": "17974:68:19" + }, + { + "body": { + "nativeSrc": "18112:90:19", + "nodeType": "YulBlock", + "src": "18112:90:19", + "statements": [ + { + "nativeSrc": "18126:66:19", + "nodeType": "YulAssignment", + "src": "18126:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18184:5:19", + "nodeType": "YulIdentifier", + "src": "18184:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "18166:17:19", + "nodeType": "YulIdentifier", + "src": "18166:17:19" + }, + "nativeSrc": "18166:24:19", + "nodeType": "YulFunctionCall", + "src": "18166:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "18157:8:19", + "nodeType": "YulIdentifier", + "src": "18157:8:19" + }, + "nativeSrc": "18157:34:19", + "nodeType": "YulFunctionCall", + "src": "18157:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "18139:17:19", + "nodeType": "YulIdentifier", + "src": "18139:17:19" + }, + "nativeSrc": "18139:53:19", + "nodeType": "YulFunctionCall", + "src": "18139:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "18126:9:19", + "nodeType": "YulIdentifier", + "src": "18126:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "18052:150:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "18092:5:19", + "nodeType": "YulTypedName", + "src": "18092:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "18102:9:19", + "nodeType": "YulTypedName", + "src": "18102:9:19", + "type": "" + } + ], + "src": "18052:150:19" + }, + { + "body": { + "nativeSrc": "18259:36:19", + "nodeType": "YulBlock", + "src": "18259:36:19", + "statements": [ + { + "nativeSrc": "18273:12:19", + "nodeType": "YulAssignment", + "src": "18273:12:19", + "value": { + "name": "value", + "nativeSrc": "18280:5:19", + "nodeType": "YulIdentifier", + "src": "18280:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "18273:3:19", + "nodeType": "YulIdentifier", + "src": "18273:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "18212:83:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "18245:5:19", + "nodeType": "YulTypedName", + "src": "18245:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "18255:3:19", + "nodeType": "YulTypedName", + "src": "18255:3:19", + "type": "" + } + ], + "src": "18212:83:19" + }, + { + "body": { + "nativeSrc": "18381:205:19", + "nodeType": "YulBlock", + "src": "18381:205:19", + "statements": [ + { + "nativeSrc": "18395:63:19", + "nodeType": "YulVariableDeclaration", + "src": "18395:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "18450:7:19", + "nodeType": "YulIdentifier", + "src": "18450:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "18419:30:19", + "nodeType": "YulIdentifier", + "src": "18419:30:19" + }, + "nativeSrc": "18419:39:19", + "nodeType": "YulFunctionCall", + "src": "18419:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "18399:16:19", + "nodeType": "YulTypedName", + "src": "18399:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18478:4:19", + "nodeType": "YulIdentifier", + "src": "18478:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18518:4:19", + "nodeType": "YulIdentifier", + "src": "18518:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "18512:5:19", + "nodeType": "YulIdentifier", + "src": "18512:5:19" + }, + "nativeSrc": "18512:11:19", + "nodeType": "YulFunctionCall", + "src": "18512:11:19" + }, + { + "name": "offset", + "nativeSrc": "18525:6:19", + "nodeType": "YulIdentifier", + "src": "18525:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "18557:16:19", + "nodeType": "YulIdentifier", + "src": "18557:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "18533:23:19", + "nodeType": "YulIdentifier", + "src": "18533:23:19" + }, + "nativeSrc": "18533:41:19", + "nodeType": "YulFunctionCall", + "src": "18533:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "18484:27:19", + "nodeType": "YulIdentifier", + "src": "18484:27:19" + }, + "nativeSrc": "18484:91:19", + "nodeType": "YulFunctionCall", + "src": "18484:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18471:6:19", + "nodeType": "YulIdentifier", + "src": "18471:6:19" + }, + "nativeSrc": "18471:105:19", + "nodeType": "YulFunctionCall", + "src": "18471:105:19" + }, + "nativeSrc": "18471:105:19", + "nodeType": "YulExpressionStatement", + "src": "18471:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "18305:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18358:4:19", + "nodeType": "YulTypedName", + "src": "18358:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "18364:6:19", + "nodeType": "YulTypedName", + "src": "18364:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "18372:7:19", + "nodeType": "YulTypedName", + "src": "18372:7:19", + "type": "" + } + ], + "src": "18305:281:19" + }, + { + "body": { + "nativeSrc": "18645:32:19", + "nodeType": "YulBlock", + "src": "18645:32:19", + "statements": [ + { + "nativeSrc": "18659:8:19", + "nodeType": "YulAssignment", + "src": "18659:8:19", + "value": { + "kind": "number", + "nativeSrc": "18666:1:19", + "nodeType": "YulLiteral", + "src": "18666:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "18659:3:19", + "nodeType": "YulIdentifier", + "src": "18659:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "18596:81:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "18641:3:19", + "nodeType": "YulTypedName", + "src": "18641:3:19", + "type": "" + } + ], + "src": "18596:81:19" + }, + { + "body": { + "nativeSrc": "18740:148:19", + "nodeType": "YulBlock", + "src": "18740:148:19", + "statements": [ + { + "nativeSrc": "18754:46:19", + "nodeType": "YulVariableDeclaration", + "src": "18754:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "18768:30:19", + "nodeType": "YulIdentifier", + "src": "18768:30:19" + }, + "nativeSrc": "18768:32:19", + "nodeType": "YulFunctionCall", + "src": "18768:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "18758:6:19", + "nodeType": "YulTypedName", + "src": "18758:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18857:4:19", + "nodeType": "YulIdentifier", + "src": "18857:4:19" + }, + { + "name": "offset", + "nativeSrc": "18863:6:19", + "nodeType": "YulIdentifier", + "src": "18863:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "18871:6:19", + "nodeType": "YulIdentifier", + "src": "18871:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "18813:43:19", + "nodeType": "YulIdentifier", + "src": "18813:43:19" + }, + "nativeSrc": "18813:65:19", + "nodeType": "YulFunctionCall", + "src": "18813:65:19" + }, + "nativeSrc": "18813:65:19", + "nodeType": "YulExpressionStatement", + "src": "18813:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "18687:201:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18726:4:19", + "nodeType": "YulTypedName", + "src": "18726:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "18732:6:19", + "nodeType": "YulTypedName", + "src": "18732:6:19", + "type": "" + } + ], + "src": "18687:201:19" + }, + { + "body": { + "nativeSrc": "18948:156:19", + "nodeType": "YulBlock", + "src": "18948:156:19", + "statements": [ + { + "body": { + "nativeSrc": "19023:71:19", + "nodeType": "YulBlock", + "src": "19023:71:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "19071:5:19", + "nodeType": "YulIdentifier", + "src": "19071:5:19" + }, + { + "kind": "number", + "nativeSrc": "19078:1:19", + "nodeType": "YulLiteral", + "src": "19078:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "19041:29:19", + "nodeType": "YulIdentifier", + "src": "19041:29:19" + }, + "nativeSrc": "19041:39:19", + "nodeType": "YulFunctionCall", + "src": "19041:39:19" + }, + "nativeSrc": "19041:39:19", + "nodeType": "YulExpressionStatement", + "src": "19041:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18972:5:19", + "nodeType": "YulIdentifier", + "src": "18972:5:19" + }, + { + "name": "end", + "nativeSrc": "18979:3:19", + "nodeType": "YulIdentifier", + "src": "18979:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18969:2:19", + "nodeType": "YulIdentifier", + "src": "18969:2:19" + }, + "nativeSrc": "18969:14:19", + "nodeType": "YulFunctionCall", + "src": "18969:14:19" + }, + "nativeSrc": "18962:132:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "18984:26:19", + "nodeType": "YulBlock", + "src": "18984:26:19", + "statements": [ + { + "nativeSrc": "18986:22:19", + "nodeType": "YulAssignment", + "src": "18986:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "18999:5:19", + "nodeType": "YulIdentifier", + "src": "18999:5:19" + }, + { + "kind": "number", + "nativeSrc": "19006:1:19", + "nodeType": "YulLiteral", + "src": "19006:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18995:3:19", + "nodeType": "YulIdentifier", + "src": "18995:3:19" + }, + "nativeSrc": "18995:13:19", + "nodeType": "YulFunctionCall", + "src": "18995:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "18986:5:19", + "nodeType": "YulIdentifier", + "src": "18986:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "18966:2:19", + "nodeType": "YulBlock", + "src": "18966:2:19", + "statements": [] + }, + "src": "18962:132:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "18898:206:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "18936:5:19", + "nodeType": "YulTypedName", + "src": "18936:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "18943:3:19", + "nodeType": "YulTypedName", + "src": "18943:3:19", + "type": "" + } + ], + "src": "18898:206:19" + }, + { + "body": { + "nativeSrc": "19193:496:19", + "nodeType": "YulBlock", + "src": "19193:496:19", + "statements": [ + { + "body": { + "nativeSrc": "19223:455:19", + "nodeType": "YulBlock", + "src": "19223:455:19", + "statements": [ + { + "nativeSrc": "19241:54:19", + "nodeType": "YulVariableDeclaration", + "src": "19241:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "19289:5:19", + "nodeType": "YulIdentifier", + "src": "19289:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "19257:31:19", + "nodeType": "YulIdentifier", + "src": "19257:31:19" + }, + "nativeSrc": "19257:38:19", + "nodeType": "YulFunctionCall", + "src": "19257:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "19245:8:19", + "nodeType": "YulTypedName", + "src": "19245:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19312:63:19", + "nodeType": "YulVariableDeclaration", + "src": "19312:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "19335:8:19", + "nodeType": "YulIdentifier", + "src": "19335:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "19363:10:19", + "nodeType": "YulIdentifier", + "src": "19363:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "19345:17:19", + "nodeType": "YulIdentifier", + "src": "19345:17:19" + }, + "nativeSrc": "19345:29:19", + "nodeType": "YulFunctionCall", + "src": "19345:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19331:3:19", + "nodeType": "YulIdentifier", + "src": "19331:3:19" + }, + "nativeSrc": "19331:44:19", + "nodeType": "YulFunctionCall", + "src": "19331:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "19316:11:19", + "nodeType": "YulTypedName", + "src": "19316:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19540:27:19", + "nodeType": "YulBlock", + "src": "19540:27:19", + "statements": [ + { + "nativeSrc": "19542:23:19", + "nodeType": "YulAssignment", + "src": "19542:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "19557:8:19", + "nodeType": "YulIdentifier", + "src": "19557:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "19542:11:19", + "nodeType": "YulIdentifier", + "src": "19542:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "19524:10:19", + "nodeType": "YulIdentifier", + "src": "19524:10:19" + }, + { + "kind": "number", + "nativeSrc": "19536:2:19", + "nodeType": "YulLiteral", + "src": "19536:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19521:2:19", + "nodeType": "YulIdentifier", + "src": "19521:2:19" + }, + "nativeSrc": "19521:18:19", + "nodeType": "YulFunctionCall", + "src": "19521:18:19" + }, + "nativeSrc": "19518:49:19", + "nodeType": "YulIf", + "src": "19518:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "19613:11:19", + "nodeType": "YulIdentifier", + "src": "19613:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "19630:8:19", + "nodeType": "YulIdentifier", + "src": "19630:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "19658:3:19", + "nodeType": "YulIdentifier", + "src": "19658:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "19640:17:19", + "nodeType": "YulIdentifier", + "src": "19640:17:19" + }, + "nativeSrc": "19640:22:19", + "nodeType": "YulFunctionCall", + "src": "19640:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19626:3:19", + "nodeType": "YulIdentifier", + "src": "19626:3:19" + }, + "nativeSrc": "19626:37:19", + "nodeType": "YulFunctionCall", + "src": "19626:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "19584:28:19", + "nodeType": "YulIdentifier", + "src": "19584:28:19" + }, + "nativeSrc": "19584:80:19", + "nodeType": "YulFunctionCall", + "src": "19584:80:19" + }, + "nativeSrc": "19584:80:19", + "nodeType": "YulExpressionStatement", + "src": "19584:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "19214:3:19", + "nodeType": "YulIdentifier", + "src": "19214:3:19" + }, + { + "kind": "number", + "nativeSrc": "19219:2:19", + "nodeType": "YulLiteral", + "src": "19219:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19211:2:19", + "nodeType": "YulIdentifier", + "src": "19211:2:19" + }, + "nativeSrc": "19211:11:19", + "nodeType": "YulFunctionCall", + "src": "19211:11:19" + }, + "nativeSrc": "19208:470:19", + "nodeType": "YulIf", + "src": "19208:470:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "19114:575:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "19169:5:19", + "nodeType": "YulTypedName", + "src": "19169:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "19176:3:19", + "nodeType": "YulTypedName", + "src": "19176:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "19181:10:19", + "nodeType": "YulTypedName", + "src": "19181:10:19", + "type": "" + } + ], + "src": "19114:575:19" + }, + { + "body": { + "nativeSrc": "19762:66:19", + "nodeType": "YulBlock", + "src": "19762:66:19", + "statements": [ + { + "nativeSrc": "19776:41:19", + "nodeType": "YulAssignment", + "src": "19776:41:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "19805:4:19", + "nodeType": "YulIdentifier", + "src": "19805:4:19" + }, + { + "name": "value", + "nativeSrc": "19811:5:19", + "nodeType": "YulIdentifier", + "src": "19811:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "19801:3:19", + "nodeType": "YulIdentifier", + "src": "19801:3:19" + }, + "nativeSrc": "19801:16:19", + "nodeType": "YulFunctionCall", + "src": "19801:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "19776:8:19", + "nodeType": "YulIdentifier", + "src": "19776:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "19699:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "19737:4:19", + "nodeType": "YulTypedName", + "src": "19737:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "19743:5:19", + "nodeType": "YulTypedName", + "src": "19743:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "19753:8:19", + "nodeType": "YulTypedName", + "src": "19753:8:19", + "type": "" + } + ], + "src": "19699:129:19" + }, + { + "body": { + "nativeSrc": "19889:130:19", + "nodeType": "YulBlock", + "src": "19889:130:19", + "statements": [ + { + "nativeSrc": "19903:68:19", + "nodeType": "YulVariableDeclaration", + "src": "19903:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19952:1:19", + "nodeType": "YulLiteral", + "src": "19952:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "19955:5:19", + "nodeType": "YulIdentifier", + "src": "19955:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19948:3:19", + "nodeType": "YulIdentifier", + "src": "19948:3:19" + }, + "nativeSrc": "19948:13:19", + "nodeType": "YulFunctionCall", + "src": "19948:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19967:1:19", + "nodeType": "YulLiteral", + "src": "19967:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19963:3:19", + "nodeType": "YulIdentifier", + "src": "19963:3:19" + }, + "nativeSrc": "19963:6:19", + "nodeType": "YulFunctionCall", + "src": "19963:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "19919:28:19", + "nodeType": "YulIdentifier", + "src": "19919:28:19" + }, + "nativeSrc": "19919:51:19", + "nodeType": "YulFunctionCall", + "src": "19919:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19915:3:19", + "nodeType": "YulIdentifier", + "src": "19915:3:19" + }, + "nativeSrc": "19915:56:19", + "nodeType": "YulFunctionCall", + "src": "19915:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "19907:4:19", + "nodeType": "YulTypedName", + "src": "19907:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "19984:25:19", + "nodeType": "YulAssignment", + "src": "19984:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "19998:4:19", + "nodeType": "YulIdentifier", + "src": "19998:4:19" + }, + { + "name": "mask", + "nativeSrc": "20004:4:19", + "nodeType": "YulIdentifier", + "src": "20004:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19994:3:19", + "nodeType": "YulIdentifier", + "src": "19994:3:19" + }, + "nativeSrc": "19994:15:19", + "nodeType": "YulFunctionCall", + "src": "19994:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "19984:6:19", + "nodeType": "YulIdentifier", + "src": "19984:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "19838:181:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "19866:4:19", + "nodeType": "YulTypedName", + "src": "19866:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "19872:5:19", + "nodeType": "YulTypedName", + "src": "19872:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "19882:6:19", + "nodeType": "YulTypedName", + "src": "19882:6:19", + "type": "" + } + ], + "src": "19838:181:19" + }, + { + "body": { + "nativeSrc": "20109:234:19", + "nodeType": "YulBlock", + "src": "20109:234:19", + "statements": [ + { + "nativeSrc": "20254:37:19", + "nodeType": "YulAssignment", + "src": "20254:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "20281:4:19", + "nodeType": "YulIdentifier", + "src": "20281:4:19" + }, + { + "name": "len", + "nativeSrc": "20287:3:19", + "nodeType": "YulIdentifier", + "src": "20287:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "20262:18:19", + "nodeType": "YulIdentifier", + "src": "20262:18:19" + }, + "nativeSrc": "20262:29:19", + "nodeType": "YulFunctionCall", + "src": "20262:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "20254:4:19", + "nodeType": "YulIdentifier", + "src": "20254:4:19" + } + ] + }, + { + "nativeSrc": "20304:29:19", + "nodeType": "YulAssignment", + "src": "20304:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "20315:4:19", + "nodeType": "YulIdentifier", + "src": "20315:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20325:1:19", + "nodeType": "YulLiteral", + "src": "20325:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "20328:3:19", + "nodeType": "YulIdentifier", + "src": "20328:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "20321:3:19", + "nodeType": "YulIdentifier", + "src": "20321:3:19" + }, + "nativeSrc": "20321:11:19", + "nodeType": "YulFunctionCall", + "src": "20321:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "20312:2:19", + "nodeType": "YulIdentifier", + "src": "20312:2:19" + }, + "nativeSrc": "20312:21:19", + "nodeType": "YulFunctionCall", + "src": "20312:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "20304:4:19", + "nodeType": "YulIdentifier", + "src": "20304:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "20028:315:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "20090:4:19", + "nodeType": "YulTypedName", + "src": "20090:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "20096:3:19", + "nodeType": "YulTypedName", + "src": "20096:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "20104:4:19", + "nodeType": "YulTypedName", + "src": "20104:4:19", + "type": "" + } + ], + "src": "20028:315:19" + }, + { + "body": { + "nativeSrc": "20444:1431:19", + "nodeType": "YulBlock", + "src": "20444:1431:19", + "statements": [ + { + "nativeSrc": "20459:51:19", + "nodeType": "YulVariableDeclaration", + "src": "20459:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "20506:3:19", + "nodeType": "YulIdentifier", + "src": "20506:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "20473:32:19", + "nodeType": "YulIdentifier", + "src": "20473:32:19" + }, + "nativeSrc": "20473:37:19", + "nodeType": "YulFunctionCall", + "src": "20473:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "20463:6:19", + "nodeType": "YulTypedName", + "src": "20463:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20603:22:19", + "nodeType": "YulBlock", + "src": "20603:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "20605:16:19", + "nodeType": "YulIdentifier", + "src": "20605:16:19" + }, + "nativeSrc": "20605:18:19", + "nodeType": "YulFunctionCall", + "src": "20605:18:19" + }, + "nativeSrc": "20605:18:19", + "nodeType": "YulExpressionStatement", + "src": "20605:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20575:6:19", + "nodeType": "YulIdentifier", + "src": "20575:6:19" + }, + { + "kind": "number", + "nativeSrc": "20583:18:19", + "nodeType": "YulLiteral", + "src": "20583:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20572:2:19", + "nodeType": "YulIdentifier", + "src": "20572:2:19" + }, + "nativeSrc": "20572:30:19", + "nodeType": "YulFunctionCall", + "src": "20572:30:19" + }, + "nativeSrc": "20569:56:19", + "nodeType": "YulIf", + "src": "20569:56:19" + }, + { + "nativeSrc": "20639:52:19", + "nodeType": "YulVariableDeclaration", + "src": "20639:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20685:4:19", + "nodeType": "YulIdentifier", + "src": "20685:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "20679:5:19", + "nodeType": "YulIdentifier", + "src": "20679:5:19" + }, + "nativeSrc": "20679:11:19", + "nodeType": "YulFunctionCall", + "src": "20679:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "20653:25:19", + "nodeType": "YulIdentifier", + "src": "20653:25:19" + }, + "nativeSrc": "20653:38:19", + "nodeType": "YulFunctionCall", + "src": "20653:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "20643:6:19", + "nodeType": "YulTypedName", + "src": "20643:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20792:4:19", + "nodeType": "YulIdentifier", + "src": "20792:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "20798:6:19", + "nodeType": "YulIdentifier", + "src": "20798:6:19" + }, + { + "name": "newLen", + "nativeSrc": "20806:6:19", + "nodeType": "YulIdentifier", + "src": "20806:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "20746:45:19", + "nodeType": "YulIdentifier", + "src": "20746:45:19" + }, + "nativeSrc": "20746:67:19", + "nodeType": "YulFunctionCall", + "src": "20746:67:19" + }, + "nativeSrc": "20746:67:19", + "nodeType": "YulExpressionStatement", + "src": "20746:67:19" + }, + { + "nativeSrc": "20827:18:19", + "nodeType": "YulVariableDeclaration", + "src": "20827:18:19", + "value": { + "kind": "number", + "nativeSrc": "20844:1:19", + "nodeType": "YulLiteral", + "src": "20844:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "20831:9:19", + "nodeType": "YulTypedName", + "src": "20831:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "20859:17:19", + "nodeType": "YulAssignment", + "src": "20859:17:19", + "value": { + "kind": "number", + "nativeSrc": "20872:4:19", + "nodeType": "YulLiteral", + "src": "20872:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "20859:9:19", + "nodeType": "YulIdentifier", + "src": "20859:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "20931:667:19", + "nodeType": "YulBlock", + "src": "20931:667:19", + "statements": [ + { + "nativeSrc": "20949:37:19", + "nodeType": "YulVariableDeclaration", + "src": "20949:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20968:6:19", + "nodeType": "YulIdentifier", + "src": "20968:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20980:4:19", + "nodeType": "YulLiteral", + "src": "20980:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "20976:3:19", + "nodeType": "YulIdentifier", + "src": "20976:3:19" + }, + "nativeSrc": "20976:9:19", + "nodeType": "YulFunctionCall", + "src": "20976:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20964:3:19", + "nodeType": "YulIdentifier", + "src": "20964:3:19" + }, + "nativeSrc": "20964:22:19", + "nodeType": "YulFunctionCall", + "src": "20964:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "20953:7:19", + "nodeType": "YulTypedName", + "src": "20953:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "21004:51:19", + "nodeType": "YulVariableDeclaration", + "src": "21004:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "21050:4:19", + "nodeType": "YulIdentifier", + "src": "21050:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "21018:31:19", + "nodeType": "YulIdentifier", + "src": "21018:31:19" + }, + "nativeSrc": "21018:37:19", + "nodeType": "YulFunctionCall", + "src": "21018:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "21008:6:19", + "nodeType": "YulTypedName", + "src": "21008:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "21072:10:19", + "nodeType": "YulVariableDeclaration", + "src": "21072:10:19", + "value": { + "kind": "number", + "nativeSrc": "21081:1:19", + "nodeType": "YulLiteral", + "src": "21081:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "21076:1:19", + "nodeType": "YulTypedName", + "src": "21076:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21144:179:19", + "nodeType": "YulBlock", + "src": "21144:179:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "21173:6:19", + "nodeType": "YulIdentifier", + "src": "21173:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "21191:3:19", + "nodeType": "YulIdentifier", + "src": "21191:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "21196:9:19", + "nodeType": "YulIdentifier", + "src": "21196:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21187:3:19", + "nodeType": "YulIdentifier", + "src": "21187:3:19" + }, + "nativeSrc": "21187:19:19", + "nodeType": "YulFunctionCall", + "src": "21187:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "21181:5:19", + "nodeType": "YulIdentifier", + "src": "21181:5:19" + }, + "nativeSrc": "21181:26:19", + "nodeType": "YulFunctionCall", + "src": "21181:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "21166:6:19", + "nodeType": "YulIdentifier", + "src": "21166:6:19" + }, + "nativeSrc": "21166:42:19", + "nodeType": "YulFunctionCall", + "src": "21166:42:19" + }, + "nativeSrc": "21166:42:19", + "nodeType": "YulExpressionStatement", + "src": "21166:42:19" + }, + { + "nativeSrc": "21229:24:19", + "nodeType": "YulAssignment", + "src": "21229:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "21243:6:19", + "nodeType": "YulIdentifier", + "src": "21243:6:19" + }, + { + "kind": "number", + "nativeSrc": "21251:1:19", + "nodeType": "YulLiteral", + "src": "21251:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21239:3:19", + "nodeType": "YulIdentifier", + "src": "21239:3:19" + }, + "nativeSrc": "21239:14:19", + "nodeType": "YulFunctionCall", + "src": "21239:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "21229:6:19", + "nodeType": "YulIdentifier", + "src": "21229:6:19" + } + ] + }, + { + "nativeSrc": "21274:31:19", + "nodeType": "YulAssignment", + "src": "21274:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "21291:9:19", + "nodeType": "YulIdentifier", + "src": "21291:9:19" + }, + { + "kind": "number", + "nativeSrc": "21302:2:19", + "nodeType": "YulLiteral", + "src": "21302:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21287:3:19", + "nodeType": "YulIdentifier", + "src": "21287:3:19" + }, + "nativeSrc": "21287:18:19", + "nodeType": "YulFunctionCall", + "src": "21287:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "21274:9:19", + "nodeType": "YulIdentifier", + "src": "21274:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "21110:1:19", + "nodeType": "YulIdentifier", + "src": "21110:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "21113:7:19", + "nodeType": "YulIdentifier", + "src": "21113:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "21107:2:19", + "nodeType": "YulIdentifier", + "src": "21107:2:19" + }, + "nativeSrc": "21107:14:19", + "nodeType": "YulFunctionCall", + "src": "21107:14:19" + }, + "nativeSrc": "21099:224:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "21122:21:19", + "nodeType": "YulBlock", + "src": "21122:21:19", + "statements": [ + { + "nativeSrc": "21124:17:19", + "nodeType": "YulAssignment", + "src": "21124:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "21133:1:19", + "nodeType": "YulIdentifier", + "src": "21133:1:19" + }, + { + "kind": "number", + "nativeSrc": "21136:4:19", + "nodeType": "YulLiteral", + "src": "21136:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21129:3:19", + "nodeType": "YulIdentifier", + "src": "21129:3:19" + }, + "nativeSrc": "21129:12:19", + "nodeType": "YulFunctionCall", + "src": "21129:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "21124:1:19", + "nodeType": "YulIdentifier", + "src": "21124:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "21103:3:19", + "nodeType": "YulBlock", + "src": "21103:3:19", + "statements": [] + }, + "src": "21099:224:19" + }, + { + "body": { + "nativeSrc": "21363:168:19", + "nodeType": "YulBlock", + "src": "21363:168:19", + "statements": [ + { + "nativeSrc": "21385:43:19", + "nodeType": "YulVariableDeclaration", + "src": "21385:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "21412:3:19", + "nodeType": "YulIdentifier", + "src": "21412:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "21417:9:19", + "nodeType": "YulIdentifier", + "src": "21417:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21408:3:19", + "nodeType": "YulIdentifier", + "src": "21408:3:19" + }, + "nativeSrc": "21408:19:19", + "nodeType": "YulFunctionCall", + "src": "21408:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "21402:5:19", + "nodeType": "YulIdentifier", + "src": "21402:5:19" + }, + "nativeSrc": "21402:26:19", + "nodeType": "YulFunctionCall", + "src": "21402:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "21389:9:19", + "nodeType": "YulTypedName", + "src": "21389:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "21456:6:19", + "nodeType": "YulIdentifier", + "src": "21456:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "21483:9:19", + "nodeType": "YulIdentifier", + "src": "21483:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "21498:6:19", + "nodeType": "YulIdentifier", + "src": "21498:6:19" + }, + { + "kind": "number", + "nativeSrc": "21506:4:19", + "nodeType": "YulLiteral", + "src": "21506:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21494:3:19", + "nodeType": "YulIdentifier", + "src": "21494:3:19" + }, + "nativeSrc": "21494:17:19", + "nodeType": "YulFunctionCall", + "src": "21494:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "21464:18:19", + "nodeType": "YulIdentifier", + "src": "21464:18:19" + }, + "nativeSrc": "21464:48:19", + "nodeType": "YulFunctionCall", + "src": "21464:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "21449:6:19", + "nodeType": "YulIdentifier", + "src": "21449:6:19" + }, + "nativeSrc": "21449:64:19", + "nodeType": "YulFunctionCall", + "src": "21449:64:19" + }, + "nativeSrc": "21449:64:19", + "nodeType": "YulExpressionStatement", + "src": "21449:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "21346:7:19", + "nodeType": "YulIdentifier", + "src": "21346:7:19" + }, + { + "name": "newLen", + "nativeSrc": "21355:6:19", + "nodeType": "YulIdentifier", + "src": "21355:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "21343:2:19", + "nodeType": "YulIdentifier", + "src": "21343:2:19" + }, + "nativeSrc": "21343:19:19", + "nodeType": "YulFunctionCall", + "src": "21343:19:19" + }, + "nativeSrc": "21340:191:19", + "nodeType": "YulIf", + "src": "21340:191:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "21555:4:19", + "nodeType": "YulIdentifier", + "src": "21555:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "21569:6:19", + "nodeType": "YulIdentifier", + "src": "21569:6:19" + }, + { + "kind": "number", + "nativeSrc": "21577:1:19", + "nodeType": "YulLiteral", + "src": "21577:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "21565:3:19", + "nodeType": "YulIdentifier", + "src": "21565:3:19" + }, + "nativeSrc": "21565:14:19", + "nodeType": "YulFunctionCall", + "src": "21565:14:19" + }, + { + "kind": "number", + "nativeSrc": "21581:1:19", + "nodeType": "YulLiteral", + "src": "21581:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21561:3:19", + "nodeType": "YulIdentifier", + "src": "21561:3:19" + }, + "nativeSrc": "21561:22:19", + "nodeType": "YulFunctionCall", + "src": "21561:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "21548:6:19", + "nodeType": "YulIdentifier", + "src": "21548:6:19" + }, + "nativeSrc": "21548:36:19", + "nodeType": "YulFunctionCall", + "src": "21548:36:19" + }, + "nativeSrc": "21548:36:19", + "nodeType": "YulExpressionStatement", + "src": "21548:36:19" + } + ] + }, + "nativeSrc": "20924:674:19", + "nodeType": "YulCase", + "src": "20924:674:19", + "value": { + "kind": "number", + "nativeSrc": "20929:1:19", + "nodeType": "YulLiteral", + "src": "20929:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "21619:246:19", + "nodeType": "YulBlock", + "src": "21619:246:19", + "statements": [ + { + "nativeSrc": "21637:14:19", + "nodeType": "YulVariableDeclaration", + "src": "21637:14:19", + "value": { + "kind": "number", + "nativeSrc": "21650:1:19", + "nodeType": "YulLiteral", + "src": "21650:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "21641:5:19", + "nodeType": "YulTypedName", + "src": "21641:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21678:75:19", + "nodeType": "YulBlock", + "src": "21678:75:19", + "statements": [ + { + "nativeSrc": "21700:35:19", + "nodeType": "YulAssignment", + "src": "21700:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "21719:3:19", + "nodeType": "YulIdentifier", + "src": "21719:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "21724:9:19", + "nodeType": "YulIdentifier", + "src": "21724:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21715:3:19", + "nodeType": "YulIdentifier", + "src": "21715:3:19" + }, + "nativeSrc": "21715:19:19", + "nodeType": "YulFunctionCall", + "src": "21715:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "21709:5:19", + "nodeType": "YulIdentifier", + "src": "21709:5:19" + }, + "nativeSrc": "21709:26:19", + "nodeType": "YulFunctionCall", + "src": "21709:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "21700:5:19", + "nodeType": "YulIdentifier", + "src": "21700:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "21671:6:19", + "nodeType": "YulIdentifier", + "src": "21671:6:19" + }, + "nativeSrc": "21668:85:19", + "nodeType": "YulIf", + "src": "21668:85:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "21777:4:19", + "nodeType": "YulIdentifier", + "src": "21777:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "21836:5:19", + "nodeType": "YulIdentifier", + "src": "21836:5:19" + }, + { + "name": "newLen", + "nativeSrc": "21843:6:19", + "nodeType": "YulIdentifier", + "src": "21843:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "21783:52:19", + "nodeType": "YulIdentifier", + "src": "21783:52:19" + }, + "nativeSrc": "21783:67:19", + "nodeType": "YulFunctionCall", + "src": "21783:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "21770:6:19", + "nodeType": "YulIdentifier", + "src": "21770:6:19" + }, + "nativeSrc": "21770:81:19", + "nodeType": "YulFunctionCall", + "src": "21770:81:19" + }, + "nativeSrc": "21770:81:19", + "nodeType": "YulExpressionStatement", + "src": "21770:81:19" + } + ] + }, + "nativeSrc": "21611:254:19", + "nodeType": "YulCase", + "src": "21611:254:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "20900:6:19", + "nodeType": "YulIdentifier", + "src": "20900:6:19" + }, + { + "kind": "number", + "nativeSrc": "20908:2:19", + "nodeType": "YulLiteral", + "src": "20908:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20897:2:19", + "nodeType": "YulIdentifier", + "src": "20897:2:19" + }, + "nativeSrc": "20897:14:19", + "nodeType": "YulFunctionCall", + "src": "20897:14:19" + }, + "nativeSrc": "20890:975:19", + "nodeType": "YulSwitch", + "src": "20890:975:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "20352:1523:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "20433:4:19", + "nodeType": "YulTypedName", + "src": "20433:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "20439:3:19", + "nodeType": "YulTypedName", + "src": "20439:3:19", + "type": "" + } + ], + "src": "20352:1523:19" + }, + { + "body": { + "nativeSrc": "21991:69:19", + "nodeType": "YulBlock", + "src": "21991:69:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "22017:6:19", + "nodeType": "YulIdentifier", + "src": "22017:6:19" + }, + { + "kind": "number", + "nativeSrc": "22025:1:19", + "nodeType": "YulLiteral", + "src": "22025:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22013:3:19", + "nodeType": "YulIdentifier", + "src": "22013:3:19" + }, + "nativeSrc": "22013:14:19", + "nodeType": "YulFunctionCall", + "src": "22013:14:19" + }, + { + "hexValue": "77726f6e6720616d6f756e742073656e74", + "kind": "string", + "nativeSrc": "22029:19:19", + "nodeType": "YulLiteral", + "src": "22029:19:19", + "type": "", + "value": "wrong amount sent" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22006:6:19", + "nodeType": "YulIdentifier", + "src": "22006:6:19" + }, + "nativeSrc": "22006:43:19", + "nodeType": "YulFunctionCall", + "src": "22006:43:19" + }, + "nativeSrc": "22006:43:19", + "nodeType": "YulExpressionStatement", + "src": "22006:43:19" + } + ] + }, + "name": "store_literal_in_memory_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac", + "nativeSrc": "21885:175:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "21983:6:19", + "nodeType": "YulTypedName", + "src": "21983:6:19", + "type": "" + } + ], + "src": "21885:175:19" + }, + { + "body": { + "nativeSrc": "22216:236:19", + "nodeType": "YulBlock", + "src": "22216:236:19", + "statements": [ + { + "nativeSrc": "22230:74:19", + "nodeType": "YulAssignment", + "src": "22230:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22296:3:19", + "nodeType": "YulIdentifier", + "src": "22296:3:19" + }, + { + "kind": "number", + "nativeSrc": "22301:2:19", + "nodeType": "YulLiteral", + "src": "22301:2:19", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "22237:58:19", + "nodeType": "YulIdentifier", + "src": "22237:58:19" + }, + "nativeSrc": "22237:67:19", + "nodeType": "YulFunctionCall", + "src": "22237:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "22230:3:19", + "nodeType": "YulIdentifier", + "src": "22230:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22406:3:19", + "nodeType": "YulIdentifier", + "src": "22406:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac", + "nativeSrc": "22317:88:19", + "nodeType": "YulIdentifier", + "src": "22317:88:19" + }, + "nativeSrc": "22317:93:19", + "nodeType": "YulFunctionCall", + "src": "22317:93:19" + }, + "nativeSrc": "22317:93:19", + "nodeType": "YulExpressionStatement", + "src": "22317:93:19" + }, + { + "nativeSrc": "22423:19:19", + "nodeType": "YulAssignment", + "src": "22423:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22434:3:19", + "nodeType": "YulIdentifier", + "src": "22434:3:19" + }, + { + "kind": "number", + "nativeSrc": "22439:2:19", + "nodeType": "YulLiteral", + "src": "22439:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22430:3:19", + "nodeType": "YulIdentifier", + "src": "22430:3:19" + }, + "nativeSrc": "22430:12:19", + "nodeType": "YulFunctionCall", + "src": "22430:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "22423:3:19", + "nodeType": "YulIdentifier", + "src": "22423:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22070:382:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "22204:3:19", + "nodeType": "YulTypedName", + "src": "22204:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "22212:3:19", + "nodeType": "YulTypedName", + "src": "22212:3:19", + "type": "" + } + ], + "src": "22070:382:19" + }, + { + "body": { + "nativeSrc": "22633:264:19", + "nodeType": "YulBlock", + "src": "22633:264:19", + "statements": [ + { + "nativeSrc": "22647:26:19", + "nodeType": "YulAssignment", + "src": "22647:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22659:9:19", + "nodeType": "YulIdentifier", + "src": "22659:9:19" + }, + { + "kind": "number", + "nativeSrc": "22670:2:19", + "nodeType": "YulLiteral", + "src": "22670:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22655:3:19", + "nodeType": "YulIdentifier", + "src": "22655:3:19" + }, + "nativeSrc": "22655:18:19", + "nodeType": "YulFunctionCall", + "src": "22655:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22647:4:19", + "nodeType": "YulIdentifier", + "src": "22647:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22698:9:19", + "nodeType": "YulIdentifier", + "src": "22698:9:19" + }, + { + "kind": "number", + "nativeSrc": "22709:1:19", + "nodeType": "YulLiteral", + "src": "22709:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22694:3:19", + "nodeType": "YulIdentifier", + "src": "22694:3:19" + }, + "nativeSrc": "22694:17:19", + "nodeType": "YulFunctionCall", + "src": "22694:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22717:4:19", + "nodeType": "YulIdentifier", + "src": "22717:4:19" + }, + { + "name": "headStart", + "nativeSrc": "22723:9:19", + "nodeType": "YulIdentifier", + "src": "22723:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22713:3:19", + "nodeType": "YulIdentifier", + "src": "22713:3:19" + }, + "nativeSrc": "22713:20:19", + "nodeType": "YulFunctionCall", + "src": "22713:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22687:6:19", + "nodeType": "YulIdentifier", + "src": "22687:6:19" + }, + "nativeSrc": "22687:47:19", + "nodeType": "YulFunctionCall", + "src": "22687:47:19" + }, + "nativeSrc": "22687:47:19", + "nodeType": "YulExpressionStatement", + "src": "22687:47:19" + }, + { + "nativeSrc": "22747:139:19", + "nodeType": "YulAssignment", + "src": "22747:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22881:4:19", + "nodeType": "YulIdentifier", + "src": "22881:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22755:124:19", + "nodeType": "YulIdentifier", + "src": "22755:124:19" + }, + "nativeSrc": "22755:131:19", + "nodeType": "YulFunctionCall", + "src": "22755:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22747:4:19", + "nodeType": "YulIdentifier", + "src": "22747:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "22462:435:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22613:9:19", + "nodeType": "YulTypedName", + "src": "22613:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22628:4:19", + "nodeType": "YulTypedName", + "src": "22628:4:19", + "type": "" + } + ], + "src": "22462:435:19" + }, + { + "body": { + "nativeSrc": "23013:77:19", + "nodeType": "YulBlock", + "src": "23013:77:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23039:6:19", + "nodeType": "YulIdentifier", + "src": "23039:6:19" + }, + { + "kind": "number", + "nativeSrc": "23047:1:19", + "nodeType": "YulLiteral", + "src": "23047:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23035:3:19", + "nodeType": "YulIdentifier", + "src": "23035:3:19" + }, + "nativeSrc": "23035:14:19", + "nodeType": "YulFunctionCall", + "src": "23035:14:19" + }, + { + "hexValue": "6d696e7473207065722077616c6c6574206578636565646564", + "kind": "string", + "nativeSrc": "23051:27:19", + "nodeType": "YulLiteral", + "src": "23051:27:19", + "type": "", + "value": "mints per wallet exceeded" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23028:6:19", + "nodeType": "YulIdentifier", + "src": "23028:6:19" + }, + "nativeSrc": "23028:51:19", + "nodeType": "YulFunctionCall", + "src": "23028:51:19" + }, + "nativeSrc": "23028:51:19", + "nodeType": "YulExpressionStatement", + "src": "23028:51:19" + } + ] + }, + "name": "store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "nativeSrc": "22907:183:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "23005:6:19", + "nodeType": "YulTypedName", + "src": "23005:6:19", + "type": "" + } + ], + "src": "22907:183:19" + }, + { + "body": { + "nativeSrc": "23246:236:19", + "nodeType": "YulBlock", + "src": "23246:236:19", + "statements": [ + { + "nativeSrc": "23260:74:19", + "nodeType": "YulAssignment", + "src": "23260:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23326:3:19", + "nodeType": "YulIdentifier", + "src": "23326:3:19" + }, + { + "kind": "number", + "nativeSrc": "23331:2:19", + "nodeType": "YulLiteral", + "src": "23331:2:19", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "23267:58:19", + "nodeType": "YulIdentifier", + "src": "23267:58:19" + }, + "nativeSrc": "23267:67:19", + "nodeType": "YulFunctionCall", + "src": "23267:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "23260:3:19", + "nodeType": "YulIdentifier", + "src": "23260:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23436:3:19", + "nodeType": "YulIdentifier", + "src": "23436:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c", + "nativeSrc": "23347:88:19", + "nodeType": "YulIdentifier", + "src": "23347:88:19" + }, + "nativeSrc": "23347:93:19", + "nodeType": "YulFunctionCall", + "src": "23347:93:19" + }, + "nativeSrc": "23347:93:19", + "nodeType": "YulExpressionStatement", + "src": "23347:93:19" + }, + { + "nativeSrc": "23453:19:19", + "nodeType": "YulAssignment", + "src": "23453:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23464:3:19", + "nodeType": "YulIdentifier", + "src": "23464:3:19" + }, + { + "kind": "number", + "nativeSrc": "23469:2:19", + "nodeType": "YulLiteral", + "src": "23469:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23460:3:19", + "nodeType": "YulIdentifier", + "src": "23460:3:19" + }, + "nativeSrc": "23460:12:19", + "nodeType": "YulFunctionCall", + "src": "23460:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "23453:3:19", + "nodeType": "YulIdentifier", + "src": "23453:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23100:382:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23234:3:19", + "nodeType": "YulTypedName", + "src": "23234:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23242:3:19", + "nodeType": "YulTypedName", + "src": "23242:3:19", + "type": "" + } + ], + "src": "23100:382:19" + }, + { + "body": { + "nativeSrc": "23663:264:19", + "nodeType": "YulBlock", + "src": "23663:264:19", + "statements": [ + { + "nativeSrc": "23677:26:19", + "nodeType": "YulAssignment", + "src": "23677:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23689:9:19", + "nodeType": "YulIdentifier", + "src": "23689:9:19" + }, + { + "kind": "number", + "nativeSrc": "23700:2:19", + "nodeType": "YulLiteral", + "src": "23700:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23685:3:19", + "nodeType": "YulIdentifier", + "src": "23685:3:19" + }, + "nativeSrc": "23685:18:19", + "nodeType": "YulFunctionCall", + "src": "23685:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23677:4:19", + "nodeType": "YulIdentifier", + "src": "23677:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23728:9:19", + "nodeType": "YulIdentifier", + "src": "23728:9:19" + }, + { + "kind": "number", + "nativeSrc": "23739:1:19", + "nodeType": "YulLiteral", + "src": "23739:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23724:3:19", + "nodeType": "YulIdentifier", + "src": "23724:3:19" + }, + "nativeSrc": "23724:17:19", + "nodeType": "YulFunctionCall", + "src": "23724:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23747:4:19", + "nodeType": "YulIdentifier", + "src": "23747:4:19" + }, + { + "name": "headStart", + "nativeSrc": "23753:9:19", + "nodeType": "YulIdentifier", + "src": "23753:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23743:3:19", + "nodeType": "YulIdentifier", + "src": "23743:3:19" + }, + "nativeSrc": "23743:20:19", + "nodeType": "YulFunctionCall", + "src": "23743:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23717:6:19", + "nodeType": "YulIdentifier", + "src": "23717:6:19" + }, + "nativeSrc": "23717:47:19", + "nodeType": "YulFunctionCall", + "src": "23717:47:19" + }, + "nativeSrc": "23717:47:19", + "nodeType": "YulExpressionStatement", + "src": "23717:47:19" + }, + { + "nativeSrc": "23777:139:19", + "nodeType": "YulAssignment", + "src": "23777:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23911:4:19", + "nodeType": "YulIdentifier", + "src": "23911:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23785:124:19", + "nodeType": "YulIdentifier", + "src": "23785:124:19" + }, + "nativeSrc": "23785:131:19", + "nodeType": "YulFunctionCall", + "src": "23785:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23777:4:19", + "nodeType": "YulIdentifier", + "src": "23777:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "23492:435:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23643:9:19", + "nodeType": "YulTypedName", + "src": "23643:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23658:4:19", + "nodeType": "YulTypedName", + "src": "23658:4:19", + "type": "" + } + ], + "src": "23492:435:19" + }, + { + "body": { + "nativeSrc": "23965:168:19", + "nodeType": "YulBlock", + "src": "23965:168:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23986:1:19", + "nodeType": "YulLiteral", + "src": "23986:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23989:77:19", + "nodeType": "YulLiteral", + "src": "23989:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23979:6:19", + "nodeType": "YulIdentifier", + "src": "23979:6:19" + }, + "nativeSrc": "23979:88:19", + "nodeType": "YulFunctionCall", + "src": "23979:88:19" + }, + "nativeSrc": "23979:88:19", + "nodeType": "YulExpressionStatement", + "src": "23979:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24087:1:19", + "nodeType": "YulLiteral", + "src": "24087:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "24090:4:19", + "nodeType": "YulLiteral", + "src": "24090:4:19", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24080:6:19", + "nodeType": "YulIdentifier", + "src": "24080:6:19" + }, + "nativeSrc": "24080:15:19", + "nodeType": "YulFunctionCall", + "src": "24080:15:19" + }, + "nativeSrc": "24080:15:19", + "nodeType": "YulExpressionStatement", + "src": "24080:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24115:1:19", + "nodeType": "YulLiteral", + "src": "24115:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24118:4:19", + "nodeType": "YulLiteral", + "src": "24118:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24108:6:19", + "nodeType": "YulIdentifier", + "src": "24108:6:19" + }, + "nativeSrc": "24108:15:19", + "nodeType": "YulFunctionCall", + "src": "24108:15:19" + }, + "nativeSrc": "24108:15:19", + "nodeType": "YulExpressionStatement", + "src": "24108:15:19" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "23937:196:19", + "nodeType": "YulFunctionDefinition", + "src": "23937:196:19" + }, + { + "body": { + "nativeSrc": "24187:167:19", + "nodeType": "YulBlock", + "src": "24187:167:19", + "statements": [ + { + "nativeSrc": "24201:25:19", + "nodeType": "YulAssignment", + "src": "24201:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "24224:1:19", + "nodeType": "YulIdentifier", + "src": "24224:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24206:17:19", + "nodeType": "YulIdentifier", + "src": "24206:17:19" + }, + "nativeSrc": "24206:20:19", + "nodeType": "YulFunctionCall", + "src": "24206:20:19" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "24201:1:19", + "nodeType": "YulIdentifier", + "src": "24201:1:19" + } + ] + }, + { + "nativeSrc": "24239:25:19", + "nodeType": "YulAssignment", + "src": "24239:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "24262:1:19", + "nodeType": "YulIdentifier", + "src": "24262:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24244:17:19", + "nodeType": "YulIdentifier", + "src": "24244:17:19" + }, + "nativeSrc": "24244:20:19", + "nodeType": "YulFunctionCall", + "src": "24244:20:19" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "24239:1:19", + "nodeType": "YulIdentifier", + "src": "24239:1:19" + } + ] + }, + { + "nativeSrc": "24277:16:19", + "nodeType": "YulAssignment", + "src": "24277:16:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "24288:1:19", + "nodeType": "YulIdentifier", + "src": "24288:1:19" + }, + { + "name": "y", + "nativeSrc": "24291:1:19", + "nodeType": "YulIdentifier", + "src": "24291:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24284:3:19", + "nodeType": "YulIdentifier", + "src": "24284:3:19" + }, + "nativeSrc": "24284:9:19", + "nodeType": "YulFunctionCall", + "src": "24284:9:19" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "24277:3:19", + "nodeType": "YulIdentifier", + "src": "24277:3:19" + } + ] + }, + { + "body": { + "nativeSrc": "24321:22:19", + "nodeType": "YulBlock", + "src": "24321:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "24323:16:19", + "nodeType": "YulIdentifier", + "src": "24323:16:19" + }, + "nativeSrc": "24323:18:19", + "nodeType": "YulFunctionCall", + "src": "24323:18:19" + }, + "nativeSrc": "24323:18:19", + "nodeType": "YulExpressionStatement", + "src": "24323:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "24313:1:19", + "nodeType": "YulIdentifier", + "src": "24313:1:19" + }, + { + "name": "sum", + "nativeSrc": "24316:3:19", + "nodeType": "YulIdentifier", + "src": "24316:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "24310:2:19", + "nodeType": "YulIdentifier", + "src": "24310:2:19" + }, + "nativeSrc": "24310:10:19", + "nodeType": "YulFunctionCall", + "src": "24310:10:19" + }, + "nativeSrc": "24307:36:19", + "nodeType": "YulIf", + "src": "24307:36:19" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "24143:211:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "24174:1:19", + "nodeType": "YulTypedName", + "src": "24174:1:19", + "type": "" + }, + { + "name": "y", + "nativeSrc": "24177:1:19", + "nodeType": "YulTypedName", + "src": "24177:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "24183:3:19", + "nodeType": "YulTypedName", + "src": "24183:3:19", + "type": "" + } + ], + "src": "24143:211:19" + }, + { + "body": { + "nativeSrc": "24409:169:19", + "nodeType": "YulBlock", + "src": "24409:169:19", + "statements": [ + { + "nativeSrc": "24423:25:19", + "nodeType": "YulAssignment", + "src": "24423:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "24446:1:19", + "nodeType": "YulIdentifier", + "src": "24446:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24428:17:19", + "nodeType": "YulIdentifier", + "src": "24428:17:19" + }, + "nativeSrc": "24428:20:19", + "nodeType": "YulFunctionCall", + "src": "24428:20:19" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "24423:1:19", + "nodeType": "YulIdentifier", + "src": "24423:1:19" + } + ] + }, + { + "nativeSrc": "24461:25:19", + "nodeType": "YulAssignment", + "src": "24461:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "24484:1:19", + "nodeType": "YulIdentifier", + "src": "24484:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24466:17:19", + "nodeType": "YulIdentifier", + "src": "24466:17:19" + }, + "nativeSrc": "24466:20:19", + "nodeType": "YulFunctionCall", + "src": "24466:20:19" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "24461:1:19", + "nodeType": "YulIdentifier", + "src": "24461:1:19" + } + ] + }, + { + "nativeSrc": "24499:17:19", + "nodeType": "YulAssignment", + "src": "24499:17:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "24511:1:19", + "nodeType": "YulIdentifier", + "src": "24511:1:19" + }, + { + "name": "y", + "nativeSrc": "24514:1:19", + "nodeType": "YulIdentifier", + "src": "24514:1:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24507:3:19", + "nodeType": "YulIdentifier", + "src": "24507:3:19" + }, + "nativeSrc": "24507:9:19", + "nodeType": "YulFunctionCall", + "src": "24507:9:19" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "24499:4:19", + "nodeType": "YulIdentifier", + "src": "24499:4:19" + } + ] + }, + { + "body": { + "nativeSrc": "24545:22:19", + "nodeType": "YulBlock", + "src": "24545:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "24547:16:19", + "nodeType": "YulIdentifier", + "src": "24547:16:19" + }, + "nativeSrc": "24547:18:19", + "nodeType": "YulFunctionCall", + "src": "24547:18:19" + }, + "nativeSrc": "24547:18:19", + "nodeType": "YulExpressionStatement", + "src": "24547:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "24536:4:19", + "nodeType": "YulIdentifier", + "src": "24536:4:19" + }, + { + "name": "x", + "nativeSrc": "24542:1:19", + "nodeType": "YulIdentifier", + "src": "24542:1:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "24533:2:19", + "nodeType": "YulIdentifier", + "src": "24533:2:19" + }, + "nativeSrc": "24533:11:19", + "nodeType": "YulFunctionCall", + "src": "24533:11:19" + }, + "nativeSrc": "24530:37:19", + "nodeType": "YulIf", + "src": "24530:37:19" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "24364:214:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "24395:1:19", + "nodeType": "YulTypedName", + "src": "24395:1:19", + "type": "" + }, + { + "name": "y", + "nativeSrc": "24398:1:19", + "nodeType": "YulTypedName", + "src": "24398:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "24404:4:19", + "nodeType": "YulTypedName", + "src": "24404:4:19", + "type": "" + } + ], + "src": "24364:214:19" + }, + { + "body": { + "nativeSrc": "24616:168:19", + "nodeType": "YulBlock", + "src": "24616:168:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24637:1:19", + "nodeType": "YulLiteral", + "src": "24637:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24640:77:19", + "nodeType": "YulLiteral", + "src": "24640:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24630:6:19", + "nodeType": "YulIdentifier", + "src": "24630:6:19" + }, + "nativeSrc": "24630:88:19", + "nodeType": "YulFunctionCall", + "src": "24630:88:19" + }, + "nativeSrc": "24630:88:19", + "nodeType": "YulExpressionStatement", + "src": "24630:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24738:1:19", + "nodeType": "YulLiteral", + "src": "24738:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "24741:4:19", + "nodeType": "YulLiteral", + "src": "24741:4:19", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24731:6:19", + "nodeType": "YulIdentifier", + "src": "24731:6:19" + }, + "nativeSrc": "24731:15:19", + "nodeType": "YulFunctionCall", + "src": "24731:15:19" + }, + "nativeSrc": "24731:15:19", + "nodeType": "YulExpressionStatement", + "src": "24731:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24766:1:19", + "nodeType": "YulLiteral", + "src": "24766:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24769:4:19", + "nodeType": "YulLiteral", + "src": "24769:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24759:6:19", + "nodeType": "YulIdentifier", + "src": "24759:6:19" + }, + "nativeSrc": "24759:15:19", + "nodeType": "YulFunctionCall", + "src": "24759:15:19" + }, + "nativeSrc": "24759:15:19", + "nodeType": "YulExpressionStatement", + "src": "24759:15:19" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "24588:196:19", + "nodeType": "YulFunctionDefinition", + "src": "24588:196:19" + }, + { + "body": { + "nativeSrc": "24837:206:19", + "nodeType": "YulBlock", + "src": "24837:206:19", + "statements": [ + { + "nativeSrc": "24851:33:19", + "nodeType": "YulAssignment", + "src": "24851:33:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24878:5:19", + "nodeType": "YulIdentifier", + "src": "24878:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24860:17:19", + "nodeType": "YulIdentifier", + "src": "24860:17:19" + }, + "nativeSrc": "24860:24:19", + "nodeType": "YulFunctionCall", + "src": "24860:24:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24851:5:19", + "nodeType": "YulIdentifier", + "src": "24851:5:19" + } + ] + }, + { + "body": { + "nativeSrc": "24978:22:19", + "nodeType": "YulBlock", + "src": "24978:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "24980:16:19", + "nodeType": "YulIdentifier", + "src": "24980:16:19" + }, + "nativeSrc": "24980:18:19", + "nodeType": "YulFunctionCall", + "src": "24980:18:19" + }, + "nativeSrc": "24980:18:19", + "nodeType": "YulExpressionStatement", + "src": "24980:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24903:5:19", + "nodeType": "YulIdentifier", + "src": "24903:5:19" + }, + { + "kind": "number", + "nativeSrc": "24910:66:19", + "nodeType": "YulLiteral", + "src": "24910:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "24900:2:19", + "nodeType": "YulIdentifier", + "src": "24900:2:19" + }, + "nativeSrc": "24900:77:19", + "nodeType": "YulFunctionCall", + "src": "24900:77:19" + }, + "nativeSrc": "24897:103:19", + "nodeType": "YulIf", + "src": "24897:103:19" + }, + { + "nativeSrc": "25013:20:19", + "nodeType": "YulAssignment", + "src": "25013:20:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25024:5:19", + "nodeType": "YulIdentifier", + "src": "25024:5:19" + }, + { + "kind": "number", + "nativeSrc": "25031:1:19", + "nodeType": "YulLiteral", + "src": "25031:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25020:3:19", + "nodeType": "YulIdentifier", + "src": "25020:3:19" + }, + "nativeSrc": "25020:13:19", + "nodeType": "YulFunctionCall", + "src": "25020:13:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "25013:3:19", + "nodeType": "YulIdentifier", + "src": "25013:3:19" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "24794:249:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24823:5:19", + "nodeType": "YulTypedName", + "src": "24823:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24833:3:19", + "nodeType": "YulTypedName", + "src": "24833:3:19", + "type": "" + } + ], + "src": "24794:249:19" + }, + { + "body": { + "nativeSrc": "25111:48:19", + "nodeType": "YulBlock", + "src": "25111:48:19", + "statements": [ + { + "nativeSrc": "25126:22:19", + "nodeType": "YulAssignment", + "src": "25126:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25142:5:19", + "nodeType": "YulIdentifier", + "src": "25142:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25136:5:19", + "nodeType": "YulIdentifier", + "src": "25136:5:19" + }, + "nativeSrc": "25136:12:19", + "nodeType": "YulFunctionCall", + "src": "25136:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "25126:6:19", + "nodeType": "YulIdentifier", + "src": "25126:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "25053:106:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25094:5:19", + "nodeType": "YulTypedName", + "src": "25094:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "25104:6:19", + "nodeType": "YulTypedName", + "src": "25104:6:19", + "type": "" + } + ], + "src": "25053:106:19" + }, + { + "body": { + "nativeSrc": "25264:85:19", + "nodeType": "YulBlock", + "src": "25264:85:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25285:3:19", + "nodeType": "YulIdentifier", + "src": "25285:3:19" + }, + { + "name": "length", + "nativeSrc": "25290:6:19", + "nodeType": "YulIdentifier", + "src": "25290:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25278:6:19", + "nodeType": "YulIdentifier", + "src": "25278:6:19" + }, + "nativeSrc": "25278:19:19", + "nodeType": "YulFunctionCall", + "src": "25278:19:19" + }, + "nativeSrc": "25278:19:19", + "nodeType": "YulExpressionStatement", + "src": "25278:19:19" + }, + { + "nativeSrc": "25310:29:19", + "nodeType": "YulAssignment", + "src": "25310:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25329:3:19", + "nodeType": "YulIdentifier", + "src": "25329:3:19" + }, + { + "kind": "number", + "nativeSrc": "25334:4:19", + "nodeType": "YulLiteral", + "src": "25334:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25325:3:19", + "nodeType": "YulIdentifier", + "src": "25325:3:19" + }, + "nativeSrc": "25325:14:19", + "nodeType": "YulFunctionCall", + "src": "25325:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "25310:11:19", + "nodeType": "YulIdentifier", + "src": "25310:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "25169:180:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "25236:3:19", + "nodeType": "YulTypedName", + "src": "25236:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "25241:6:19", + "nodeType": "YulTypedName", + "src": "25241:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "25252:11:19", + "nodeType": "YulTypedName", + "src": "25252:11:19", + "type": "" + } + ], + "src": "25169:180:19" + }, + { + "body": { + "nativeSrc": "25449:303:19", + "nodeType": "YulBlock", + "src": "25449:303:19", + "statements": [ + { + "nativeSrc": "25463:52:19", + "nodeType": "YulVariableDeclaration", + "src": "25463:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25509:5:19", + "nodeType": "YulIdentifier", + "src": "25509:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "25477:31:19", + "nodeType": "YulIdentifier", + "src": "25477:31:19" + }, + "nativeSrc": "25477:38:19", + "nodeType": "YulFunctionCall", + "src": "25477:38:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "25467:6:19", + "nodeType": "YulTypedName", + "src": "25467:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "25528:77:19", + "nodeType": "YulAssignment", + "src": "25528:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25593:3:19", + "nodeType": "YulIdentifier", + "src": "25593:3:19" + }, + { + "name": "length", + "nativeSrc": "25598:6:19", + "nodeType": "YulIdentifier", + "src": "25598:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "25535:57:19", + "nodeType": "YulIdentifier", + "src": "25535:57:19" + }, + "nativeSrc": "25535:70:19", + "nodeType": "YulFunctionCall", + "src": "25535:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25528:3:19", + "nodeType": "YulIdentifier", + "src": "25528:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25657:5:19", + "nodeType": "YulIdentifier", + "src": "25657:5:19" + }, + { + "kind": "number", + "nativeSrc": "25664:4:19", + "nodeType": "YulLiteral", + "src": "25664:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25653:3:19", + "nodeType": "YulIdentifier", + "src": "25653:3:19" + }, + "nativeSrc": "25653:16:19", + "nodeType": "YulFunctionCall", + "src": "25653:16:19" + }, + { + "name": "pos", + "nativeSrc": "25671:3:19", + "nodeType": "YulIdentifier", + "src": "25671:3:19" + }, + { + "name": "length", + "nativeSrc": "25676:6:19", + "nodeType": "YulIdentifier", + "src": "25676:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "25618:34:19", + "nodeType": "YulIdentifier", + "src": "25618:34:19" + }, + "nativeSrc": "25618:65:19", + "nodeType": "YulFunctionCall", + "src": "25618:65:19" + }, + "nativeSrc": "25618:65:19", + "nodeType": "YulExpressionStatement", + "src": "25618:65:19" + }, + { + "nativeSrc": "25696:46:19", + "nodeType": "YulAssignment", + "src": "25696:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25707:3:19", + "nodeType": "YulIdentifier", + "src": "25707:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "25734:6:19", + "nodeType": "YulIdentifier", + "src": "25734:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "25712:21:19", + "nodeType": "YulIdentifier", + "src": "25712:21:19" + }, + "nativeSrc": "25712:29:19", + "nodeType": "YulFunctionCall", + "src": "25712:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25703:3:19", + "nodeType": "YulIdentifier", + "src": "25703:3:19" + }, + "nativeSrc": "25703:39:19", + "nodeType": "YulFunctionCall", + "src": "25703:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25696:3:19", + "nodeType": "YulIdentifier", + "src": "25696:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "25359:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25430:5:19", + "nodeType": "YulTypedName", + "src": "25430:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "25437:3:19", + "nodeType": "YulTypedName", + "src": "25437:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "25445:3:19", + "nodeType": "YulTypedName", + "src": "25445:3:19", + "type": "" + } + ], + "src": "25359:393:19" + }, + { + "body": { + "nativeSrc": "25962:468:19", + "nodeType": "YulBlock", + "src": "25962:468:19", + "statements": [ + { + "nativeSrc": "25976:27:19", + "nodeType": "YulAssignment", + "src": "25976:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25988:9:19", + "nodeType": "YulIdentifier", + "src": "25988:9:19" + }, + { + "kind": "number", + "nativeSrc": "25999:3:19", + "nodeType": "YulLiteral", + "src": "25999:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25984:3:19", + "nodeType": "YulIdentifier", + "src": "25984:3:19" + }, + "nativeSrc": "25984:19:19", + "nodeType": "YulFunctionCall", + "src": "25984:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25976:4:19", + "nodeType": "YulIdentifier", + "src": "25976:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "26061:6:19", + "nodeType": "YulIdentifier", + "src": "26061:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26074:9:19", + "nodeType": "YulIdentifier", + "src": "26074:9:19" + }, + { + "kind": "number", + "nativeSrc": "26085:1:19", + "nodeType": "YulLiteral", + "src": "26085:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26070:3:19", + "nodeType": "YulIdentifier", + "src": "26070:3:19" + }, + "nativeSrc": "26070:17:19", + "nodeType": "YulFunctionCall", + "src": "26070:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "26017:43:19", + "nodeType": "YulIdentifier", + "src": "26017:43:19" + }, + "nativeSrc": "26017:71:19", + "nodeType": "YulFunctionCall", + "src": "26017:71:19" + }, + "nativeSrc": "26017:71:19", + "nodeType": "YulExpressionStatement", + "src": "26017:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26146:6:19", + "nodeType": "YulIdentifier", + "src": "26146:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26159:9:19", + "nodeType": "YulIdentifier", + "src": "26159:9:19" + }, + { + "kind": "number", + "nativeSrc": "26170:2:19", + "nodeType": "YulLiteral", + "src": "26170:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26155:3:19", + "nodeType": "YulIdentifier", + "src": "26155:3:19" + }, + "nativeSrc": "26155:18:19", + "nodeType": "YulFunctionCall", + "src": "26155:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "26102:43:19", + "nodeType": "YulIdentifier", + "src": "26102:43:19" + }, + "nativeSrc": "26102:72:19", + "nodeType": "YulFunctionCall", + "src": "26102:72:19" + }, + "nativeSrc": "26102:72:19", + "nodeType": "YulExpressionStatement", + "src": "26102:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "26232:6:19", + "nodeType": "YulIdentifier", + "src": "26232:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26245:9:19", + "nodeType": "YulIdentifier", + "src": "26245:9:19" + }, + { + "kind": "number", + "nativeSrc": "26256:2:19", + "nodeType": "YulLiteral", + "src": "26256:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26241:3:19", + "nodeType": "YulIdentifier", + "src": "26241:3:19" + }, + "nativeSrc": "26241:18:19", + "nodeType": "YulFunctionCall", + "src": "26241:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "26188:43:19", + "nodeType": "YulIdentifier", + "src": "26188:43:19" + }, + "nativeSrc": "26188:72:19", + "nodeType": "YulFunctionCall", + "src": "26188:72:19" + }, + "nativeSrc": "26188:72:19", + "nodeType": "YulExpressionStatement", + "src": "26188:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26285:9:19", + "nodeType": "YulIdentifier", + "src": "26285:9:19" + }, + { + "kind": "number", + "nativeSrc": "26296:2:19", + "nodeType": "YulLiteral", + "src": "26296:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26281:3:19", + "nodeType": "YulIdentifier", + "src": "26281:3:19" + }, + "nativeSrc": "26281:18:19", + "nodeType": "YulFunctionCall", + "src": "26281:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "26305:4:19", + "nodeType": "YulIdentifier", + "src": "26305:4:19" + }, + { + "name": "headStart", + "nativeSrc": "26311:9:19", + "nodeType": "YulIdentifier", + "src": "26311:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26301:3:19", + "nodeType": "YulIdentifier", + "src": "26301:3:19" + }, + "nativeSrc": "26301:20:19", + "nodeType": "YulFunctionCall", + "src": "26301:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26274:6:19", + "nodeType": "YulIdentifier", + "src": "26274:6:19" + }, + "nativeSrc": "26274:48:19", + "nodeType": "YulFunctionCall", + "src": "26274:48:19" + }, + "nativeSrc": "26274:48:19", + "nodeType": "YulExpressionStatement", + "src": "26274:48:19" + }, + { + "nativeSrc": "26335:84:19", + "nodeType": "YulAssignment", + "src": "26335:84:19", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "26405:6:19", + "nodeType": "YulIdentifier", + "src": "26405:6:19" + }, + { + "name": "tail", + "nativeSrc": "26414:4:19", + "nodeType": "YulIdentifier", + "src": "26414:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "26343:61:19", + "nodeType": "YulIdentifier", + "src": "26343:61:19" + }, + "nativeSrc": "26343:76:19", + "nodeType": "YulFunctionCall", + "src": "26343:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26335:4:19", + "nodeType": "YulIdentifier", + "src": "26335:4:19" + } + ] + } + ] + }, + "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", + "nativeSrc": "25762:668:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25910:9:19", + "nodeType": "YulTypedName", + "src": "25910:9:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "25922:6:19", + "nodeType": "YulTypedName", + "src": "25922:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "25930:6:19", + "nodeType": "YulTypedName", + "src": "25930:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "25938:6:19", + "nodeType": "YulTypedName", + "src": "25938:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "25946:6:19", + "nodeType": "YulTypedName", + "src": "25946:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25957:4:19", + "nodeType": "YulTypedName", + "src": "25957:4:19", + "type": "" + } + ], + "src": "25762:668:19" + }, + { + "body": { + "nativeSrc": "26502:91:19", + "nodeType": "YulBlock", + "src": "26502:91:19", + "statements": [ + { + "nativeSrc": "26516:22:19", + "nodeType": "YulAssignment", + "src": "26516:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "26531:6:19", + "nodeType": "YulIdentifier", + "src": "26531:6:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "26525:5:19", + "nodeType": "YulIdentifier", + "src": "26525:5:19" + }, + "nativeSrc": "26525:13:19", + "nodeType": "YulFunctionCall", + "src": "26525:13:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "26516:5:19", + "nodeType": "YulIdentifier", + "src": "26516:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26577:5:19", + "nodeType": "YulIdentifier", + "src": "26577:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "26551:25:19", + "nodeType": "YulIdentifier", + "src": "26551:25:19" + }, + "nativeSrc": "26551:32:19", + "nodeType": "YulFunctionCall", + "src": "26551:32:19" + }, + "nativeSrc": "26551:32:19", + "nodeType": "YulExpressionStatement", + "src": "26551:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "26440:153:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "26480:6:19", + "nodeType": "YulTypedName", + "src": "26480:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "26488:3:19", + "nodeType": "YulTypedName", + "src": "26488:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "26496:5:19", + "nodeType": "YulTypedName", + "src": "26496:5:19", + "type": "" + } + ], + "src": "26440:153:19" + }, + { + "body": { + "nativeSrc": "26679:297:19", + "nodeType": "YulBlock", + "src": "26679:297:19", + "statements": [ + { + "body": { + "nativeSrc": "26729:83:19", + "nodeType": "YulBlock", + "src": "26729:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "26731:77:19", + "nodeType": "YulIdentifier", + "src": "26731:77:19" + }, + "nativeSrc": "26731:79:19", + "nodeType": "YulFunctionCall", + "src": "26731:79:19" + }, + "nativeSrc": "26731:79:19", + "nodeType": "YulExpressionStatement", + "src": "26731:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "26704:7:19", + "nodeType": "YulIdentifier", + "src": "26704:7:19" + }, + { + "name": "headStart", + "nativeSrc": "26713:9:19", + "nodeType": "YulIdentifier", + "src": "26713:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26700:3:19", + "nodeType": "YulIdentifier", + "src": "26700:3:19" + }, + "nativeSrc": "26700:23:19", + "nodeType": "YulFunctionCall", + "src": "26700:23:19" + }, + { + "kind": "number", + "nativeSrc": "26725:2:19", + "nodeType": "YulLiteral", + "src": "26725:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "26696:3:19", + "nodeType": "YulIdentifier", + "src": "26696:3:19" + }, + "nativeSrc": "26696:32:19", + "nodeType": "YulFunctionCall", + "src": "26696:32:19" + }, + "nativeSrc": "26693:119:19", + "nodeType": "YulIf", + "src": "26693:119:19" + }, + { + "nativeSrc": "26826:139:19", + "nodeType": "YulBlock", + "src": "26826:139:19", + "statements": [ + { + "nativeSrc": "26845:15:19", + "nodeType": "YulVariableDeclaration", + "src": "26845:15:19", + "value": { + "kind": "number", + "nativeSrc": "26859:1:19", + "nodeType": "YulLiteral", + "src": "26859:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "26849:6:19", + "nodeType": "YulTypedName", + "src": "26849:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "26878:73:19", + "nodeType": "YulAssignment", + "src": "26878:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26923:9:19", + "nodeType": "YulIdentifier", + "src": "26923:9:19" + }, + { + "name": "offset", + "nativeSrc": "26934:6:19", + "nodeType": "YulIdentifier", + "src": "26934:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26919:3:19", + "nodeType": "YulIdentifier", + "src": "26919:3:19" + }, + "nativeSrc": "26919:22:19", + "nodeType": "YulFunctionCall", + "src": "26919:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "26943:7:19", + "nodeType": "YulIdentifier", + "src": "26943:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "26888:30:19", + "nodeType": "YulIdentifier", + "src": "26888:30:19" + }, + "nativeSrc": "26888:63:19", + "nodeType": "YulFunctionCall", + "src": "26888:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "26878:6:19", + "nodeType": "YulIdentifier", + "src": "26878:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "26603:373:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26649:9:19", + "nodeType": "YulTypedName", + "src": "26649:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "26660:7:19", + "nodeType": "YulTypedName", + "src": "26660:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "26672:6:19", + "nodeType": "YulTypedName", + "src": "26672:6:19", + "type": "" + } + ], + "src": "26603:373:19" + }, + { + "body": { + "nativeSrc": "27100:42:19", + "nodeType": "YulBlock", + "src": "27100:42:19", + "statements": [ + { + "nativeSrc": "27114:18:19", + "nodeType": "YulAssignment", + "src": "27114:18:19", + "value": { + "name": "pos", + "nativeSrc": "27129:3:19", + "nodeType": "YulIdentifier", + "src": "27129:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "27114:11:19", + "nodeType": "YulIdentifier", + "src": "27114:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26986:156:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "27072:3:19", + "nodeType": "YulTypedName", + "src": "27072:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "27077:6:19", + "nodeType": "YulTypedName", + "src": "27077:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "27088:11:19", + "nodeType": "YulTypedName", + "src": "27088:11:19", + "type": "" + } + ], + "src": "26986:156:19" + }, + { + "body": { + "nativeSrc": "27262:300:19", + "nodeType": "YulBlock", + "src": "27262:300:19", + "statements": [ + { + "nativeSrc": "27276:53:19", + "nodeType": "YulVariableDeclaration", + "src": "27276:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "27323:5:19", + "nodeType": "YulIdentifier", + "src": "27323:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "27290:32:19", + "nodeType": "YulIdentifier", + "src": "27290:32:19" + }, + "nativeSrc": "27290:39:19", + "nodeType": "YulFunctionCall", + "src": "27290:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "27280:6:19", + "nodeType": "YulTypedName", + "src": "27280:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "27342:96:19", + "nodeType": "YulAssignment", + "src": "27342:96:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27426:3:19", + "nodeType": "YulIdentifier", + "src": "27426:3:19" + }, + { + "name": "length", + "nativeSrc": "27431:6:19", + "nodeType": "YulIdentifier", + "src": "27431:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27349:76:19", + "nodeType": "YulIdentifier", + "src": "27349:76:19" + }, + "nativeSrc": "27349:89:19", + "nodeType": "YulFunctionCall", + "src": "27349:89:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27342:3:19", + "nodeType": "YulIdentifier", + "src": "27342:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27490:5:19", + "nodeType": "YulIdentifier", + "src": "27490:5:19" + }, + { + "kind": "number", + "nativeSrc": "27497:4:19", + "nodeType": "YulLiteral", + "src": "27497:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27486:3:19", + "nodeType": "YulIdentifier", + "src": "27486:3:19" + }, + "nativeSrc": "27486:16:19", + "nodeType": "YulFunctionCall", + "src": "27486:16:19" + }, + { + "name": "pos", + "nativeSrc": "27504:3:19", + "nodeType": "YulIdentifier", + "src": "27504:3:19" + }, + { + "name": "length", + "nativeSrc": "27509:6:19", + "nodeType": "YulIdentifier", + "src": "27509:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "27451:34:19", + "nodeType": "YulIdentifier", + "src": "27451:34:19" + }, + "nativeSrc": "27451:65:19", + "nodeType": "YulFunctionCall", + "src": "27451:65:19" + }, + "nativeSrc": "27451:65:19", + "nodeType": "YulExpressionStatement", + "src": "27451:65:19" + }, + { + "nativeSrc": "27529:23:19", + "nodeType": "YulAssignment", + "src": "27529:23:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27540:3:19", + "nodeType": "YulIdentifier", + "src": "27540:3:19" + }, + { + "name": "length", + "nativeSrc": "27545:6:19", + "nodeType": "YulIdentifier", + "src": "27545:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27536:3:19", + "nodeType": "YulIdentifier", + "src": "27536:3:19" + }, + "nativeSrc": "27536:16:19", + "nodeType": "YulFunctionCall", + "src": "27536:16:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27529:3:19", + "nodeType": "YulIdentifier", + "src": "27529:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27152:410:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "27243:5:19", + "nodeType": "YulTypedName", + "src": "27243:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "27250:3:19", + "nodeType": "YulTypedName", + "src": "27250:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27258:3:19", + "nodeType": "YulTypedName", + "src": "27258:3:19", + "type": "" + } + ], + "src": "27152:410:19" + }, + { + "body": { + "nativeSrc": "27756:267:19", + "nodeType": "YulBlock", + "src": "27756:267:19", + "statements": [ + { + "nativeSrc": "27771:102:19", + "nodeType": "YulAssignment", + "src": "27771:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "27860:6:19", + "nodeType": "YulIdentifier", + "src": "27860:6:19" + }, + { + "name": "pos", + "nativeSrc": "27869:3:19", + "nodeType": "YulIdentifier", + "src": "27869:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27778:81:19", + "nodeType": "YulIdentifier", + "src": "27778:81:19" + }, + "nativeSrc": "27778:95:19", + "nodeType": "YulFunctionCall", + "src": "27778:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27771:3:19", + "nodeType": "YulIdentifier", + "src": "27771:3:19" + } + ] + }, + { + "nativeSrc": "27887:102:19", + "nodeType": "YulAssignment", + "src": "27887:102:19", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "27976:6:19", + "nodeType": "YulIdentifier", + "src": "27976:6:19" + }, + { + "name": "pos", + "nativeSrc": "27985:3:19", + "nodeType": "YulIdentifier", + "src": "27985:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27894:81:19", + "nodeType": "YulIdentifier", + "src": "27894:81:19" + }, + "nativeSrc": "27894:95:19", + "nodeType": "YulFunctionCall", + "src": "27894:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27887:3:19", + "nodeType": "YulIdentifier", + "src": "27887:3:19" + } + ] + }, + { + "nativeSrc": "28003:10:19", + "nodeType": "YulAssignment", + "src": "28003:10:19", + "value": { + "name": "pos", + "nativeSrc": "28010:3:19", + "nodeType": "YulIdentifier", + "src": "28010:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28003:3:19", + "nodeType": "YulIdentifier", + "src": "28003:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "27572:451:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "27727:3:19", + "nodeType": "YulTypedName", + "src": "27727:3:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "27733:6:19", + "nodeType": "YulTypedName", + "src": "27733:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "27741:6:19", + "nodeType": "YulTypedName", + "src": "27741:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27752:3:19", + "nodeType": "YulTypedName", + "src": "27752:3:19", + "type": "" + } + ], + "src": "27572:451:19" + }, + { + "body": { + "nativeSrc": "28159:222:19", + "nodeType": "YulBlock", + "src": "28159:222:19", + "statements": [ + { + "nativeSrc": "28173:26:19", + "nodeType": "YulAssignment", + "src": "28173:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28185:9:19", + "nodeType": "YulIdentifier", + "src": "28185:9:19" + }, + { + "kind": "number", + "nativeSrc": "28196:2:19", + "nodeType": "YulLiteral", + "src": "28196:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28181:3:19", + "nodeType": "YulIdentifier", + "src": "28181:3:19" + }, + "nativeSrc": "28181:18:19", + "nodeType": "YulFunctionCall", + "src": "28181:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "28173:4:19", + "nodeType": "YulIdentifier", + "src": "28173:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "28257:6:19", + "nodeType": "YulIdentifier", + "src": "28257:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28270:9:19", + "nodeType": "YulIdentifier", + "src": "28270:9:19" + }, + { + "kind": "number", + "nativeSrc": "28281:1:19", + "nodeType": "YulLiteral", + "src": "28281:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28266:3:19", + "nodeType": "YulIdentifier", + "src": "28266:3:19" + }, + "nativeSrc": "28266:17:19", + "nodeType": "YulFunctionCall", + "src": "28266:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "28213:43:19", + "nodeType": "YulIdentifier", + "src": "28213:43:19" + }, + "nativeSrc": "28213:71:19", + "nodeType": "YulFunctionCall", + "src": "28213:71:19" + }, + "nativeSrc": "28213:71:19", + "nodeType": "YulExpressionStatement", + "src": "28213:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "28342:6:19", + "nodeType": "YulIdentifier", + "src": "28342:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "28355:9:19", + "nodeType": "YulIdentifier", + "src": "28355:9:19" + }, + { + "kind": "number", + "nativeSrc": "28366:2:19", + "nodeType": "YulLiteral", + "src": "28366:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28351:3:19", + "nodeType": "YulIdentifier", + "src": "28351:3:19" + }, + "nativeSrc": "28351:18:19", + "nodeType": "YulFunctionCall", + "src": "28351:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "28298:43:19", + "nodeType": "YulIdentifier", + "src": "28298:43:19" + }, + "nativeSrc": "28298:72:19", + "nodeType": "YulFunctionCall", + "src": "28298:72:19" + }, + "nativeSrc": "28298:72:19", + "nodeType": "YulExpressionStatement", + "src": "28298:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "28033:348:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "28123:9:19", + "nodeType": "YulTypedName", + "src": "28123:9:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "28135:6:19", + "nodeType": "YulTypedName", + "src": "28135:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "28143:6:19", + "nodeType": "YulTypedName", + "src": "28143:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "28154:4:19", + "nodeType": "YulTypedName", + "src": "28154:4:19", + "type": "" + } + ], + "src": "28033:348:19" + }, + { + "body": { + "nativeSrc": "28419:168:19", + "nodeType": "YulBlock", + "src": "28419:168:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28440:1:19", + "nodeType": "YulLiteral", + "src": "28440:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "28443:77:19", + "nodeType": "YulLiteral", + "src": "28443:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28433:6:19", + "nodeType": "YulIdentifier", + "src": "28433:6:19" + }, + "nativeSrc": "28433:88:19", + "nodeType": "YulFunctionCall", + "src": "28433:88:19" + }, + "nativeSrc": "28433:88:19", + "nodeType": "YulExpressionStatement", + "src": "28433:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28541:1:19", + "nodeType": "YulLiteral", + "src": "28541:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "28544:4:19", + "nodeType": "YulLiteral", + "src": "28544:4:19", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28534:6:19", + "nodeType": "YulIdentifier", + "src": "28534:6:19" + }, + "nativeSrc": "28534:15:19", + "nodeType": "YulFunctionCall", + "src": "28534:15:19" + }, + "nativeSrc": "28534:15:19", + "nodeType": "YulExpressionStatement", + "src": "28534:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28569:1:19", + "nodeType": "YulLiteral", + "src": "28569:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "28572:4:19", + "nodeType": "YulLiteral", + "src": "28572:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "28562:6:19", + "nodeType": "YulIdentifier", + "src": "28562:6:19" + }, + "nativeSrc": "28562:15:19", + "nodeType": "YulFunctionCall", + "src": "28562:15:19" + }, + "nativeSrc": "28562:15:19", + "nodeType": "YulExpressionStatement", + "src": "28562:15:19" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "28391:196:19", + "nodeType": "YulFunctionDefinition", + "src": "28391:196:19" + } + ] + }, + "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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function 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_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_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_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\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 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 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_with_cleanup(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 panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5(memPtr) {\n\n mstore(add(memPtr, 0), \"You're not the owner\")\n\n }\n\n function abi_encode_t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5__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_dd877edd5e6fa1d3691e2f7afcfd78eeb4921b01a5bd60d24e4efa18128af2a5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6(memPtr) {\n\n mstore(add(memPtr, 0), \"withdrawal failed\")\n\n }\n\n function abi_encode_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6__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_c1a92b843bebfc2d3487afd397dad78724b0c9d3ec5bb828d92e784b798864c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938(memPtr) {\n\n mstore(add(memPtr, 0), \"Invalid asset metadata: must inc\")\n\n mstore(add(memPtr, 32), \"lude 'ipfs://'\")\n\n }\n\n function abi_encode_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 46)\n store_literal_in_memory_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938__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_679396eafc8b71a5e15ef234d8f3d4e78e0a681cbc27889b76790b876df64938_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function store_literal_in_memory_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac(memPtr) {\n\n mstore(add(memPtr, 0), \"wrong amount sent\")\n\n }\n\n function abi_encode_t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac__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_a5063222bad990594989bf347295f30324034dba3fa1776163b3c83c13377cac_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c(memPtr) {\n\n mstore(add(memPtr, 0), \"mints per wallet exceeded\")\n\n }\n\n function abi_encode_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c__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_dc74ae6c3183cd74abb70deab33678b1a61d1da26f13191aa965852609cc2d8c_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 sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\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 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_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_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 function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n }\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106101815760003560e01c806370a08231116100d1578063b88d4fde1161008a578063cbdede7711610064578063cbdede7714610561578063d5abeb011461059e578063e985e9c5146105c9578063f2fde38b1461060657610181565b8063b88d4fde146104df578063c634d03214610508578063c87b56dd1461052457610181565b806370a08231146103e3578063715018a6146104205780638da5cb5b14610437578063918b5be11461046257806395d89b411461048b578063a22cb465146104b657610181565b806324600fc31161013e578063453c231011610118578063453c23101461032557806350516808146103505780636352211e1461037b5780636817c76c146103b857610181565b806324600fc3146102a85780633a5844ff146102bf57806342842e0e146102fc57610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631f21bfbf1461025457806323b872dd1461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906123da565b61062f565b6040516101ba9190612422565b60405180910390f35b3480156101cf57600080fd5b506101d8610641565b6040516101e591906124cd565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612525565b6106d3565b6040516102229190612593565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906125da565b6106ef565b005b34801561026057600080fd5b50610269610705565b6040516102769190612629565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612644565b61070b565b005b3480156102b457600080fd5b506102bd61080d565b005b3480156102cb57600080fd5b506102e660048036038101906102e19190612525565b610938565b6040516102f39190612629565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612644565b610950565b005b34801561033157600080fd5b5061033a610970565b6040516103479190612629565b60405180910390f35b34801561035c57600080fd5b50610365610976565b6040516103729190612629565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190612525565b6109bd565b6040516103af9190612593565b60405180910390f35b3480156103c457600080fd5b506103cd6109cf565b6040516103da9190612629565b60405180910390f35b3480156103ef57600080fd5b5061040a60048036038101906104059190612697565b6109d5565b6040516104179190612629565b60405180910390f35b34801561042c57600080fd5b50610435610a8f565b005b34801561044357600080fd5b5061044c610aa3565b6040516104599190612593565b60405180910390f35b34801561046e57600080fd5b50610489600480360381019061048491906127f9565b610acd565b005b34801561049757600080fd5b506104a0610b9d565b6040516104ad91906124cd565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d8919061286e565b610c2f565b005b3480156104eb57600080fd5b506105066004803603810190610501919061294f565b610c45565b005b610522600480360381019061051d9190612525565b610c62565b005b34801561053057600080fd5b5061054b60048036038101906105469190612525565b610d8e565b60405161055891906124cd565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190612525565b610da0565b6040516105959190612629565b60405180910390f35b3480156105aa57600080fd5b506105b3610dbd565b6040516105c09190612629565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb91906129d2565b610dc3565b6040516105fd9190612422565b60405180910390f35b34801561061257600080fd5b5061062d60048036038101906106289190612697565b610e57565b005b600061063a82610edd565b9050919050565b60606000805461065090612a41565b80601f016020809104026020016040519081016040528092919081815260200182805461067c90612a41565b80156106c95780601f1061069e576101008083540402835291602001916106c9565b820191906000526020600020905b8154815290600101906020018083116106ac57829003601f168201915b5050505050905090565b60006106de82610f3e565b506106e882610fc6565b9050919050565b61070182826106fc611003565b61100b565b5050565b60085481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361077d5760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016107749190612593565b60405180910390fd5b6000610791838361078c611003565b61101d565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610807578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016107fe93929190612a72565b60405180910390fd5b50505050565b610815610aa3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087990612af5565b60405180910390fd5b600061088c610aa3565b73ffffffffffffffffffffffffffffffffffffffff16476040516108af90612b46565b60006040518083038185875af1925050503d80600081146108ec576040519150601f19603f3d011682016040523d82523d6000602084013e6108f1565b606091505b5050905080610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90612ba7565b60405180910390fd5b50565b600e6020528060005260406000206000915090505481565b61096b83838360405180602001604052806000815250610c45565b505050565b600b5481565b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006109c882610f3e565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a485760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610a3f9190612593565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a97611237565b610aa160006112be565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ad5610aa3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990612af5565b60405180910390fd5b610b4b81611384565b610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612c39565b60405180910390fd5b80600c9081610b999190612e05565b5050565b606060018054610bac90612a41565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd890612a41565b8015610c255780601f10610bfa57610100808354040283529160200191610c25565b820191906000526020600020905b815481529060010190602001808311610c0857829003601f168201915b5050505050905090565b610c41610c3a611003565b83836114dd565b5050565b610c5084848461070b565b610c5c8484848461164c565b50505050565b3460095414610ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9d90612f23565b60405180910390fd5b600b54600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612f8f565b60405180910390fd5b6001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d7a9190612fde565b92505081905550610d8b3382611803565b50565b6060610d99826118dd565b9050919050565b6000600e6000838152602001908152602001600020549050919050565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e5f611237565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ed15760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ec89190612593565b60405180910390fd5b610eda816112be565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f375750610f36826119f0565b5b9050919050565b600080610f4a83611ad2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fbd57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610fb49190612629565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6110188383836001611b0f565b505050565b60008061102984611ad2565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461106b5761106a818486611cd4565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110fc576110ad600085600080611b0f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461117f576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61123f611003565b73ffffffffffffffffffffffffffffffffffffffff1661125d610aa3565b73ffffffffffffffffffffffffffffffffffffffff16146112bc57611280611003565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016112b39190612593565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060006040518060400160405280600781526020017f697066733a2f2f0000000000000000000000000000000000000000000000000081525090508051825110156113d9576000925050506114d8565b60005b815183516113ea9190613012565b81116114d05760006001905060005b83518110156114a85783818151811061141557611414613046565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191685828561144f9190612fde565b815181106114605761145f613046565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461149b57600091506114a8565b80806001019150506113f9565b5080156114bc5760019450505050506114d8565b5080806114c890613075565b9150506113dc565b506000925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154e57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016115459190612593565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161163f9190612422565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156117fd578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611690611003565b8685856040518563ffffffff1660e01b81526004016116b29493929190613112565b6020604051808303816000875af19250505080156116ee57506040513d601f19601f820116820180604052508101906116eb9190613173565b60015b611772573d806000811461171e576040519150601f19603f3d011682016040523d82523d6000602084013e611723565b606091505b50600081510361176a57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016117619190612593565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146117fb57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016117f29190612593565b60405180910390fd5b505b50505050565b600060085490506008600081548092919061181d90613075565b919050555061182c8382611d98565b6118c081600c805461183d90612a41565b80601f016020809104026020016040519081016040528092919081815260200182805461186990612a41565b80156118b65780601f1061188b576101008083540402835291602001916118b6565b820191906000526020600020905b81548152906001019060200180831161189957829003601f168201915b5050505050611db6565b81600e600083815260200190815260200160002081905550505050565b60606118e882610f3e565b50600060066000848152602001908152602001600020805461190990612a41565b80601f016020809104026020016040519081016040528092919081815260200182805461193590612a41565b80156119825780601f1061195757610100808354040283529160200191611982565b820191906000526020600020905b81548152906001019060200180831161196557829003601f168201915b505050505090506000611993611e12565b905060008151036119a85781925050506119eb565b6000825111156119dd5780826040516020016119c59291906131dc565b604051602081830303815290604052925050506119eb565b6119e684611ea4565b925050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611abb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611acb5750611aca82611f0d565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b485750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c7c576000611b5884610f3e565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bc357508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611bd65750611bd48184610dc3565b155b15611c1857826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c0f9190612593565b60405180910390fd5b8115611c7a57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611cdf838383611f77565b611d9357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d5457806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d4b9190612629565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d8a929190613200565b60405180910390fd5b505050565b611db2828260405180602001604052806000815250612038565b5050565b80600660008481526020019081526020016000209081611dd69190612e05565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051611e069190612629565b60405180910390a15050565b6060600c8054611e2190612a41565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4d90612a41565b8015611e9a5780601f10611e6f57610100808354040283529160200191611e9a565b820191906000526020600020905b815481529060010190602001808311611e7d57829003601f168201915b5050505050905090565b6060611eaf82610f3e565b506000611eba611e12565b90506000815111611eda5760405180602001604052806000815250611f05565b80611ee484612054565b604051602001611ef59291906131dc565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561202f57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ff05750611fef8484610dc3565b5b8061202e57508273ffffffffffffffffffffffffffffffffffffffff1661201683610fc6565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6120428383612122565b61204f600084848461164c565b505050565b6060600060016120638461221b565b01905060008167ffffffffffffffff811115612082576120816126ce565b5b6040519080825280601f01601f1916602001820160405280156120b45781602001600182028036833780820191505090505b509050600082602001820190505b600115612117578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161210b5761210a613229565b5b049450600085036120c2575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121945760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161218b9190612593565b60405180910390fd5b60006121a28383600061101d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146122165760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161220d9190612593565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612279577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161226f5761226e613229565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106122b6576d04ee2d6d415b85acef810000000083816122ac576122ab613229565b5b0492506020810190505b662386f26fc1000083106122e557662386f26fc1000083816122db576122da613229565b5b0492506010810190505b6305f5e100831061230e576305f5e100838161230457612303613229565b5b0492506008810190505b612710831061233357612710838161232957612328613229565b5b0492506004810190505b60648310612356576064838161234c5761234b613229565b5b0492506002810190505b600a8310612365576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6123b781612382565b81146123c257600080fd5b50565b6000813590506123d4816123ae565b92915050565b6000602082840312156123f0576123ef612378565b5b60006123fe848285016123c5565b91505092915050565b60008115159050919050565b61241c81612407565b82525050565b60006020820190506124376000830184612413565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561247757808201518184015260208101905061245c565b60008484015250505050565b6000601f19601f8301169050919050565b600061249f8261243d565b6124a98185612448565b93506124b9818560208601612459565b6124c281612483565b840191505092915050565b600060208201905081810360008301526124e78184612494565b905092915050565b6000819050919050565b612502816124ef565b811461250d57600080fd5b50565b60008135905061251f816124f9565b92915050565b60006020828403121561253b5761253a612378565b5b600061254984828501612510565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257d82612552565b9050919050565b61258d81612572565b82525050565b60006020820190506125a86000830184612584565b92915050565b6125b781612572565b81146125c257600080fd5b50565b6000813590506125d4816125ae565b92915050565b600080604083850312156125f1576125f0612378565b5b60006125ff858286016125c5565b925050602061261085828601612510565b9150509250929050565b612623816124ef565b82525050565b600060208201905061263e600083018461261a565b92915050565b60008060006060848603121561265d5761265c612378565b5b600061266b868287016125c5565b935050602061267c868287016125c5565b925050604061268d86828701612510565b9150509250925092565b6000602082840312156126ad576126ac612378565b5b60006126bb848285016125c5565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61270682612483565b810181811067ffffffffffffffff82111715612725576127246126ce565b5b80604052505050565b600061273861236e565b905061274482826126fd565b919050565b600067ffffffffffffffff821115612764576127636126ce565b5b61276d82612483565b9050602081019050919050565b82818337600083830152505050565b600061279c61279784612749565b61272e565b9050828152602081018484840111156127b8576127b76126c9565b5b6127c384828561277a565b509392505050565b600082601f8301126127e0576127df6126c4565b5b81356127f0848260208601612789565b91505092915050565b60006020828403121561280f5761280e612378565b5b600082013567ffffffffffffffff81111561282d5761282c61237d565b5b612839848285016127cb565b91505092915050565b61284b81612407565b811461285657600080fd5b50565b60008135905061286881612842565b92915050565b6000806040838503121561288557612884612378565b5b6000612893858286016125c5565b92505060206128a485828601612859565b9150509250929050565b600067ffffffffffffffff8211156128c9576128c86126ce565b5b6128d282612483565b9050602081019050919050565b60006128f26128ed846128ae565b61272e565b90508281526020810184848401111561290e5761290d6126c9565b5b61291984828561277a565b509392505050565b600082601f830112612936576129356126c4565b5b81356129468482602086016128df565b91505092915050565b6000806000806080858703121561296957612968612378565b5b6000612977878288016125c5565b9450506020612988878288016125c5565b935050604061299987828801612510565b925050606085013567ffffffffffffffff8111156129ba576129b961237d565b5b6129c687828801612921565b91505092959194509250565b600080604083850312156129e9576129e8612378565b5b60006129f7858286016125c5565b9250506020612a08858286016125c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a5957607f821691505b602082108103612a6c57612a6b612a12565b5b50919050565b6000606082019050612a876000830186612584565b612a94602083018561261a565b612aa16040830184612584565b949350505050565b7f596f75277265206e6f7420746865206f776e6572000000000000000000000000600082015250565b6000612adf601483612448565b9150612aea82612aa9565b602082019050919050565b60006020820190508181036000830152612b0e81612ad2565b9050919050565b600081905092915050565b50565b6000612b30600083612b15565b9150612b3b82612b20565b600082019050919050565b6000612b5182612b23565b9150819050919050565b7f7769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612b91601183612448565b9150612b9c82612b5b565b602082019050919050565b60006020820190508181036000830152612bc081612b84565b9050919050565b7f496e76616c6964206173736574206d657461646174613a206d75737420696e6360008201527f6c7564652027697066733a2f2f27000000000000000000000000000000000000602082015250565b6000612c23602e83612448565b9150612c2e82612bc7565b604082019050919050565b60006020820190508181036000830152612c5281612c16565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612cbb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c7e565b612cc58683612c7e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612d02612cfd612cf8846124ef565b612cdd565b6124ef565b9050919050565b6000819050919050565b612d1c83612ce7565b612d30612d2882612d09565b848454612c8b565b825550505050565b600090565b612d45612d38565b612d50818484612d13565b505050565b5b81811015612d7457612d69600082612d3d565b600181019050612d56565b5050565b601f821115612db957612d8a81612c59565b612d9384612c6e565b81016020851015612da2578190505b612db6612dae85612c6e565b830182612d55565b50505b505050565b600082821c905092915050565b6000612ddc60001984600802612dbe565b1980831691505092915050565b6000612df58383612dcb565b9150826002028217905092915050565b612e0e8261243d565b67ffffffffffffffff811115612e2757612e266126ce565b5b612e318254612a41565b612e3c828285612d78565b600060209050601f831160018114612e6f5760008415612e5d578287015190505b612e678582612de9565b865550612ecf565b601f198416612e7d86612c59565b60005b82811015612ea557848901518255600182019150602085019450602081019050612e80565b86831015612ec25784890151612ebe601f891682612dcb565b8355505b6001600288020188555050505b505050505050565b7f77726f6e6720616d6f756e742073656e74000000000000000000000000000000600082015250565b6000612f0d601183612448565b9150612f1882612ed7565b602082019050919050565b60006020820190508181036000830152612f3c81612f00565b9050919050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b6000612f79601983612448565b9150612f8482612f43565b602082019050919050565b60006020820190508181036000830152612fa881612f6c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fe9826124ef565b9150612ff4836124ef565b925082820190508082111561300c5761300b612faf565b5b92915050565b600061301d826124ef565b9150613028836124ef565b92508282039050818111156130405761303f612faf565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613080826124ef565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130b2576130b1612faf565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b60006130e4826130bd565b6130ee81856130c8565b93506130fe818560208601612459565b61310781612483565b840191505092915050565b60006080820190506131276000830187612584565b6131346020830186612584565b613141604083018561261a565b818103606083015261315381846130d9565b905095945050505050565b60008151905061316d816123ae565b92915050565b60006020828403121561318957613188612378565b5b60006131978482850161315e565b91505092915050565b600081905092915050565b60006131b68261243d565b6131c081856131a0565b93506131d0818560208601612459565b80840191505092915050565b60006131e882856131ab565b91506131f482846131ab565b91508190509392505050565b60006040820190506132156000830185612584565b613222602083018461261a565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220a2e05fc52ed70c893c250e5281de891d4224910b19e7b90e6f041e57f384922964736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x181 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xCBDEDE77 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xCBDEDE77 EQ PUSH2 0x561 JUMPI DUP1 PUSH4 0xD5ABEB01 EQ PUSH2 0x59E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x5C9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x606 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x4DF JUMPI DUP1 PUSH4 0xC634D032 EQ PUSH2 0x508 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x524 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x3E3 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x437 JUMPI DUP1 PUSH4 0x918B5BE1 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x4B6 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x24600FC3 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0x453C2310 GT PUSH2 0x118 JUMPI DUP1 PUSH4 0x453C2310 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x50516808 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x3B8 JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0x3A5844FF EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x2FC JUMPI PUSH2 0x181 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x1F21BFBF EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x27F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH2 0x641 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x210 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0x6D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x222 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24D SWAP2 SWAP1 PUSH2 0x25DA JUMP JUMPDEST PUSH2 0x6EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH2 0x705 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x2644 JUMP JUMPDEST PUSH2 0x70B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BD PUSH2 0x80D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x323 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x2644 JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x365 PUSH2 0x976 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39D SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0x9BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AF SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x9CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x405 SWAP2 SWAP1 PUSH2 0x2697 JUMP JUMPDEST PUSH2 0x9D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x417 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xA8F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH2 0xAA3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x459 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x489 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x484 SWAP2 SWAP1 PUSH2 0x27F9 JUMP JUMPDEST PUSH2 0xACD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A0 PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AD SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D8 SWAP2 SWAP1 PUSH2 0x286E JUMP JUMPDEST PUSH2 0xC2F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x294F JUMP JUMPDEST PUSH2 0xC45 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x522 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x51D SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0xC62 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x54B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0xD8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x558 SWAP2 SWAP1 PUSH2 0x24CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x588 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x583 SWAP2 SWAP1 PUSH2 0x2525 JUMP JUMPDEST PUSH2 0xDA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x595 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B3 PUSH2 0xDBD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5C0 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0x29D2 JUMP JUMPDEST PUSH2 0xDC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5FD SWAP2 SWAP1 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x612 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x628 SWAP2 SWAP1 PUSH2 0x2697 JUMP JUMPDEST PUSH2 0xE57 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH2 0x63A DUP3 PUSH2 0xEDD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x650 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x67C SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6C9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x69E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6C9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6AC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6DE DUP3 PUSH2 0xF3E JUMP JUMPDEST POP PUSH2 0x6E8 DUP3 PUSH2 0xFC6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x701 DUP3 DUP3 PUSH2 0x6FC PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x100B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x77D JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x774 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x791 DUP4 DUP4 PUSH2 0x78C PUSH2 0x1003 JUMP JUMPDEST PUSH2 0x101D JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x807 JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7FE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x815 PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x882 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x879 SWAP1 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x88C PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0x8AF SWAP1 PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8EC 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 0x8F1 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x935 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x92C SWAP1 PUSH2 0x2BA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH2 0x96B DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC45 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xD PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C8 DUP3 PUSH2 0xF3E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA48 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA3F SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xA97 PUSH2 0x1237 JUMP JUMPDEST PUSH2 0xAA1 PUSH1 0x0 PUSH2 0x12BE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD5 PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB39 SWAP1 PUSH2 0x2AF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4B DUP2 PUSH2 0x1384 JUMP JUMPDEST PUSH2 0xB8A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x2C39 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xC SWAP1 DUP2 PUSH2 0xB99 SWAP2 SWAP1 PUSH2 0x2E05 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xBAC SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xBD8 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC25 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xBFA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC25 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC08 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC41 PUSH2 0xC3A PUSH2 0x1003 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x14DD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xC50 DUP5 DUP5 DUP5 PUSH2 0x70B JUMP JUMPDEST PUSH2 0xC5C DUP5 DUP5 DUP5 DUP5 PUSH2 0x164C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLVALUE PUSH1 0x9 SLOAD EQ PUSH2 0xCA6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9D SWAP1 PUSH2 0x2F23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB SLOAD PUSH1 0xD PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0xD2A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD21 SWAP1 PUSH2 0x2F8F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xD 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 DUP3 DUP3 SLOAD PUSH2 0xD7A SWAP2 SWAP1 PUSH2 0x2FDE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xD8B CALLER DUP3 PUSH2 0x1803 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xD99 DUP3 PUSH2 0x18DD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH2 0xE5F PUSH2 0x1237 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xED1 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC8 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xEDA DUP2 PUSH2 0x12BE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF37 JUMPI POP PUSH2 0xF36 DUP3 PUSH2 0x19F0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF4A DUP4 PUSH2 0x1AD2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFBD JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFB4 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1018 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1B0F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1029 DUP5 PUSH2 0x1AD2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x106B JUMPI PUSH2 0x106A DUP2 DUP5 DUP7 PUSH2 0x1CD4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x10FC JUMPI PUSH2 0x10AD PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1B0F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x117F JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x123F PUSH2 0x1003 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x125D PUSH2 0xAA3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12BC JUMPI PUSH2 0x1280 PUSH2 0x1003 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B3 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP DUP1 MLOAD DUP3 MLOAD LT ISZERO PUSH2 0x13D9 JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x14D8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP4 MLOAD PUSH2 0x13EA SWAP2 SWAP1 PUSH2 0x3012 JUMP JUMPDEST DUP2 GT PUSH2 0x14D0 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x14A8 JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1415 JUMPI PUSH2 0x1414 PUSH2 0x3046 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP6 DUP3 DUP6 PUSH2 0x144F SWAP2 SWAP1 PUSH2 0x2FDE JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x1460 JUMPI PUSH2 0x145F PUSH2 0x3046 JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x149B JUMPI PUSH1 0x0 SWAP2 POP PUSH2 0x14A8 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x13F9 JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x14BC JUMPI PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x14D8 JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x14C8 SWAP1 PUSH2 0x3075 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x13DC JUMP JUMPDEST POP PUSH1 0x0 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x154E JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1545 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x163F SWAP2 SWAP1 PUSH2 0x2422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x17FD JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x1690 PUSH2 0x1003 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16B2 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3112 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x16EE JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16EB SWAP2 SWAP1 PUSH2 0x3173 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1772 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x171E 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 0x1723 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x176A JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1761 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x17FB JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17F2 SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x181D SWAP1 PUSH2 0x3075 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x182C DUP4 DUP3 PUSH2 0x1D98 JUMP JUMPDEST PUSH2 0x18C0 DUP2 PUSH1 0xC DUP1 SLOAD PUSH2 0x183D SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1869 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18B6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x188B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x18B6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1899 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x1DB6 JUMP JUMPDEST DUP2 PUSH1 0xE PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x18E8 DUP3 PUSH2 0xF3E JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0x1909 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1935 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1982 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1957 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1982 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1965 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x1993 PUSH2 0x1E12 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x19A8 JUMPI DUP2 SWAP3 POP POP POP PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0x19DD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x19C5 SWAP3 SWAP2 SWAP1 PUSH2 0x31DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP PUSH2 0x19EB JUMP JUMPDEST PUSH2 0x19E6 DUP5 PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1ABB JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1ACB JUMPI POP PUSH2 0x1ACA DUP3 PUSH2 0x1F0D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1B48 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1C7C JUMPI PUSH1 0x0 PUSH2 0x1B58 DUP5 PUSH2 0xF3E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1BC3 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1BD6 JUMPI POP PUSH2 0x1BD4 DUP2 DUP5 PUSH2 0xDC3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1C18 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C0F SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1C7A JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH2 0x1CDF DUP4 DUP4 DUP4 PUSH2 0x1F77 JUMP JUMPDEST PUSH2 0x1D93 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1D54 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D4B SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D8A SWAP3 SWAP2 SWAP1 PUSH2 0x3200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1DB2 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2038 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1DD6 SWAP2 SWAP1 PUSH2 0x2E05 JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1E06 SWAP2 SWAP1 PUSH2 0x2629 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0xC DUP1 SLOAD PUSH2 0x1E21 SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E4D SWAP1 PUSH2 0x2A41 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E9A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E6F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E9A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E7D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1EAF DUP3 PUSH2 0xF3E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1EBA PUSH2 0x1E12 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1EDA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1F05 JUMP JUMPDEST DUP1 PUSH2 0x1EE4 DUP5 PUSH2 0x2054 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1EF5 SWAP3 SWAP2 SWAP1 PUSH2 0x31DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x202F JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1FF0 JUMPI POP PUSH2 0x1FEF DUP5 DUP5 PUSH2 0xDC3 JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x202E JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2016 DUP4 PUSH2 0xFC6 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2042 DUP4 DUP4 PUSH2 0x2122 JUMP JUMPDEST PUSH2 0x204F PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x164C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x2063 DUP5 PUSH2 0x221B JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2082 JUMPI PUSH2 0x2081 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x20B4 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x2117 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x210B JUMPI PUSH2 0x210A PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x20C2 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2194 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x218B SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21A2 DUP4 DUP4 PUSH1 0x0 PUSH2 0x101D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2216 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x220D SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x2279 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x226F JUMPI PUSH2 0x226E PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x22B6 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x22AC JUMPI PUSH2 0x22AB PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x22E5 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x22DB JUMPI PUSH2 0x22DA PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x230E JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x2304 JUMPI PUSH2 0x2303 PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x2333 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x2329 JUMPI PUSH2 0x2328 PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x2356 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x234C JUMPI PUSH2 0x234B PUSH2 0x3229 JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2365 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 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 0x23B7 DUP2 PUSH2 0x2382 JUMP JUMPDEST DUP2 EQ PUSH2 0x23C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23D4 DUP2 PUSH2 0x23AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23F0 JUMPI PUSH2 0x23EF PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x23FE DUP5 DUP3 DUP6 ADD PUSH2 0x23C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x241C DUP2 PUSH2 0x2407 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2437 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2413 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2477 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x245C JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x249F DUP3 PUSH2 0x243D JUMP JUMPDEST PUSH2 0x24A9 DUP2 DUP6 PUSH2 0x2448 JUMP JUMPDEST SWAP4 POP PUSH2 0x24B9 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2459 JUMP JUMPDEST PUSH2 0x24C2 DUP2 PUSH2 0x2483 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x24E7 DUP2 DUP5 PUSH2 0x2494 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2502 DUP2 PUSH2 0x24EF JUMP JUMPDEST DUP2 EQ PUSH2 0x250D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x251F DUP2 PUSH2 0x24F9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x253B JUMPI PUSH2 0x253A PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2549 DUP5 DUP3 DUP6 ADD PUSH2 0x2510 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 0x257D DUP3 PUSH2 0x2552 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x258D DUP2 PUSH2 0x2572 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25A8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2584 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x25B7 DUP2 PUSH2 0x2572 JUMP JUMPDEST DUP2 EQ PUSH2 0x25C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25D4 DUP2 PUSH2 0x25AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25F1 JUMPI PUSH2 0x25F0 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x25FF DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2610 DUP6 DUP3 DUP7 ADD PUSH2 0x2510 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2623 DUP2 PUSH2 0x24EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x263E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x261A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x265D JUMPI PUSH2 0x265C PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x266B DUP7 DUP3 DUP8 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x267C DUP7 DUP3 DUP8 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x268D DUP7 DUP3 DUP8 ADD PUSH2 0x2510 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AD JUMPI PUSH2 0x26AC PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26BB DUP5 DUP3 DUP6 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2706 DUP3 PUSH2 0x2483 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2738 PUSH2 0x236E JUMP JUMPDEST SWAP1 POP PUSH2 0x2744 DUP3 DUP3 PUSH2 0x26FD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2764 JUMPI PUSH2 0x2763 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH2 0x276D DUP3 PUSH2 0x2483 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 0x279C PUSH2 0x2797 DUP5 PUSH2 0x2749 JUMP JUMPDEST PUSH2 0x272E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27B8 JUMPI PUSH2 0x27B7 PUSH2 0x26C9 JUMP JUMPDEST JUMPDEST PUSH2 0x27C3 DUP5 DUP3 DUP6 PUSH2 0x277A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27E0 JUMPI PUSH2 0x27DF PUSH2 0x26C4 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27F0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2789 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280F JUMPI PUSH2 0x280E PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x282D JUMPI PUSH2 0x282C PUSH2 0x237D JUMP JUMPDEST JUMPDEST PUSH2 0x2839 DUP5 DUP3 DUP6 ADD PUSH2 0x27CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x284B DUP2 PUSH2 0x2407 JUMP JUMPDEST DUP2 EQ PUSH2 0x2856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2868 DUP2 PUSH2 0x2842 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2885 JUMPI PUSH2 0x2884 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2893 DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A4 DUP6 DUP3 DUP7 ADD PUSH2 0x2859 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28C9 JUMPI PUSH2 0x28C8 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH2 0x28D2 DUP3 PUSH2 0x2483 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F2 PUSH2 0x28ED DUP5 PUSH2 0x28AE JUMP JUMPDEST PUSH2 0x272E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x290E JUMPI PUSH2 0x290D PUSH2 0x26C9 JUMP JUMPDEST JUMPDEST PUSH2 0x2919 DUP5 DUP3 DUP6 PUSH2 0x277A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2936 JUMPI PUSH2 0x2935 PUSH2 0x26C4 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2946 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x28DF 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 0x2969 JUMPI PUSH2 0x2968 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2977 DUP8 DUP3 DUP9 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2988 DUP8 DUP3 DUP9 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2999 DUP8 DUP3 DUP9 ADD PUSH2 0x2510 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29BA JUMPI PUSH2 0x29B9 PUSH2 0x237D JUMP JUMPDEST JUMPDEST PUSH2 0x29C6 DUP8 DUP3 DUP9 ADD PUSH2 0x2921 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 0x29E9 JUMPI PUSH2 0x29E8 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x29F7 DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2A08 DUP6 DUP3 DUP7 ADD PUSH2 0x25C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2A59 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2A6C JUMPI PUSH2 0x2A6B PUSH2 0x2A12 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2A87 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x2A94 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x261A JUMP JUMPDEST PUSH2 0x2AA1 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2584 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x596F75277265206E6F7420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2ADF PUSH1 0x14 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2AEA DUP3 PUSH2 0x2AA9 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 0x2B0E DUP2 PUSH2 0x2AD2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B30 PUSH1 0x0 DUP4 PUSH2 0x2B15 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B3B DUP3 PUSH2 0x2B20 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B51 DUP3 PUSH2 0x2B23 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B91 PUSH1 0x11 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2B9C DUP3 PUSH2 0x2B5B 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 0x2BC0 DUP2 PUSH2 0x2B84 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E76616C6964206173736574206D657461646174613A206D75737420696E63 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6C7564652027697066733A2F2F27000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C23 PUSH1 0x2E DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2C2E DUP3 PUSH2 0x2BC7 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 0x2C52 DUP2 PUSH2 0x2C16 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2CBB PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2C7E JUMP JUMPDEST PUSH2 0x2CC5 DUP7 DUP4 PUSH2 0x2C7E JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D02 PUSH2 0x2CFD PUSH2 0x2CF8 DUP5 PUSH2 0x24EF JUMP JUMPDEST PUSH2 0x2CDD JUMP JUMPDEST PUSH2 0x24EF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D1C DUP4 PUSH2 0x2CE7 JUMP JUMPDEST PUSH2 0x2D30 PUSH2 0x2D28 DUP3 PUSH2 0x2D09 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2C8B JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2D45 PUSH2 0x2D38 JUMP JUMPDEST PUSH2 0x2D50 DUP2 DUP5 DUP5 PUSH2 0x2D13 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2D74 JUMPI PUSH2 0x2D69 PUSH1 0x0 DUP3 PUSH2 0x2D3D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2D56 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2DB9 JUMPI PUSH2 0x2D8A DUP2 PUSH2 0x2C59 JUMP JUMPDEST PUSH2 0x2D93 DUP5 PUSH2 0x2C6E JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2DA2 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2DB6 PUSH2 0x2DAE DUP6 PUSH2 0x2C6E JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2D55 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DDC PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2DBE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DF5 DUP4 DUP4 PUSH2 0x2DCB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E0E DUP3 PUSH2 0x243D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E27 JUMPI PUSH2 0x2E26 PUSH2 0x26CE JUMP JUMPDEST JUMPDEST PUSH2 0x2E31 DUP3 SLOAD PUSH2 0x2A41 JUMP JUMPDEST PUSH2 0x2E3C DUP3 DUP3 DUP6 PUSH2 0x2D78 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2E6F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2E5D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2E67 DUP6 DUP3 PUSH2 0x2DE9 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2ECF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2E7D DUP7 PUSH2 0x2C59 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2EA5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2E80 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2EC2 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2EBE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2DCB JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x77726F6E6720616D6F756E742073656E74000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F0D PUSH1 0x11 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F18 DUP3 PUSH2 0x2ED7 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 0x2F3C DUP2 PUSH2 0x2F00 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6D696E7473207065722077616C6C657420657863656564656400000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F79 PUSH1 0x19 DUP4 PUSH2 0x2448 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F84 DUP3 PUSH2 0x2F43 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 0x2FA8 DUP2 PUSH2 0x2F6C 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 0x2FE9 DUP3 PUSH2 0x24EF JUMP JUMPDEST SWAP2 POP PUSH2 0x2FF4 DUP4 PUSH2 0x24EF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x300C JUMPI PUSH2 0x300B PUSH2 0x2FAF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x301D DUP3 PUSH2 0x24EF JUMP JUMPDEST SWAP2 POP PUSH2 0x3028 DUP4 PUSH2 0x24EF JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3040 JUMPI PUSH2 0x303F PUSH2 0x2FAF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3080 DUP3 PUSH2 0x24EF JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x30B2 JUMPI PUSH2 0x30B1 PUSH2 0x2FAF JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD 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 PUSH2 0x30E4 DUP3 PUSH2 0x30BD JUMP JUMPDEST PUSH2 0x30EE DUP2 DUP6 PUSH2 0x30C8 JUMP JUMPDEST SWAP4 POP PUSH2 0x30FE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2459 JUMP JUMPDEST PUSH2 0x3107 DUP2 PUSH2 0x2483 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3127 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x3134 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x3141 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x261A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3153 DUP2 DUP5 PUSH2 0x30D9 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x316D DUP2 PUSH2 0x23AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3189 JUMPI PUSH2 0x3188 PUSH2 0x2378 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3197 DUP5 DUP3 DUP6 ADD PUSH2 0x315E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31B6 DUP3 PUSH2 0x243D JUMP JUMPDEST PUSH2 0x31C0 DUP2 DUP6 PUSH2 0x31A0 JUMP JUMPDEST SWAP4 POP PUSH2 0x31D0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2459 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31E8 DUP3 DUP6 PUSH2 0x31AB JUMP JUMPDEST SWAP2 POP PUSH2 0x31F4 DUP3 DUP5 PUSH2 0x31AB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3215 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2584 JUMP JUMPDEST PUSH2 0x3222 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x261A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG2 0xE0 PUSH0 0xC5 0x2E 0xD7 0xC DUP10 EXTCODECOPY 0x25 0xE MSTORE DUP2 0xDE DUP10 SAR TIMESTAMP 0x24 SWAP2 SIGNEXTEND NOT 0xE7 0xB9 0xE PUSH16 0x41E57F384922964736F6C6343000818 STOP CALLER ", + "sourceMap": "309:3391:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1969:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:89:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3497:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3323:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;462:29:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4143:578:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2445:227:17;;;;;;;;;;;;;:::i;:::-;;839:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4787:132:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;597:31:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2328:109;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2185:118:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;498:39:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:208:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2680:287:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2518:93:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4985:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1357:332:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1765:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2189:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;544:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:153:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1969:212:17;2108:4;2137:36;2161:11;2137:23;:36::i;:::-;2130:43;;1969:212;;;:::o;2365:89:5:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;;3623:21;3636:7;3623:12;:21::i;:::-;3616:28;;3497:154;;;:::o;3323:113::-;3394:35;3403:2;3407:7;3416:12;:10;:12::i;:::-;3394:8;:35::i;:::-;3323:113;;:::o;462:29:17:-;;;;:::o;4143:578:5:-;4251:1;4237:16;;:2;:16;;;4233:87;;4306:1;4276:33;;;;;;;;;;;:::i;:::-;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;4583:12;:10;:12::i;:::-;4562:7;:34::i;:::-;4538:58;;4627:4;4610:21;;:13;:21;;;4606:109;;4675:4;4681:7;4690:13;4654:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4606:109;4223:498;4143:578;;;:::o;2445:227:17:-;2512:7;:5;:7::i;:::-;2498:21;;:10;:21;;;2490:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2558:9;2573:7;:5;:7::i;:::-;:12;;2593:21;2573:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2557:62;;;2638:4;2630:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;2479:193;2445:227::o;839:54::-;;;;;;;;;;;;;;;;;:::o;4787:132:5:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;597:31:17:-;;;;:::o;2328:109::-;2379:7;2406:11;:23;2418:10;2406:23;;;;;;;;;;;;;;;;2399:30;;2328:109;:::o;2185:118:5:-;2248:7;2274:22;2288:7;2274:13;:22::i;:::-;2267:29;;2185:118;;;:::o;498:39:17:-;;;;:::o;1920:208:5:-;1983:7;2023:1;2006:19;;:5;:19;;;2002:87;;2075:1;2048:30;;;;;;;;;;;:::i;:::-;;;;;;;;2002:87;2105:9;:16;2115:5;2105:16;;;;;;;;;;;;;;;;2098:23;;1920:208;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2680:287:17:-;2779:7;:5;:7::i;:::-;2765:21;;:10;:21;;;2757:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2830:32;2844:17;2830:13;:32::i;:::-;2822:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;2942:17;2926:13;:33;;;;;;:::i;:::-;;2680:287;:::o;2518:93:5:-;2565:13;2597:7;2590:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:93;:::o;3718:144::-;3803:52;3822:12;:10;:12::i;:::-;3836:8;3846;3803:18;:52::i;:::-;3718:144;;:::o;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;:::-;4985:208;;;;:::o;1357:332:17:-;1443:9;1430;;:22;1422:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1534:12;;1507:11;:23;1519:10;1507:23;;;;;;;;;;;;;;;;:39;;1485:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;1639:1;1612:11;:23;1624:10;1612:23;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;1651:30;1660:10;1672:8;1651;:30::i;:::-;1357:332;:::o;1765:196::-;1892:13;1930:23;1945:7;1930:14;:23::i;:::-;1923:30;;1765:196;;;:::o;2189:131::-;2256:7;2283:19;:29;2303:8;2283:29;;;;;;;;;;;;2276:36;;2189:131;;;:::o;544:46::-;;;;:::o;3928:153:5:-;4016:4;4039:18;:25;4058:5;4039:25;;;;;;;;;;;;;;;:35;4065:8;4039:35;;;;;;;;;;;;;;;;;;;;;;;;;4032:42;;3928:153;;;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;937:207:8:-;1039:4;760:10;753:18;;1062:35;;;:11;:35;;;;:75;;;;1101:36;1125:11;1101:23;:36::i;:::-;1062:75;1055:82;;937:207;;;:::o;16138:241:5:-;16201:7;16220:13;16236:17;16245:7;16236:8;:17::i;:::-;16220:33;;16284:1;16267:19;;:5;:19;;;16263:88;;16332:7;16309:31;;;;;;;;;;;:::i;:::-;;;;;;;;16263:88;16367:5;16360:12;;;16138:241;;;:::o;5938:127::-;6008:7;6034:15;:24;6050:7;6034:24;;;;;;;;;;;;;;;;;;;;;6027:31;;5938:127;;;:::o;656:96:10:-;709:7;735:10;728:17;;656:96;:::o;14418:120:5:-;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;:::-;14418:120;;;:::o;8838:795::-;8924:7;8943:12;8958:17;8967:7;8958:8;:17::i;:::-;8943:32;;9051:1;9035:18;;:4;:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;9031:86;9177:1;9161:18;;:4;:18;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;9387:1;9368:9;:15;9378:4;9368:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;9157:256;9441:1;9427:16;;:2;:16;;;9423:107;;9504:1;9487:9;:13;9497:2;9487:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9423:107;9559:2;9540:7;:16;9548:7;9540:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9596:7;9592:2;9577:27;;9586:4;9577:27;;;;;;;;;;;;9622:4;9615:11;;;8838:795;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;2975:722:17:-;3053:4;3070:26;3105:17;3070:53;;3134:22;3159:16;;;;;;;;;;;;;;;;;3134:41;;3215:9;:16;3192:13;:20;:39;3188:57;;;3240:5;3233:12;;;;;;3188:57;3263:9;3258:407;3306:9;:16;3283:13;:20;:39;;;;:::i;:::-;3278:1;:44;3258:407;;3344:10;3357:4;3344:17;;3381:9;3376:207;3400:9;:16;3396:1;:20;3376:207;;;3470:9;3480:1;3470:12;;;;;;;;:::i;:::-;;;;;;;;;;3446:36;;;:13;3464:1;3460;:5;;;;:::i;:::-;3446:20;;;;;;;;:::i;:::-;;;;;;;;;;:36;;;;3442:126;;3515:5;3507:13;;3543:5;;3442:126;3418:3;;;;;;;3376:207;;;;3601:5;3597:57;;;3634:4;3627:11;;;;;;;;3597:57;3329:336;3324:3;;;;;:::i;:::-;;;;3258:407;;;;3684:5;3677:12;;;;2975:722;;;;:::o;15591:312:5:-;15718:1;15698:22;;:8;:22;;;15694:91;;15765:8;15743:31;;;;;;;;;;;:::i;:::-;;;;;;;;15694:91;15832:8;15794:18;:25;15813:5;15794:25;;;;;;;;;;;;;;;:35;15820:8;15794:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15877:8;15855:41;;15870:5;15855:41;;;15887:8;15855:41;;;;;;:::i;:::-;;;;;;;;15591:312;;;:::o;16918:782::-;17051:1;17034:2;:14;;;:18;17030:664;;;17088:2;17072:36;;;17109:12;:10;:12::i;:::-;17123:4;17129:7;17138:4;17072:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:1;17381:6;:13;:18;17377:293;;17452:2;17430:25;;;;;;;;;;;:::i;:::-;;;;;;;;17377:293;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;17200:41;;;17190:51;;;:6;:51;;;;17186:130;;17294:2;17272:25;;;;;;;;;;;:::i;:::-;;;;;;;;17186:130;17144:186;17030:664;16918:782;;;;:::o;1086:263:17:-;1155:15;1173:10;;1155:28;;1194:10;;:12;;;;;;;;;:::i;:::-;;;;;;1219:23;1229:3;1234:7;1219:9;:23::i;:::-;1253:36;1266:7;1275:13;1253:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:36::i;:::-;1333:8;1302:19;:28;1322:7;1302:28;;;;;;;;;;;:39;;;;1144:205;1086:263;;:::o;1210:593:8:-;1283:13;1308:22;1322:7;1308:13;:22::i;:::-;;1341:23;1367:10;:19;1378:7;1367:19;;;;;;;;;;;1341:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:18;1417:10;:8;:10::i;:::-;1396:31;;1522:1;1506:4;1500:18;:23;1496:70;;1546:9;1539:16;;;;;;1496:70;1691:1;1671:9;1665:23;:27;1661:95;;;1729:4;1735:9;1715:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1708:37;;;;;;1661:95;1773:23;1788:7;1773:14;:23::i;:::-;1766:30;;;;1210:593;;;;:::o;1561:300:5:-;1663:4;1713:25;1698:40;;;:11;:40;;;;:104;;;;1769:33;1754:48;;;:11;:48;;;;1698:104;:156;;;;1818:36;1842:11;1818:23;:36::i;:::-;1698:156;1679:175;;1561:300;;;:::o;5707:115::-;5773:7;5799;:16;5807:7;5799:16;;;;;;;;;;;;;;;;;;;;;5792:23;;5707:115;;;:::o;14720:662::-;14880:9;:31;;;;14909:1;14893:18;;:4;:18;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;;15109:1;15093:18;;:4;:18;;;;:35;;;;;15124:4;15115:13;;:5;:13;;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15211:4;15189:27;;;;;;;;;;;:::i;:::-;;;;;;;;15089:142;15249:9;15245:81;;;15303:7;15299:2;15283:28;;15292:5;15283:28;;;;;;;;;;;;15245:81;14913:423;14876:460;15373:2;15346:15;:24;15362:7;15346:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14720:662;;;;:::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;7269:1;7252:19;;:5;:19;;;7248:186;;7321:7;7298:31;;;;;;;;;;;:::i;:::-;;;;;;;;7248:186;7402:7;7411;7375:44;;;;;;;;;;;;:::i;:::-;;;;;;;;7189:255;7082:368;;;:::o;10633:100::-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;:::-;10633:100;;:::o;1922:167:8:-;2035:9;2013:10;:19;2024:7;2013:19;;;;;;;;;;;:31;;;;;;:::i;:::-;;2059:23;2074:7;2059:23;;;;;;:::i;:::-;;;;;;;;1922:167;;:::o;972:106:17:-;1024:13;1057;1050:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;972:106;:::o;2677:255:5:-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;:8;:10::i;:::-;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;;;2677:255;;;:::o;762:146:12:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;6376:272:5:-;6479:4;6533:1;6514:21;;:7;:21;;;;:127;;;;;6561:7;6552:16;;:5;:16;;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:52;:88;;;;6633:7;6608:32;;:21;6621:7;6608:12;:21::i;:::-;:32;;;6552:88;6514:127;6495:146;;6376:272;;;;;:::o;10954:182::-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;:::-;10954:182;;;:::o;637:698:11:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;9955:327:5:-;10036:1;10022:16;;:2;:16;;;10018:87;;10091:1;10061:33;;;;;;;;;;;:::i;:::-;;;;;;;;10018:87;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;;10209:1;10184:27;;:13;:27;;;10180:96;;10262:1;10234:31;;;;;;;;;;;:::i;:::-;;;;;;;;10180:96;10008:274;9955:327;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;7:75:19:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:77::-;2897:7;2926:5;2915:16;;2860:77;;;:::o;2943:122::-;3016:24;3034:5;3016:24;:::i;:::-;3009:5;3006:35;2996:63;;3055:1;3052;3045:12;2996:63;2943:122;:::o;3071:139::-;3117:5;3155:6;3142:20;3133:29;;3171:33;3198:5;3171:33;:::i;:::-;3071:139;;;;:::o;3216:329::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;;:::i;:::-;3292:119;3450:1;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3421:117;3216:329;;;;:::o;3551:126::-;3588:7;3628:42;3621:5;3617:54;3606:65;;3551:126;;;:::o;3683:96::-;3720:7;3749:24;3767:5;3749:24;:::i;:::-;3738:35;;3683:96;;;:::o;3785:118::-;3872:24;3890:5;3872:24;:::i;:::-;3867:3;3860:37;3785:118;;:::o;3909:222::-;4002:4;4040:2;4029:9;4025:18;4017:26;;4053:71;4121:1;4110:9;4106:17;4097:6;4053:71;:::i;:::-;3909:222;;;;:::o;4137:122::-;4210:24;4228:5;4210:24;:::i;:::-;4203:5;4200:35;4190:63;;4249:1;4246;4239:12;4190:63;4137:122;:::o;4265:139::-;4311:5;4349:6;4336:20;4327:29;;4365:33;4392:5;4365:33;:::i;:::-;4265:139;;;;:::o;4410:474::-;4478:6;4486;4535:2;4523:9;4514:7;4510:23;4506:32;4503:119;;;4541:79;;:::i;:::-;4503:119;4661:1;4686:53;4731:7;4722:6;4711:9;4707:22;4686:53;:::i;:::-;4676:63;;4632:117;4788:2;4814:53;4859:7;4850:6;4839:9;4835:22;4814:53;:::i;:::-;4804:63;;4759:118;4410:474;;;;;:::o;4890:118::-;4977:24;4995:5;4977:24;:::i;:::-;4972:3;4965:37;4890:118;;:::o;5014:222::-;5107:4;5145:2;5134:9;5130:18;5122:26;;5158:71;5226:1;5215:9;5211:17;5202:6;5158:71;:::i;:::-;5014:222;;;;:::o;5242:619::-;5319:6;5327;5335;5384:2;5372:9;5363:7;5359:23;5355:32;5352:119;;;5390:79;;:::i;:::-;5352:119;5510:1;5535:53;5580:7;5571:6;5560:9;5556:22;5535:53;:::i;:::-;5525:63;;5481:117;5637:2;5663:53;5708:7;5699:6;5688:9;5684:22;5663:53;:::i;:::-;5653:63;;5608:118;5765:2;5791:53;5836:7;5827:6;5816:9;5812:22;5791:53;:::i;:::-;5781:63;;5736:118;5242:619;;;;;:::o;5867:329::-;5926:6;5975:2;5963:9;5954:7;5950:23;5946:32;5943:119;;;5981:79;;:::i;:::-;5943:119;6101:1;6126:53;6171:7;6162:6;6151:9;6147:22;6126:53;:::i;:::-;6116:63;;6072:117;5867:329;;;;:::o;6202:117::-;6311:1;6308;6301:12;6325:117;6434:1;6431;6424:12;6448:180;6496:77;6493:1;6486:88;6593:4;6590:1;6583:15;6617:4;6614:1;6607:15;6634:281;6717:27;6739:4;6717:27;:::i;:::-;6709:6;6705:40;6847:6;6835:10;6832:22;6811:18;6799:10;6796:34;6793:62;6790:88;;;6858:18;;:::i;:::-;6790:88;6898:10;6894:2;6887:22;6677:238;6634:281;;:::o;6921:129::-;6955:6;6982:20;;:::i;:::-;6972:30;;7011:33;7039:4;7031:6;7011:33;:::i;:::-;6921:129;;;:::o;7056:308::-;7118:4;7208:18;7200:6;7197:30;7194:56;;;7230:18;;:::i;:::-;7194:56;7268:29;7290:6;7268:29;:::i;:::-;7260:37;;7352:4;7346;7342:15;7334:23;;7056:308;;;:::o;7370:146::-;7467:6;7462:3;7457;7444:30;7508:1;7499:6;7494:3;7490:16;7483:27;7370:146;;;:::o;7522:425::-;7600:5;7625:66;7641:49;7683:6;7641:49;:::i;:::-;7625:66;:::i;:::-;7616:75;;7714:6;7707:5;7700:21;7752:4;7745:5;7741:16;7790:3;7781:6;7776:3;7772:16;7769:25;7766:112;;;7797:79;;:::i;:::-;7766:112;7887:54;7934:6;7929:3;7924;7887:54;:::i;:::-;7606:341;7522:425;;;;;:::o;7967:340::-;8023:5;8072:3;8065:4;8057:6;8053:17;8049:27;8039:122;;8080:79;;:::i;:::-;8039:122;8197:6;8184:20;8222:79;8297:3;8289:6;8282:4;8274:6;8270:17;8222:79;:::i;:::-;8213:88;;8029:278;7967:340;;;;:::o;8313:509::-;8382:6;8431:2;8419:9;8410:7;8406:23;8402:32;8399:119;;;8437:79;;:::i;:::-;8399:119;8585:1;8574:9;8570:17;8557:31;8615:18;8607:6;8604:30;8601:117;;;8637:79;;:::i;:::-;8601:117;8742:63;8797:7;8788:6;8777:9;8773:22;8742:63;:::i;:::-;8732:73;;8528:287;8313:509;;;;:::o;8828:116::-;8898:21;8913:5;8898:21;:::i;:::-;8891:5;8888:32;8878:60;;8934:1;8931;8924:12;8878:60;8828:116;:::o;8950:133::-;8993:5;9031:6;9018:20;9009:29;;9047:30;9071:5;9047:30;:::i;:::-;8950:133;;;;:::o;9089:468::-;9154:6;9162;9211:2;9199:9;9190:7;9186:23;9182:32;9179:119;;;9217:79;;:::i;:::-;9179:119;9337:1;9362:53;9407:7;9398:6;9387:9;9383:22;9362:53;:::i;:::-;9352:63;;9308:117;9464:2;9490:50;9532:7;9523:6;9512:9;9508:22;9490:50;:::i;:::-;9480:60;;9435:115;9089:468;;;;;:::o;9563:307::-;9624:4;9714:18;9706:6;9703:30;9700:56;;;9736:18;;:::i;:::-;9700:56;9774:29;9796:6;9774:29;:::i;:::-;9766:37;;9858:4;9852;9848:15;9840:23;;9563:307;;;:::o;9876:423::-;9953:5;9978:65;9994:48;10035:6;9994:48;:::i;:::-;9978:65;:::i;:::-;9969:74;;10066:6;10059:5;10052:21;10104:4;10097:5;10093:16;10142:3;10133:6;10128:3;10124:16;10121:25;10118:112;;;10149:79;;:::i;:::-;10118:112;10239:54;10286:6;10281:3;10276;10239:54;:::i;:::-;9959:340;9876:423;;;;;:::o;10318:338::-;10373:5;10422:3;10415:4;10407:6;10403:17;10399:27;10389:122;;10430:79;;:::i;:::-;10389:122;10547:6;10534:20;10572:78;10646:3;10638:6;10631:4;10623:6;10619:17;10572:78;:::i;:::-;10563:87;;10379:277;10318:338;;;;:::o;10662:943::-;10757:6;10765;10773;10781;10830:3;10818:9;10809:7;10805:23;10801:33;10798:120;;;10837:79;;:::i;:::-;10798:120;10957:1;10982:53;11027:7;11018:6;11007:9;11003:22;10982:53;:::i;:::-;10972:63;;10928:117;11084:2;11110:53;11155:7;11146:6;11135:9;11131:22;11110:53;:::i;:::-;11100:63;;11055:118;11212:2;11238:53;11283:7;11274:6;11263:9;11259:22;11238:53;:::i;:::-;11228:63;;11183:118;11368:2;11357:9;11353:18;11340:32;11399:18;11391:6;11388:30;11385:117;;;11421:79;;:::i;:::-;11385:117;11526:62;11580:7;11571:6;11560:9;11556:22;11526:62;:::i;:::-;11516:72;;11311:287;10662:943;;;;;;;:::o;11611:474::-;11679:6;11687;11736:2;11724:9;11715:7;11711:23;11707:32;11704:119;;;11742:79;;:::i;:::-;11704:119;11862:1;11887:53;11932:7;11923:6;11912:9;11908:22;11887:53;:::i;:::-;11877:63;;11833:117;11989:2;12015:53;12060:7;12051:6;12040:9;12036:22;12015:53;:::i;:::-;12005:63;;11960:118;11611:474;;;;;:::o;12091:180::-;12139:77;12136:1;12129:88;12236:4;12233:1;12226:15;12260:4;12257:1;12250:15;12277:320;12321:6;12358:1;12352:4;12348:12;12338:22;;12405:1;12399:4;12395:12;12426:18;12416:81;;12482:4;12474:6;12470:17;12460:27;;12416:81;12544:2;12536:6;12533:14;12513:18;12510:38;12507:84;;12563:18;;:::i;:::-;12507:84;12328:269;12277:320;;;:::o;12603:442::-;12752:4;12790:2;12779:9;12775:18;12767:26;;12803:71;12871:1;12860:9;12856:17;12847:6;12803:71;:::i;:::-;12884:72;12952:2;12941:9;12937:18;12928:6;12884:72;:::i;:::-;12966;13034:2;13023:9;13019:18;13010:6;12966:72;:::i;:::-;12603:442;;;;;;:::o;13051:170::-;13191:22;13187:1;13179:6;13175:14;13168:46;13051:170;:::o;13227:366::-;13369:3;13390:67;13454:2;13449:3;13390:67;:::i;:::-;13383:74;;13466:93;13555:3;13466:93;:::i;:::-;13584:2;13579:3;13575:12;13568:19;;13227:366;;;:::o;13599:419::-;13765:4;13803:2;13792:9;13788:18;13780:26;;13852:9;13846:4;13842:20;13838:1;13827:9;13823:17;13816:47;13880:131;14006:4;13880:131;:::i;:::-;13872:139;;13599:419;;;:::o;14024:147::-;14125:11;14162:3;14147:18;;14024:147;;;;:::o;14177:114::-;;:::o;14297:398::-;14456:3;14477:83;14558:1;14553:3;14477:83;:::i;:::-;14470:90;;14569:93;14658:3;14569:93;:::i;:::-;14687:1;14682:3;14678:11;14671:18;;14297:398;;;:::o;14701:379::-;14885:3;14907:147;15050:3;14907:147;:::i;:::-;14900:154;;15071:3;15064:10;;14701:379;;;:::o;15086:167::-;15226:19;15222:1;15214:6;15210:14;15203:43;15086:167;:::o;15259:366::-;15401:3;15422:67;15486:2;15481:3;15422:67;:::i;:::-;15415:74;;15498:93;15587:3;15498:93;:::i;:::-;15616:2;15611:3;15607:12;15600:19;;15259:366;;;:::o;15631:419::-;15797:4;15835:2;15824:9;15820:18;15812:26;;15884:9;15878:4;15874:20;15870:1;15859:9;15855:17;15848:47;15912:131;16038:4;15912:131;:::i;:::-;15904:139;;15631:419;;;:::o;16056:237::-;16196:34;16192:1;16184:6;16180:14;16173:58;16265:16;16260:2;16252:6;16248:15;16241:41;16056:237;:::o;16303:382::-;16445:3;16470:67;16534:2;16529:3;16470:67;:::i;:::-;16463:74;;16550:93;16639:3;16550:93;:::i;:::-;16672:2;16667:3;16663:12;16656:19;;16303:382;;;:::o;16695:435::-;16861:4;16903:2;16892:9;16888:18;16880:26;;16956:9;16950:4;16946:20;16942:1;16931:9;16927:17;16920:47;16988:131;17114:4;16988:131;:::i;:::-;16980:139;;16695:435;;;:::o;17140:157::-;17189:4;17216:3;17208:11;;17243:3;17240:1;17233:14;17281:4;17278:1;17268:18;17260:26;;17140:157;;;:::o;17307:101::-;17344:6;17395:2;17390;17383:5;17379:14;17375:23;17365:33;;17307:101;;;:::o;17418:119::-;17462:8;17520:5;17514:4;17510:16;17485:41;;17418:119;;;;:::o;17547:417::-;17616:6;17670:1;17658:10;17654:18;17697:97;17727:66;17716:9;17697:97;:::i;:::-;17819:39;17849:8;17838:9;17819:39;:::i;:::-;17807:51;;17895:4;17891:9;17884:5;17880:21;17871:30;;17948:4;17938:8;17934:19;17927:5;17924:30;17914:40;;17623:341;;17547:417;;;;;:::o;17974:68::-;18002:3;18027:5;18020:12;;17974:68;;;:::o;18052:150::-;18102:9;18139:53;18157:34;18166:24;18184:5;18166:24;:::i;:::-;18157:34;:::i;:::-;18139:53;:::i;:::-;18126:66;;18052:150;;;:::o;18212:83::-;18255:3;18280:5;18273:12;;18212:83;;;:::o;18305:281::-;18419:39;18450:7;18419:39;:::i;:::-;18484:91;18533:41;18557:16;18533:41;:::i;:::-;18525:6;18518:4;18512:11;18484:91;:::i;:::-;18478:4;18471:105;18381:205;18305:281;;;:::o;18596:81::-;18641:3;18596:81;:::o;18687:201::-;18768:32;;:::i;:::-;18813:65;18871:6;18863;18857:4;18813:65;:::i;:::-;18740:148;18687:201;;:::o;18898:206::-;18962:132;18979:3;18972:5;18969:14;18962:132;;;19041:39;19078:1;19071:5;19041:39;:::i;:::-;19006:1;18999:5;18995:13;18986:22;;18962:132;;;18898:206;;:::o;19114:575::-;19219:2;19214:3;19211:11;19208:470;;;19257:38;19289:5;19257:38;:::i;:::-;19345:29;19363:10;19345:29;:::i;:::-;19335:8;19331:44;19536:2;19524:10;19521:18;19518:49;;;19557:8;19542:23;;19518:49;19584:80;19640:22;19658:3;19640:22;:::i;:::-;19630:8;19626:37;19613:11;19584:80;:::i;:::-;19223:455;;19208:470;19114:575;;;:::o;19699:129::-;19753:8;19811:5;19805:4;19801:16;19776:41;;19699:129;;;;:::o;19838:181::-;19882:6;19919:51;19967:1;19963:6;19955:5;19952:1;19948:13;19919:51;:::i;:::-;19915:56;20004:4;19998;19994:15;19984:25;;19889:130;19838:181;;;;:::o;20028:315::-;20104:4;20262:29;20287:3;20281:4;20262:29;:::i;:::-;20254:37;;20328:3;20325:1;20321:11;20315:4;20312:21;20304:29;;20028:315;;;;:::o;20352:1523::-;20473:37;20506:3;20473:37;:::i;:::-;20583:18;20575:6;20572:30;20569:56;;;20605:18;;:::i;:::-;20569:56;20653:38;20685:4;20679:11;20653:38;:::i;:::-;20746:67;20806:6;20798;20792:4;20746:67;:::i;:::-;20844:1;20872:4;20859:17;;20908:2;20900:6;20897:14;20929:1;20924:674;;;;21650:1;21671:6;21668:85;;;21724:9;21719:3;21715:19;21709:26;21700:35;;21668:85;21783:67;21843:6;21836:5;21783:67;:::i;:::-;21777:4;21770:81;21619:246;20890:975;;20924:674;20980:4;20976:9;20968:6;20964:22;21018:37;21050:4;21018:37;:::i;:::-;21081:1;21099:224;21113:7;21110:1;21107:14;21099:224;;;21196:9;21191:3;21187:19;21181:26;21173:6;21166:42;21251:1;21243:6;21239:14;21229:24;;21302:2;21291:9;21287:18;21274:31;;21136:4;21133:1;21129:12;21124:17;;21099:224;;;21355:6;21346:7;21343:19;21340:191;;;21417:9;21412:3;21408:19;21402:26;21464:48;21506:4;21498:6;21494:17;21483:9;21464:48;:::i;:::-;21456:6;21449:64;21363:168;21340:191;21581:1;21577;21569:6;21565:14;21561:22;21555:4;21548:36;20931:667;;;20890:975;;20444:1431;;;20352:1523;;:::o;21885:175::-;22029:19;22025:1;22017:6;22013:14;22006:43;21885:175;:::o;22070:382::-;22212:3;22237:67;22301:2;22296:3;22237:67;:::i;:::-;22230:74;;22317:93;22406:3;22317:93;:::i;:::-;22439:2;22434:3;22430:12;22423:19;;22070:382;;;:::o;22462:435::-;22628:4;22670:2;22659:9;22655:18;22647:26;;22723:9;22717:4;22713:20;22709:1;22698:9;22694:17;22687:47;22755:131;22881:4;22755:131;:::i;:::-;22747:139;;22462:435;;;:::o;22907:183::-;23051:27;23047:1;23039:6;23035:14;23028:51;22907:183;:::o;23100:382::-;23242:3;23267:67;23331:2;23326:3;23267:67;:::i;:::-;23260:74;;23347:93;23436:3;23347:93;:::i;:::-;23469:2;23464:3;23460:12;23453:19;;23100:382;;;:::o;23492:435::-;23658:4;23700:2;23689:9;23685:18;23677:26;;23753:9;23747:4;23743:20;23739:1;23728:9;23724:17;23717:47;23785:131;23911:4;23785:131;:::i;:::-;23777:139;;23492:435;;;:::o;23937:196::-;23989:77;23986:1;23979:88;24090:4;24087:1;24080:15;24118:4;24115:1;24108:15;24143:211;24183:3;24206:20;24224:1;24206:20;:::i;:::-;24201:25;;24244:20;24262:1;24244:20;:::i;:::-;24239:25;;24291:1;24288;24284:9;24277:16;;24316:3;24313:1;24310:10;24307:36;;;24323:18;;:::i;:::-;24307:36;24143:211;;;;:::o;24364:214::-;24404:4;24428:20;24446:1;24428:20;:::i;:::-;24423:25;;24466:20;24484:1;24466:20;:::i;:::-;24461:25;;24514:1;24511;24507:9;24499:17;;24542:1;24536:4;24533:11;24530:37;;;24547:18;;:::i;:::-;24530:37;24364:214;;;;:::o;24588:196::-;24640:77;24637:1;24630:88;24741:4;24738:1;24731:15;24769:4;24766:1;24759:15;24794:249;24833:3;24860:24;24878:5;24860:24;:::i;:::-;24851:33;;24910:66;24903:5;24900:77;24897:103;;24980:18;;:::i;:::-;24897:103;25031:1;25024:5;25020:13;25013:20;;24794:249;;;:::o;25053:106::-;25104:6;25142:5;25136:12;25126:22;;25053:106;;;:::o;25169:180::-;25252:11;25290:6;25285:3;25278:19;25334:4;25329:3;25325:14;25310:29;;25169:180;;;;:::o;25359:393::-;25445:3;25477:38;25509:5;25477:38;:::i;:::-;25535:70;25598:6;25593:3;25535:70;:::i;:::-;25528:77;;25618:65;25676:6;25671:3;25664:4;25657:5;25653:16;25618:65;:::i;:::-;25712:29;25734:6;25712:29;:::i;:::-;25707:3;25703:39;25696:46;;25449:303;25359:393;;;;:::o;25762:668::-;25957:4;25999:3;25988:9;25984:19;25976:27;;26017:71;26085:1;26074:9;26070:17;26061:6;26017:71;:::i;:::-;26102:72;26170:2;26159:9;26155:18;26146:6;26102:72;:::i;:::-;26188;26256:2;26245:9;26241:18;26232:6;26188:72;:::i;:::-;26311:9;26305:4;26301:20;26296:2;26285:9;26281:18;26274:48;26343:76;26414:4;26405:6;26343:76;:::i;:::-;26335:84;;25762:668;;;;;;;:::o;26440:153::-;26496:5;26531:6;26525:13;26516:22;;26551:32;26577:5;26551:32;:::i;:::-;26440:153;;;;:::o;26603:373::-;26672:6;26725:2;26713:9;26704:7;26700:23;26696:32;26693:119;;;26731:79;;:::i;:::-;26693:119;26859:1;26888:63;26943:7;26934:6;26923:9;26919:22;26888:63;:::i;:::-;26878:73;;26826:139;26603:373;;;;:::o;26986:156::-;27088:11;27129:3;27114:18;;26986:156;;;;:::o;27152:410::-;27258:3;27290:39;27323:5;27290:39;:::i;:::-;27349:89;27431:6;27426:3;27349:89;:::i;:::-;27342:96;;27451:65;27509:6;27504:3;27497:4;27490:5;27486:16;27451:65;:::i;:::-;27545:6;27540:3;27536:16;27529:23;;27262:300;27152:410;;;;:::o;27572:451::-;27752:3;27778:95;27869:3;27860:6;27778:95;:::i;:::-;27771:102;;27894:95;27985:3;27976:6;27894:95;:::i;:::-;27887:102;;28010:3;28003:10;;27572:451;;;;;:::o;28033:348::-;28154:4;28196:2;28185:9;28181:18;28173:26;;28213:71;28281:1;28270:9;28266:17;28257:6;28213:71;:::i;:::-;28298:72;28366:2;28355:9;28351:18;28342:6;28298:72;:::i;:::-;28033:348;;;;;:::o;28391:196::-;28443:77;28440:1;28433:88;28544:4;28541:1;28534:15;28572:4;28569:1;28562:15" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "getEventIdForToken(uint256)": "cbdede77", + "getMyWalletMints()": "50516808", + "isApprovedForAll(address,address)": "e985e9c5", + "maxPerWallet()": "453c2310", + "maxSupply()": "d5abeb01", + "mintPrice()": "6817c76c", + "mintToken(uint256)": "c634d032", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "ownerOf(uint256)": "6352211e", + "renounceOwnership()": "715018a6", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenToEventMapping(uint256)": "3a5844ff", + "tokenURI(uint256)": "c87b56dd", + "totalMints()": "1f21bfbf", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "updateMetadata(string)": "918b5be1", + "withdrawFunds()": "24600fc3" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getEventIdForToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMyWalletMints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPerWallet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_eventId\",\"type\":\"uint256\"}],\"name\":\"mintToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenToEventMapping\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalMints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newAssetMetadata\",\"type\":\"string\"}],\"name\":\"updateMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/CaveParty.sol\":\"CaveParty\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/CaveParty.sol\":{\"keccak256\":\"0x318dc5bba8368ac20d340d3eec22d8c52afedad81c0e570c1a220cb3fd13fcb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5274a73e3c78238dfbf95f32fdfc5c410f05808f99ad26b786c6d31a9498459b\",\"dweb:/ipfs/QmXzHoG6V8mcPkCxo5nUYxR9hfKKLWkbHoMZSbxpPWX9a1\"]}},\"version\":1}" + } + }, + "contracts/FluffyFuryNFT.sol": { + "FluffyFury": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "initialSvg", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "imageURI", + "type": "string" + } + ], + "name": "formatTokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mint", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "mintPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "svgData", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "svg", + "type": "string" + } + ], + "name": "svgToImageURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_newSvg", + "type": "string" + } + ], + "name": "updateSVG", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_3575": { + "entryPoint": null, + "id": 3575, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_386": { + "entryPoint": null, + "id": 386, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_50": { + "entryPoint": null, + "id": 50, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 516, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 991, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 1066, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 1117, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 2068, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack": { + "entryPoint": 2286, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 2085, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2211, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 2325, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 862, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 714, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 893, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1309, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1198, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 2114, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1630, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 2048, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2016, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1591, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1465, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1785, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 947, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1330, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1256, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1755, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 808, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1455, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1723, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 1209, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 761, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1505, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 734, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 739, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 729, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 724, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 744, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1346, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1710, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1563, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d": { + "entryPoint": 2131, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244": { + "entryPoint": 2245, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1359, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1515, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1558, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:10954:19", + "nodeType": "YulBlock", + "src": "0:10954:19", + "statements": [ + { + "body": { + "nativeSrc": "47:35:19", + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nativeSrc": "57:19:19", + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:19", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:19", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nativeSrc": "67:9:19", + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:19", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:19", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nativeSrc": "177:28:19", + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:19", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:19", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:19", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:19", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nativeSrc": "300:28:19", + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:19", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:19", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:19", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:19", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nativeSrc": "423:28:19", + "nodeType": "YulBlock", + "src": "423:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:19", + "nodeType": "YulLiteral", + "src": "440:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:19", + "nodeType": "YulLiteral", + "src": "443:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:19", + "nodeType": "YulIdentifier", + "src": "433:6:19" + }, + "nativeSrc": "433:12:19", + "nodeType": "YulFunctionCall", + "src": "433:12:19" + }, + "nativeSrc": "433:12:19", + "nodeType": "YulExpressionStatement", + "src": "433:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:19", + "nodeType": "YulFunctionDefinition", + "src": "334:117:19" + }, + { + "body": { + "nativeSrc": "546:28:19", + "nodeType": "YulBlock", + "src": "546:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:19", + "nodeType": "YulLiteral", + "src": "563:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:19", + "nodeType": "YulLiteral", + "src": "566:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:19", + "nodeType": "YulIdentifier", + "src": "556:6:19" + }, + "nativeSrc": "556:12:19", + "nodeType": "YulFunctionCall", + "src": "556:12:19" + }, + "nativeSrc": "556:12:19", + "nodeType": "YulExpressionStatement", + "src": "556:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:19", + "nodeType": "YulFunctionDefinition", + "src": "457:117:19" + }, + { + "body": { + "nativeSrc": "628:54:19", + "nodeType": "YulBlock", + "src": "628:54:19", + "statements": [ + { + "nativeSrc": "638:38:19", + "nodeType": "YulAssignment", + "src": "638:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:19", + "nodeType": "YulIdentifier", + "src": "656:5:19" + }, + { + "kind": "number", + "nativeSrc": "663:2:19", + "nodeType": "YulLiteral", + "src": "663:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:19", + "nodeType": "YulIdentifier", + "src": "652:3:19" + }, + "nativeSrc": "652:14:19", + "nodeType": "YulFunctionCall", + "src": "652:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:19", + "nodeType": "YulLiteral", + "src": "672:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:19", + "nodeType": "YulIdentifier", + "src": "668:3:19" + }, + "nativeSrc": "668:7:19", + "nodeType": "YulFunctionCall", + "src": "668:7:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:19", + "nodeType": "YulIdentifier", + "src": "648:3:19" + }, + "nativeSrc": "648:28:19", + "nodeType": "YulFunctionCall", + "src": "648:28:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:19", + "nodeType": "YulIdentifier", + "src": "638:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:19", + "nodeType": "YulTypedName", + "src": "611:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:19", + "nodeType": "YulTypedName", + "src": "621:6:19", + "type": "" + } + ], + "src": "580:102:19" + }, + { + "body": { + "nativeSrc": "716:152:19", + "nodeType": "YulBlock", + "src": "716:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "733:1:19", + "nodeType": "YulLiteral", + "src": "733:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:19", + "nodeType": "YulLiteral", + "src": "736:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:19", + "nodeType": "YulIdentifier", + "src": "726:6:19" + }, + "nativeSrc": "726:88:19", + "nodeType": "YulFunctionCall", + "src": "726:88:19" + }, + "nativeSrc": "726:88:19", + "nodeType": "YulExpressionStatement", + "src": "726:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "830:1:19", + "nodeType": "YulLiteral", + "src": "830:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:19", + "nodeType": "YulLiteral", + "src": "833:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "823:6:19", + "nodeType": "YulIdentifier", + "src": "823:6:19" + }, + "nativeSrc": "823:15:19", + "nodeType": "YulFunctionCall", + "src": "823:15:19" + }, + "nativeSrc": "823:15:19", + "nodeType": "YulExpressionStatement", + "src": "823:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:19", + "nodeType": "YulLiteral", + "src": "854:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:19", + "nodeType": "YulLiteral", + "src": "857:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:19", + "nodeType": "YulIdentifier", + "src": "847:6:19" + }, + "nativeSrc": "847:15:19", + "nodeType": "YulFunctionCall", + "src": "847:15:19" + }, + "nativeSrc": "847:15:19", + "nodeType": "YulExpressionStatement", + "src": "847:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:19", + "nodeType": "YulFunctionDefinition", + "src": "688:180:19" + }, + { + "body": { + "nativeSrc": "917:238:19", + "nodeType": "YulBlock", + "src": "917:238:19", + "statements": [ + { + "nativeSrc": "927:58:19", + "nodeType": "YulVariableDeclaration", + "src": "927:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:19", + "nodeType": "YulIdentifier", + "src": "949:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:19", + "nodeType": "YulIdentifier", + "src": "979:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:19", + "nodeType": "YulIdentifier", + "src": "957:21:19" + }, + "nativeSrc": "957:27:19", + "nodeType": "YulFunctionCall", + "src": "957:27:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:19", + "nodeType": "YulIdentifier", + "src": "945:3:19" + }, + "nativeSrc": "945:40:19", + "nodeType": "YulFunctionCall", + "src": "945:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "931:10:19", + "nodeType": "YulTypedName", + "src": "931:10:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1096:22:19", + "nodeType": "YulBlock", + "src": "1096:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:19", + "nodeType": "YulIdentifier", + "src": "1098:16:19" + }, + "nativeSrc": "1098:18:19", + "nodeType": "YulFunctionCall", + "src": "1098:18:19" + }, + "nativeSrc": "1098:18:19", + "nodeType": "YulExpressionStatement", + "src": "1098:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1039:10:19", + "nodeType": "YulIdentifier", + "src": "1039:10:19" + }, + { + "kind": "number", + "nativeSrc": "1051:18:19", + "nodeType": "YulLiteral", + "src": "1051:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:19", + "nodeType": "YulIdentifier", + "src": "1036:2:19" + }, + "nativeSrc": "1036:34:19", + "nodeType": "YulFunctionCall", + "src": "1036:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:19", + "nodeType": "YulIdentifier", + "src": "1075:10:19" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:19", + "nodeType": "YulIdentifier", + "src": "1087:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:19", + "nodeType": "YulIdentifier", + "src": "1072:2:19" + }, + "nativeSrc": "1072:22:19", + "nodeType": "YulFunctionCall", + "src": "1072:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:19", + "nodeType": "YulIdentifier", + "src": "1033:2:19" + }, + "nativeSrc": "1033:62:19", + "nodeType": "YulFunctionCall", + "src": "1033:62:19" + }, + "nativeSrc": "1030:88:19", + "nodeType": "YulIf", + "src": "1030:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:19", + "nodeType": "YulLiteral", + "src": "1134:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:19", + "nodeType": "YulIdentifier", + "src": "1138:10:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:19", + "nodeType": "YulIdentifier", + "src": "1127:6:19" + }, + "nativeSrc": "1127:22:19", + "nodeType": "YulFunctionCall", + "src": "1127:22:19" + }, + "nativeSrc": "1127:22:19", + "nodeType": "YulExpressionStatement", + "src": "1127:22:19" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "874:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "903:6:19", + "nodeType": "YulTypedName", + "src": "903:6:19", + "type": "" + }, + { + "name": "size", + "nativeSrc": "911:4:19", + "nodeType": "YulTypedName", + "src": "911:4:19", + "type": "" + } + ], + "src": "874:281:19" + }, + { + "body": { + "nativeSrc": "1202:88:19", + "nodeType": "YulBlock", + "src": "1202:88:19", + "statements": [ + { + "nativeSrc": "1212:30:19", + "nodeType": "YulAssignment", + "src": "1212:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:19", + "nodeType": "YulIdentifier", + "src": "1222:18:19" + }, + "nativeSrc": "1222:20:19", + "nodeType": "YulFunctionCall", + "src": "1222:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1212:6:19", + "nodeType": "YulIdentifier", + "src": "1212:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1271:6:19", + "nodeType": "YulIdentifier", + "src": "1271:6:19" + }, + { + "name": "size", + "nativeSrc": "1279:4:19", + "nodeType": "YulIdentifier", + "src": "1279:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1251:19:19", + "nodeType": "YulIdentifier", + "src": "1251:19:19" + }, + "nativeSrc": "1251:33:19", + "nodeType": "YulFunctionCall", + "src": "1251:33:19" + }, + "nativeSrc": "1251:33:19", + "nodeType": "YulExpressionStatement", + "src": "1251:33:19" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1161:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1186:4:19", + "nodeType": "YulTypedName", + "src": "1186:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1195:6:19", + "nodeType": "YulTypedName", + "src": "1195:6:19", + "type": "" + } + ], + "src": "1161:129:19" + }, + { + "body": { + "nativeSrc": "1363:241:19", + "nodeType": "YulBlock", + "src": "1363:241:19", + "statements": [ + { + "body": { + "nativeSrc": "1468:22:19", + "nodeType": "YulBlock", + "src": "1468:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:19", + "nodeType": "YulIdentifier", + "src": "1470:16:19" + }, + "nativeSrc": "1470:18:19", + "nodeType": "YulFunctionCall", + "src": "1470:18:19" + }, + "nativeSrc": "1470:18:19", + "nodeType": "YulExpressionStatement", + "src": "1470:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:19", + "nodeType": "YulIdentifier", + "src": "1440:6:19" + }, + { + "kind": "number", + "nativeSrc": "1448:18:19", + "nodeType": "YulLiteral", + "src": "1448:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1437:2:19", + "nodeType": "YulIdentifier", + "src": "1437:2:19" + }, + "nativeSrc": "1437:30:19", + "nodeType": "YulFunctionCall", + "src": "1437:30:19" + }, + "nativeSrc": "1434:56:19", + "nodeType": "YulIf", + "src": "1434:56:19" + }, + { + "nativeSrc": "1500:37:19", + "nodeType": "YulAssignment", + "src": "1500:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:19", + "nodeType": "YulIdentifier", + "src": "1530:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:19", + "nodeType": "YulIdentifier", + "src": "1508:21:19" + }, + "nativeSrc": "1508:29:19", + "nodeType": "YulFunctionCall", + "src": "1508:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1500:4:19", + "nodeType": "YulIdentifier", + "src": "1500:4:19" + } + ] + }, + { + "nativeSrc": "1574:23:19", + "nodeType": "YulAssignment", + "src": "1574:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1586:4:19", + "nodeType": "YulIdentifier", + "src": "1586:4:19" + }, + { + "kind": "number", + "nativeSrc": "1592:4:19", + "nodeType": "YulLiteral", + "src": "1592:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:19", + "nodeType": "YulIdentifier", + "src": "1582:3:19" + }, + "nativeSrc": "1582:15:19", + "nodeType": "YulFunctionCall", + "src": "1582:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1574:4:19", + "nodeType": "YulIdentifier", + "src": "1574:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1347:6:19", + "nodeType": "YulTypedName", + "src": "1347:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1358:4:19", + "nodeType": "YulTypedName", + "src": "1358:4:19", + "type": "" + } + ], + "src": "1296:308:19" + }, + { + "body": { + "nativeSrc": "1672:184:19", + "nodeType": "YulBlock", + "src": "1672:184:19", + "statements": [ + { + "nativeSrc": "1682:10:19", + "nodeType": "YulVariableDeclaration", + "src": "1682:10:19", + "value": { + "kind": "number", + "nativeSrc": "1691:1:19", + "nodeType": "YulLiteral", + "src": "1691:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1686:1:19", + "nodeType": "YulTypedName", + "src": "1686:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1751:63:19", + "nodeType": "YulBlock", + "src": "1751:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1776:3:19", + "nodeType": "YulIdentifier", + "src": "1776:3:19" + }, + { + "name": "i", + "nativeSrc": "1781:1:19", + "nodeType": "YulIdentifier", + "src": "1781:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:19", + "nodeType": "YulIdentifier", + "src": "1772:3:19" + }, + "nativeSrc": "1772:11:19", + "nodeType": "YulFunctionCall", + "src": "1772:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1795:3:19", + "nodeType": "YulIdentifier", + "src": "1795:3:19" + }, + { + "name": "i", + "nativeSrc": "1800:1:19", + "nodeType": "YulIdentifier", + "src": "1800:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1791:3:19", + "nodeType": "YulIdentifier", + "src": "1791:3:19" + }, + "nativeSrc": "1791:11:19", + "nodeType": "YulFunctionCall", + "src": "1791:11:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1785:5:19", + "nodeType": "YulIdentifier", + "src": "1785:5:19" + }, + "nativeSrc": "1785:18:19", + "nodeType": "YulFunctionCall", + "src": "1785:18:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1765:6:19", + "nodeType": "YulIdentifier", + "src": "1765:6:19" + }, + "nativeSrc": "1765:39:19", + "nodeType": "YulFunctionCall", + "src": "1765:39:19" + }, + "nativeSrc": "1765:39:19", + "nodeType": "YulExpressionStatement", + "src": "1765:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1712:1:19", + "nodeType": "YulIdentifier", + "src": "1712:1:19" + }, + { + "name": "length", + "nativeSrc": "1715:6:19", + "nodeType": "YulIdentifier", + "src": "1715:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1709:2:19", + "nodeType": "YulIdentifier", + "src": "1709:2:19" + }, + "nativeSrc": "1709:13:19", + "nodeType": "YulFunctionCall", + "src": "1709:13:19" + }, + "nativeSrc": "1701:113:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1723:19:19", + "nodeType": "YulBlock", + "src": "1723:19:19", + "statements": [ + { + "nativeSrc": "1725:15:19", + "nodeType": "YulAssignment", + "src": "1725:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1734:1:19", + "nodeType": "YulIdentifier", + "src": "1734:1:19" + }, + { + "kind": "number", + "nativeSrc": "1737:2:19", + "nodeType": "YulLiteral", + "src": "1737:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1730:3:19", + "nodeType": "YulIdentifier", + "src": "1730:3:19" + }, + "nativeSrc": "1730:10:19", + "nodeType": "YulFunctionCall", + "src": "1730:10:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1725:1:19", + "nodeType": "YulIdentifier", + "src": "1725:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1705:3:19", + "nodeType": "YulBlock", + "src": "1705:3:19", + "statements": [] + }, + "src": "1701:113:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1834:3:19", + "nodeType": "YulIdentifier", + "src": "1834:3:19" + }, + { + "name": "length", + "nativeSrc": "1839:6:19", + "nodeType": "YulIdentifier", + "src": "1839:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1830:3:19", + "nodeType": "YulIdentifier", + "src": "1830:3:19" + }, + "nativeSrc": "1830:16:19", + "nodeType": "YulFunctionCall", + "src": "1830:16:19" + }, + { + "kind": "number", + "nativeSrc": "1848:1:19", + "nodeType": "YulLiteral", + "src": "1848:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1823:6:19", + "nodeType": "YulIdentifier", + "src": "1823:6:19" + }, + "nativeSrc": "1823:27:19", + "nodeType": "YulFunctionCall", + "src": "1823:27:19" + }, + "nativeSrc": "1823:27:19", + "nodeType": "YulExpressionStatement", + "src": "1823:27:19" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:246:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1654:3:19", + "nodeType": "YulTypedName", + "src": "1654:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1659:3:19", + "nodeType": "YulTypedName", + "src": "1659:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1664:6:19", + "nodeType": "YulTypedName", + "src": "1664:6:19", + "type": "" + } + ], + "src": "1610:246:19" + }, + { + "body": { + "nativeSrc": "1957:339:19", + "nodeType": "YulBlock", + "src": "1957:339:19", + "statements": [ + { + "nativeSrc": "1967:75:19", + "nodeType": "YulAssignment", + "src": "1967:75:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2034:6:19", + "nodeType": "YulIdentifier", + "src": "2034:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1992:41:19", + "nodeType": "YulIdentifier", + "src": "1992:41:19" + }, + "nativeSrc": "1992:49:19", + "nodeType": "YulFunctionCall", + "src": "1992:49:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "1976:15:19", + "nodeType": "YulIdentifier", + "src": "1976:15:19" + }, + "nativeSrc": "1976:66:19", + "nodeType": "YulFunctionCall", + "src": "1976:66:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "1967:5:19", + "nodeType": "YulIdentifier", + "src": "1967:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2058:5:19", + "nodeType": "YulIdentifier", + "src": "2058:5:19" + }, + { + "name": "length", + "nativeSrc": "2065:6:19", + "nodeType": "YulIdentifier", + "src": "2065:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2051:6:19", + "nodeType": "YulIdentifier", + "src": "2051:6:19" + }, + "nativeSrc": "2051:21:19", + "nodeType": "YulFunctionCall", + "src": "2051:21:19" + }, + "nativeSrc": "2051:21:19", + "nodeType": "YulExpressionStatement", + "src": "2051:21:19" + }, + { + "nativeSrc": "2081:27:19", + "nodeType": "YulVariableDeclaration", + "src": "2081:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2096:5:19", + "nodeType": "YulIdentifier", + "src": "2096:5:19" + }, + { + "kind": "number", + "nativeSrc": "2103:4:19", + "nodeType": "YulLiteral", + "src": "2103:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2092:3:19", + "nodeType": "YulIdentifier", + "src": "2092:3:19" + }, + "nativeSrc": "2092:16:19", + "nodeType": "YulFunctionCall", + "src": "2092:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2085:3:19", + "nodeType": "YulTypedName", + "src": "2085:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2146:83:19", + "nodeType": "YulBlock", + "src": "2146:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2148:77:19", + "nodeType": "YulIdentifier", + "src": "2148:77:19" + }, + "nativeSrc": "2148:79:19", + "nodeType": "YulFunctionCall", + "src": "2148:79:19" + }, + "nativeSrc": "2148:79:19", + "nodeType": "YulExpressionStatement", + "src": "2148:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2127:3:19", + "nodeType": "YulIdentifier", + "src": "2127:3:19" + }, + { + "name": "length", + "nativeSrc": "2132:6:19", + "nodeType": "YulIdentifier", + "src": "2132:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2123:3:19", + "nodeType": "YulIdentifier", + "src": "2123:3:19" + }, + "nativeSrc": "2123:16:19", + "nodeType": "YulFunctionCall", + "src": "2123:16:19" + }, + { + "name": "end", + "nativeSrc": "2141:3:19", + "nodeType": "YulIdentifier", + "src": "2141:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2120:2:19", + "nodeType": "YulIdentifier", + "src": "2120:2:19" + }, + "nativeSrc": "2120:25:19", + "nodeType": "YulFunctionCall", + "src": "2120:25:19" + }, + "nativeSrc": "2117:112:19", + "nodeType": "YulIf", + "src": "2117:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2273:3:19", + "nodeType": "YulIdentifier", + "src": "2273:3:19" + }, + { + "name": "dst", + "nativeSrc": "2278:3:19", + "nodeType": "YulIdentifier", + "src": "2278:3:19" + }, + { + "name": "length", + "nativeSrc": "2283:6:19", + "nodeType": "YulIdentifier", + "src": "2283:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2238:34:19", + "nodeType": "YulIdentifier", + "src": "2238:34:19" + }, + "nativeSrc": "2238:52:19", + "nodeType": "YulFunctionCall", + "src": "2238:52:19" + }, + "nativeSrc": "2238:52:19", + "nodeType": "YulExpressionStatement", + "src": "2238:52:19" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1862:434:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1930:3:19", + "nodeType": "YulTypedName", + "src": "1930:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1935:6:19", + "nodeType": "YulTypedName", + "src": "1935:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1943:3:19", + "nodeType": "YulTypedName", + "src": "1943:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "1951:5:19", + "nodeType": "YulTypedName", + "src": "1951:5:19", + "type": "" + } + ], + "src": "1862:434:19" + }, + { + "body": { + "nativeSrc": "2389:282:19", + "nodeType": "YulBlock", + "src": "2389:282:19", + "statements": [ + { + "body": { + "nativeSrc": "2438:83:19", + "nodeType": "YulBlock", + "src": "2438:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2440:77:19", + "nodeType": "YulIdentifier", + "src": "2440:77:19" + }, + "nativeSrc": "2440:79:19", + "nodeType": "YulFunctionCall", + "src": "2440:79:19" + }, + "nativeSrc": "2440:79:19", + "nodeType": "YulExpressionStatement", + "src": "2440:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2417:6:19", + "nodeType": "YulIdentifier", + "src": "2417:6:19" + }, + { + "kind": "number", + "nativeSrc": "2425:4:19", + "nodeType": "YulLiteral", + "src": "2425:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2413:3:19", + "nodeType": "YulIdentifier", + "src": "2413:3:19" + }, + "nativeSrc": "2413:17:19", + "nodeType": "YulFunctionCall", + "src": "2413:17:19" + }, + { + "name": "end", + "nativeSrc": "2432:3:19", + "nodeType": "YulIdentifier", + "src": "2432:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2409:3:19", + "nodeType": "YulIdentifier", + "src": "2409:3:19" + }, + "nativeSrc": "2409:27:19", + "nodeType": "YulFunctionCall", + "src": "2409:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2402:6:19", + "nodeType": "YulIdentifier", + "src": "2402:6:19" + }, + "nativeSrc": "2402:35:19", + "nodeType": "YulFunctionCall", + "src": "2402:35:19" + }, + "nativeSrc": "2399:122:19", + "nodeType": "YulIf", + "src": "2399:122:19" + }, + { + "nativeSrc": "2530:27:19", + "nodeType": "YulVariableDeclaration", + "src": "2530:27:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2550:6:19", + "nodeType": "YulIdentifier", + "src": "2550:6:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2544:5:19", + "nodeType": "YulIdentifier", + "src": "2544:5:19" + }, + "nativeSrc": "2544:13:19", + "nodeType": "YulFunctionCall", + "src": "2544:13:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2534:6:19", + "nodeType": "YulTypedName", + "src": "2534:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2566:99:19", + "nodeType": "YulAssignment", + "src": "2566:99:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2638:6:19", + "nodeType": "YulIdentifier", + "src": "2638:6:19" + }, + { + "kind": "number", + "nativeSrc": "2646:4:19", + "nodeType": "YulLiteral", + "src": "2646:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2634:3:19", + "nodeType": "YulIdentifier", + "src": "2634:3:19" + }, + "nativeSrc": "2634:17:19", + "nodeType": "YulFunctionCall", + "src": "2634:17:19" + }, + { + "name": "length", + "nativeSrc": "2653:6:19", + "nodeType": "YulIdentifier", + "src": "2653:6:19" + }, + { + "name": "end", + "nativeSrc": "2661:3:19", + "nodeType": "YulIdentifier", + "src": "2661:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2575:58:19", + "nodeType": "YulIdentifier", + "src": "2575:58:19" + }, + "nativeSrc": "2575:90:19", + "nodeType": "YulFunctionCall", + "src": "2575:90:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2566:5:19", + "nodeType": "YulIdentifier", + "src": "2566:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2316:355:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2367:6:19", + "nodeType": "YulTypedName", + "src": "2367:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2375:3:19", + "nodeType": "YulTypedName", + "src": "2375:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2383:5:19", + "nodeType": "YulTypedName", + "src": "2383:5:19", + "type": "" + } + ], + "src": "2316:355:19" + }, + { + "body": { + "nativeSrc": "2764:437:19", + "nodeType": "YulBlock", + "src": "2764:437:19", + "statements": [ + { + "body": { + "nativeSrc": "2810:83:19", + "nodeType": "YulBlock", + "src": "2810:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2812:77:19", + "nodeType": "YulIdentifier", + "src": "2812:77:19" + }, + "nativeSrc": "2812:79:19", + "nodeType": "YulFunctionCall", + "src": "2812:79:19" + }, + "nativeSrc": "2812:79:19", + "nodeType": "YulExpressionStatement", + "src": "2812:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2785:7:19", + "nodeType": "YulIdentifier", + "src": "2785:7:19" + }, + { + "name": "headStart", + "nativeSrc": "2794:9:19", + "nodeType": "YulIdentifier", + "src": "2794:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2781:3:19", + "nodeType": "YulIdentifier", + "src": "2781:3:19" + }, + "nativeSrc": "2781:23:19", + "nodeType": "YulFunctionCall", + "src": "2781:23:19" + }, + { + "kind": "number", + "nativeSrc": "2806:2:19", + "nodeType": "YulLiteral", + "src": "2806:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2777:3:19", + "nodeType": "YulIdentifier", + "src": "2777:3:19" + }, + "nativeSrc": "2777:32:19", + "nodeType": "YulFunctionCall", + "src": "2777:32:19" + }, + "nativeSrc": "2774:119:19", + "nodeType": "YulIf", + "src": "2774:119:19" + }, + { + "nativeSrc": "2903:291:19", + "nodeType": "YulBlock", + "src": "2903:291:19", + "statements": [ + { + "nativeSrc": "2918:38:19", + "nodeType": "YulVariableDeclaration", + "src": "2918:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2942:9:19", + "nodeType": "YulIdentifier", + "src": "2942:9:19" + }, + { + "kind": "number", + "nativeSrc": "2953:1:19", + "nodeType": "YulLiteral", + "src": "2953:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2938:3:19", + "nodeType": "YulIdentifier", + "src": "2938:3:19" + }, + "nativeSrc": "2938:17:19", + "nodeType": "YulFunctionCall", + "src": "2938:17:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2932:5:19", + "nodeType": "YulIdentifier", + "src": "2932:5:19" + }, + "nativeSrc": "2932:24:19", + "nodeType": "YulFunctionCall", + "src": "2932:24:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2922:6:19", + "nodeType": "YulTypedName", + "src": "2922:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3003:83:19", + "nodeType": "YulBlock", + "src": "3003:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3005:77:19", + "nodeType": "YulIdentifier", + "src": "3005:77:19" + }, + "nativeSrc": "3005:79:19", + "nodeType": "YulFunctionCall", + "src": "3005:79:19" + }, + "nativeSrc": "3005:79:19", + "nodeType": "YulExpressionStatement", + "src": "3005:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2975:6:19", + "nodeType": "YulIdentifier", + "src": "2975:6:19" + }, + { + "kind": "number", + "nativeSrc": "2983:18:19", + "nodeType": "YulLiteral", + "src": "2983:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2972:2:19", + "nodeType": "YulIdentifier", + "src": "2972:2:19" + }, + "nativeSrc": "2972:30:19", + "nodeType": "YulFunctionCall", + "src": "2972:30:19" + }, + "nativeSrc": "2969:117:19", + "nodeType": "YulIf", + "src": "2969:117:19" + }, + { + "nativeSrc": "3100:84:19", + "nodeType": "YulAssignment", + "src": "3100:84:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3156:9:19", + "nodeType": "YulIdentifier", + "src": "3156:9:19" + }, + { + "name": "offset", + "nativeSrc": "3167:6:19", + "nodeType": "YulIdentifier", + "src": "3167:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3152:3:19", + "nodeType": "YulIdentifier", + "src": "3152:3:19" + }, + "nativeSrc": "3152:22:19", + "nodeType": "YulFunctionCall", + "src": "3152:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "3176:7:19", + "nodeType": "YulIdentifier", + "src": "3176:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3110:41:19", + "nodeType": "YulIdentifier", + "src": "3110:41:19" + }, + "nativeSrc": "3110:74:19", + "nodeType": "YulFunctionCall", + "src": "3110:74:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3100:6:19", + "nodeType": "YulIdentifier", + "src": "3100:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2677:524:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2734:9:19", + "nodeType": "YulTypedName", + "src": "2734:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2745:7:19", + "nodeType": "YulTypedName", + "src": "2745:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2757:6:19", + "nodeType": "YulTypedName", + "src": "2757:6:19", + "type": "" + } + ], + "src": "2677:524:19" + }, + { + "body": { + "nativeSrc": "3266:40:19", + "nodeType": "YulBlock", + "src": "3266:40:19", + "statements": [ + { + "nativeSrc": "3277:22:19", + "nodeType": "YulAssignment", + "src": "3277:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3293:5:19", + "nodeType": "YulIdentifier", + "src": "3293:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3287:5:19", + "nodeType": "YulIdentifier", + "src": "3287:5:19" + }, + "nativeSrc": "3287:12:19", + "nodeType": "YulFunctionCall", + "src": "3287:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3277:6:19", + "nodeType": "YulIdentifier", + "src": "3277:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3207:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3249:5:19", + "nodeType": "YulTypedName", + "src": "3249:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3259:6:19", + "nodeType": "YulTypedName", + "src": "3259:6:19", + "type": "" + } + ], + "src": "3207:99:19" + }, + { + "body": { + "nativeSrc": "3340:152:19", + "nodeType": "YulBlock", + "src": "3340:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3357:1:19", + "nodeType": "YulLiteral", + "src": "3357:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3360:77:19", + "nodeType": "YulLiteral", + "src": "3360:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3350:6:19", + "nodeType": "YulIdentifier", + "src": "3350:6:19" + }, + "nativeSrc": "3350:88:19", + "nodeType": "YulFunctionCall", + "src": "3350:88:19" + }, + "nativeSrc": "3350:88:19", + "nodeType": "YulExpressionStatement", + "src": "3350:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3454:1:19", + "nodeType": "YulLiteral", + "src": "3454:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3457:4:19", + "nodeType": "YulLiteral", + "src": "3457:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3447:6:19", + "nodeType": "YulIdentifier", + "src": "3447:6:19" + }, + "nativeSrc": "3447:15:19", + "nodeType": "YulFunctionCall", + "src": "3447:15:19" + }, + "nativeSrc": "3447:15:19", + "nodeType": "YulExpressionStatement", + "src": "3447:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3478:1:19", + "nodeType": "YulLiteral", + "src": "3478:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3481:4:19", + "nodeType": "YulLiteral", + "src": "3481:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3471:6:19", + "nodeType": "YulIdentifier", + "src": "3471:6:19" + }, + "nativeSrc": "3471:15:19", + "nodeType": "YulFunctionCall", + "src": "3471:15:19" + }, + "nativeSrc": "3471:15:19", + "nodeType": "YulExpressionStatement", + "src": "3471:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "3312:180:19", + "nodeType": "YulFunctionDefinition", + "src": "3312:180:19" + }, + { + "body": { + "nativeSrc": "3549:269:19", + "nodeType": "YulBlock", + "src": "3549:269:19", + "statements": [ + { + "nativeSrc": "3559:22:19", + "nodeType": "YulAssignment", + "src": "3559:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3573:4:19", + "nodeType": "YulIdentifier", + "src": "3573:4:19" + }, + { + "kind": "number", + "nativeSrc": "3579:1:19", + "nodeType": "YulLiteral", + "src": "3579:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3569:3:19", + "nodeType": "YulIdentifier", + "src": "3569:3:19" + }, + "nativeSrc": "3569:12:19", + "nodeType": "YulFunctionCall", + "src": "3569:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3559:6:19", + "nodeType": "YulIdentifier", + "src": "3559:6:19" + } + ] + }, + { + "nativeSrc": "3590:38:19", + "nodeType": "YulVariableDeclaration", + "src": "3590:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3620:4:19", + "nodeType": "YulIdentifier", + "src": "3620:4:19" + }, + { + "kind": "number", + "nativeSrc": "3626:1:19", + "nodeType": "YulLiteral", + "src": "3626:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3616:3:19", + "nodeType": "YulIdentifier", + "src": "3616:3:19" + }, + "nativeSrc": "3616:12:19", + "nodeType": "YulFunctionCall", + "src": "3616:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3594:18:19", + "nodeType": "YulTypedName", + "src": "3594:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3667:51:19", + "nodeType": "YulBlock", + "src": "3667:51:19", + "statements": [ + { + "nativeSrc": "3681:27:19", + "nodeType": "YulAssignment", + "src": "3681:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3695:6:19", + "nodeType": "YulIdentifier", + "src": "3695:6:19" + }, + { + "kind": "number", + "nativeSrc": "3703:4:19", + "nodeType": "YulLiteral", + "src": "3703:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3691:3:19", + "nodeType": "YulIdentifier", + "src": "3691:3:19" + }, + "nativeSrc": "3691:17:19", + "nodeType": "YulFunctionCall", + "src": "3691:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3681:6:19", + "nodeType": "YulIdentifier", + "src": "3681:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3647:18:19", + "nodeType": "YulIdentifier", + "src": "3647:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3640:6:19", + "nodeType": "YulIdentifier", + "src": "3640:6:19" + }, + "nativeSrc": "3640:26:19", + "nodeType": "YulFunctionCall", + "src": "3640:26:19" + }, + "nativeSrc": "3637:81:19", + "nodeType": "YulIf", + "src": "3637:81:19" + }, + { + "body": { + "nativeSrc": "3770:42:19", + "nodeType": "YulBlock", + "src": "3770:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "3784:16:19", + "nodeType": "YulIdentifier", + "src": "3784:16:19" + }, + "nativeSrc": "3784:18:19", + "nodeType": "YulFunctionCall", + "src": "3784:18:19" + }, + "nativeSrc": "3784:18:19", + "nodeType": "YulExpressionStatement", + "src": "3784:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3734:18:19", + "nodeType": "YulIdentifier", + "src": "3734:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3757:6:19", + "nodeType": "YulIdentifier", + "src": "3757:6:19" + }, + { + "kind": "number", + "nativeSrc": "3765:2:19", + "nodeType": "YulLiteral", + "src": "3765:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3754:2:19", + "nodeType": "YulIdentifier", + "src": "3754:2:19" + }, + "nativeSrc": "3754:14:19", + "nodeType": "YulFunctionCall", + "src": "3754:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3731:2:19", + "nodeType": "YulIdentifier", + "src": "3731:2:19" + }, + "nativeSrc": "3731:38:19", + "nodeType": "YulFunctionCall", + "src": "3731:38:19" + }, + "nativeSrc": "3728:84:19", + "nodeType": "YulIf", + "src": "3728:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3498:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3533:4:19", + "nodeType": "YulTypedName", + "src": "3533:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3542:6:19", + "nodeType": "YulTypedName", + "src": "3542:6:19", + "type": "" + } + ], + "src": "3498:320:19" + }, + { + "body": { + "nativeSrc": "3878:87:19", + "nodeType": "YulBlock", + "src": "3878:87:19", + "statements": [ + { + "nativeSrc": "3888:11:19", + "nodeType": "YulAssignment", + "src": "3888:11:19", + "value": { + "name": "ptr", + "nativeSrc": "3896:3:19", + "nodeType": "YulIdentifier", + "src": "3896:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3888:4:19", + "nodeType": "YulIdentifier", + "src": "3888:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3916:1:19", + "nodeType": "YulLiteral", + "src": "3916:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3919:3:19", + "nodeType": "YulIdentifier", + "src": "3919:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3909:6:19", + "nodeType": "YulIdentifier", + "src": "3909:6:19" + }, + "nativeSrc": "3909:14:19", + "nodeType": "YulFunctionCall", + "src": "3909:14:19" + }, + "nativeSrc": "3909:14:19", + "nodeType": "YulExpressionStatement", + "src": "3909:14:19" + }, + { + "nativeSrc": "3932:26:19", + "nodeType": "YulAssignment", + "src": "3932:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3950:1:19", + "nodeType": "YulLiteral", + "src": "3950:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3953:4:19", + "nodeType": "YulLiteral", + "src": "3953:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3940:9:19", + "nodeType": "YulIdentifier", + "src": "3940:9:19" + }, + "nativeSrc": "3940:18:19", + "nodeType": "YulFunctionCall", + "src": "3940:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3932:4:19", + "nodeType": "YulIdentifier", + "src": "3932:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3824:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3865:3:19", + "nodeType": "YulTypedName", + "src": "3865:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3873:4:19", + "nodeType": "YulTypedName", + "src": "3873:4:19", + "type": "" + } + ], + "src": "3824:141:19" + }, + { + "body": { + "nativeSrc": "4015:49:19", + "nodeType": "YulBlock", + "src": "4015:49:19", + "statements": [ + { + "nativeSrc": "4025:33:19", + "nodeType": "YulAssignment", + "src": "4025:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4043:5:19", + "nodeType": "YulIdentifier", + "src": "4043:5:19" + }, + { + "kind": "number", + "nativeSrc": "4050:2:19", + "nodeType": "YulLiteral", + "src": "4050:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4039:3:19", + "nodeType": "YulIdentifier", + "src": "4039:3:19" + }, + "nativeSrc": "4039:14:19", + "nodeType": "YulFunctionCall", + "src": "4039:14:19" + }, + { + "kind": "number", + "nativeSrc": "4055:2:19", + "nodeType": "YulLiteral", + "src": "4055:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4035:3:19", + "nodeType": "YulIdentifier", + "src": "4035:3:19" + }, + "nativeSrc": "4035:23:19", + "nodeType": "YulFunctionCall", + "src": "4035:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4025:6:19", + "nodeType": "YulIdentifier", + "src": "4025:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3971:93:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3998:5:19", + "nodeType": "YulTypedName", + "src": "3998:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4008:6:19", + "nodeType": "YulTypedName", + "src": "4008:6:19", + "type": "" + } + ], + "src": "3971:93:19" + }, + { + "body": { + "nativeSrc": "4123:54:19", + "nodeType": "YulBlock", + "src": "4123:54:19", + "statements": [ + { + "nativeSrc": "4133:37:19", + "nodeType": "YulAssignment", + "src": "4133:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4158:4:19", + "nodeType": "YulIdentifier", + "src": "4158:4:19" + }, + { + "name": "value", + "nativeSrc": "4164:5:19", + "nodeType": "YulIdentifier", + "src": "4164:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4154:3:19", + "nodeType": "YulIdentifier", + "src": "4154:3:19" + }, + "nativeSrc": "4154:16:19", + "nodeType": "YulFunctionCall", + "src": "4154:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4133:8:19", + "nodeType": "YulIdentifier", + "src": "4133:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4070:107:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4098:4:19", + "nodeType": "YulTypedName", + "src": "4098:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4104:5:19", + "nodeType": "YulTypedName", + "src": "4104:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4114:8:19", + "nodeType": "YulTypedName", + "src": "4114:8:19", + "type": "" + } + ], + "src": "4070:107:19" + }, + { + "body": { + "nativeSrc": "4259:317:19", + "nodeType": "YulBlock", + "src": "4259:317:19", + "statements": [ + { + "nativeSrc": "4269:35:19", + "nodeType": "YulVariableDeclaration", + "src": "4269:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "4290:10:19", + "nodeType": "YulIdentifier", + "src": "4290:10:19" + }, + { + "kind": "number", + "nativeSrc": "4302:1:19", + "nodeType": "YulLiteral", + "src": "4302:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4286:3:19", + "nodeType": "YulIdentifier", + "src": "4286:3:19" + }, + "nativeSrc": "4286:18:19", + "nodeType": "YulFunctionCall", + "src": "4286:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4273:9:19", + "nodeType": "YulTypedName", + "src": "4273:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4313:109:19", + "nodeType": "YulVariableDeclaration", + "src": "4313:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4344:9:19", + "nodeType": "YulIdentifier", + "src": "4344:9:19" + }, + { + "kind": "number", + "nativeSrc": "4355:66:19", + "nodeType": "YulLiteral", + "src": "4355:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4325:18:19", + "nodeType": "YulIdentifier", + "src": "4325:18:19" + }, + "nativeSrc": "4325:97:19", + "nodeType": "YulFunctionCall", + "src": "4325:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4317:4:19", + "nodeType": "YulTypedName", + "src": "4317:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4431:51:19", + "nodeType": "YulAssignment", + "src": "4431:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4462:9:19", + "nodeType": "YulIdentifier", + "src": "4462:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "4473:8:19", + "nodeType": "YulIdentifier", + "src": "4473:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4443:18:19", + "nodeType": "YulIdentifier", + "src": "4443:18:19" + }, + "nativeSrc": "4443:39:19", + "nodeType": "YulFunctionCall", + "src": "4443:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "4431:8:19", + "nodeType": "YulIdentifier", + "src": "4431:8:19" + } + ] + }, + { + "nativeSrc": "4491:30:19", + "nodeType": "YulAssignment", + "src": "4491:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4504:5:19", + "nodeType": "YulIdentifier", + "src": "4504:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "4515:4:19", + "nodeType": "YulIdentifier", + "src": "4515:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4511:3:19", + "nodeType": "YulIdentifier", + "src": "4511:3:19" + }, + "nativeSrc": "4511:9:19", + "nodeType": "YulFunctionCall", + "src": "4511:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4500:3:19", + "nodeType": "YulIdentifier", + "src": "4500:3:19" + }, + "nativeSrc": "4500:21:19", + "nodeType": "YulFunctionCall", + "src": "4500:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4491:5:19", + "nodeType": "YulIdentifier", + "src": "4491:5:19" + } + ] + }, + { + "nativeSrc": "4530:40:19", + "nodeType": "YulAssignment", + "src": "4530:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4543:5:19", + "nodeType": "YulIdentifier", + "src": "4543:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "4554:8:19", + "nodeType": "YulIdentifier", + "src": "4554:8:19" + }, + { + "name": "mask", + "nativeSrc": "4564:4:19", + "nodeType": "YulIdentifier", + "src": "4564:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4550:3:19", + "nodeType": "YulIdentifier", + "src": "4550:3:19" + }, + "nativeSrc": "4550:19:19", + "nodeType": "YulFunctionCall", + "src": "4550:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4540:2:19", + "nodeType": "YulIdentifier", + "src": "4540:2:19" + }, + "nativeSrc": "4540:30:19", + "nodeType": "YulFunctionCall", + "src": "4540:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4530:6:19", + "nodeType": "YulIdentifier", + "src": "4530:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4183:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4220:5:19", + "nodeType": "YulTypedName", + "src": "4220:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "4227:10:19", + "nodeType": "YulTypedName", + "src": "4227:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4239:8:19", + "nodeType": "YulTypedName", + "src": "4239:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4252:6:19", + "nodeType": "YulTypedName", + "src": "4252:6:19", + "type": "" + } + ], + "src": "4183:393:19" + }, + { + "body": { + "nativeSrc": "4627:32:19", + "nodeType": "YulBlock", + "src": "4627:32:19", + "statements": [ + { + "nativeSrc": "4637:16:19", + "nodeType": "YulAssignment", + "src": "4637:16:19", + "value": { + "name": "value", + "nativeSrc": "4648:5:19", + "nodeType": "YulIdentifier", + "src": "4648:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4637:7:19", + "nodeType": "YulIdentifier", + "src": "4637:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "4582:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4609:5:19", + "nodeType": "YulTypedName", + "src": "4609:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4619:7:19", + "nodeType": "YulTypedName", + "src": "4619:7:19", + "type": "" + } + ], + "src": "4582:77:19" + }, + { + "body": { + "nativeSrc": "4697:28:19", + "nodeType": "YulBlock", + "src": "4697:28:19", + "statements": [ + { + "nativeSrc": "4707:12:19", + "nodeType": "YulAssignment", + "src": "4707:12:19", + "value": { + "name": "value", + "nativeSrc": "4714:5:19", + "nodeType": "YulIdentifier", + "src": "4714:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4707:3:19", + "nodeType": "YulIdentifier", + "src": "4707:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4665:60:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4683:5:19", + "nodeType": "YulTypedName", + "src": "4683:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4693:3:19", + "nodeType": "YulTypedName", + "src": "4693:3:19", + "type": "" + } + ], + "src": "4665:60:19" + }, + { + "body": { + "nativeSrc": "4791:82:19", + "nodeType": "YulBlock", + "src": "4791:82:19", + "statements": [ + { + "nativeSrc": "4801:66:19", + "nodeType": "YulAssignment", + "src": "4801:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4859:5:19", + "nodeType": "YulIdentifier", + "src": "4859:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4841:17:19", + "nodeType": "YulIdentifier", + "src": "4841:17:19" + }, + "nativeSrc": "4841:24:19", + "nodeType": "YulFunctionCall", + "src": "4841:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4832:8:19", + "nodeType": "YulIdentifier", + "src": "4832:8:19" + }, + "nativeSrc": "4832:34:19", + "nodeType": "YulFunctionCall", + "src": "4832:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4814:17:19", + "nodeType": "YulIdentifier", + "src": "4814:17:19" + }, + "nativeSrc": "4814:53:19", + "nodeType": "YulFunctionCall", + "src": "4814:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4801:9:19", + "nodeType": "YulIdentifier", + "src": "4801:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4731:142:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4771:5:19", + "nodeType": "YulTypedName", + "src": "4771:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4781:9:19", + "nodeType": "YulTypedName", + "src": "4781:9:19", + "type": "" + } + ], + "src": "4731:142:19" + }, + { + "body": { + "nativeSrc": "4926:28:19", + "nodeType": "YulBlock", + "src": "4926:28:19", + "statements": [ + { + "nativeSrc": "4936:12:19", + "nodeType": "YulAssignment", + "src": "4936:12:19", + "value": { + "name": "value", + "nativeSrc": "4943:5:19", + "nodeType": "YulIdentifier", + "src": "4943:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4936:3:19", + "nodeType": "YulIdentifier", + "src": "4936:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "4879:75:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4912:5:19", + "nodeType": "YulTypedName", + "src": "4912:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4922:3:19", + "nodeType": "YulTypedName", + "src": "4922:3:19", + "type": "" + } + ], + "src": "4879:75:19" + }, + { + "body": { + "nativeSrc": "5036:193:19", + "nodeType": "YulBlock", + "src": "5036:193:19", + "statements": [ + { + "nativeSrc": "5046:63:19", + "nodeType": "YulVariableDeclaration", + "src": "5046:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "5101:7:19", + "nodeType": "YulIdentifier", + "src": "5101:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5070:30:19", + "nodeType": "YulIdentifier", + "src": "5070:30:19" + }, + "nativeSrc": "5070:39:19", + "nodeType": "YulFunctionCall", + "src": "5070:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "5050:16:19", + "nodeType": "YulTypedName", + "src": "5050:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5125:4:19", + "nodeType": "YulIdentifier", + "src": "5125:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5165:4:19", + "nodeType": "YulIdentifier", + "src": "5165:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5159:5:19", + "nodeType": "YulIdentifier", + "src": "5159:5:19" + }, + "nativeSrc": "5159:11:19", + "nodeType": "YulFunctionCall", + "src": "5159:11:19" + }, + { + "name": "offset", + "nativeSrc": "5172:6:19", + "nodeType": "YulIdentifier", + "src": "5172:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5204:16:19", + "nodeType": "YulIdentifier", + "src": "5204:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5180:23:19", + "nodeType": "YulIdentifier", + "src": "5180:23:19" + }, + "nativeSrc": "5180:41:19", + "nodeType": "YulFunctionCall", + "src": "5180:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5131:27:19", + "nodeType": "YulIdentifier", + "src": "5131:27:19" + }, + "nativeSrc": "5131:91:19", + "nodeType": "YulFunctionCall", + "src": "5131:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5118:6:19", + "nodeType": "YulIdentifier", + "src": "5118:6:19" + }, + "nativeSrc": "5118:105:19", + "nodeType": "YulFunctionCall", + "src": "5118:105:19" + }, + "nativeSrc": "5118:105:19", + "nodeType": "YulExpressionStatement", + "src": "5118:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4960:269:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5013:4:19", + "nodeType": "YulTypedName", + "src": "5013:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5019:6:19", + "nodeType": "YulTypedName", + "src": "5019:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5027:7:19", + "nodeType": "YulTypedName", + "src": "5027:7:19", + "type": "" + } + ], + "src": "4960:269:19" + }, + { + "body": { + "nativeSrc": "5284:24:19", + "nodeType": "YulBlock", + "src": "5284:24:19", + "statements": [ + { + "nativeSrc": "5294:8:19", + "nodeType": "YulAssignment", + "src": "5294:8:19", + "value": { + "kind": "number", + "nativeSrc": "5301:1:19", + "nodeType": "YulLiteral", + "src": "5301:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5294:3:19", + "nodeType": "YulIdentifier", + "src": "5294:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5235:73:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5280:3:19", + "nodeType": "YulTypedName", + "src": "5280:3:19", + "type": "" + } + ], + "src": "5235:73:19" + }, + { + "body": { + "nativeSrc": "5367:136:19", + "nodeType": "YulBlock", + "src": "5367:136:19", + "statements": [ + { + "nativeSrc": "5377:46:19", + "nodeType": "YulVariableDeclaration", + "src": "5377:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5391:30:19", + "nodeType": "YulIdentifier", + "src": "5391:30:19" + }, + "nativeSrc": "5391:32:19", + "nodeType": "YulFunctionCall", + "src": "5391:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5381:6:19", + "nodeType": "YulTypedName", + "src": "5381:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5476:4:19", + "nodeType": "YulIdentifier", + "src": "5476:4:19" + }, + { + "name": "offset", + "nativeSrc": "5482:6:19", + "nodeType": "YulIdentifier", + "src": "5482:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "5490:6:19", + "nodeType": "YulIdentifier", + "src": "5490:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5432:43:19", + "nodeType": "YulIdentifier", + "src": "5432:43:19" + }, + "nativeSrc": "5432:65:19", + "nodeType": "YulFunctionCall", + "src": "5432:65:19" + }, + "nativeSrc": "5432:65:19", + "nodeType": "YulExpressionStatement", + "src": "5432:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5314:189:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5353:4:19", + "nodeType": "YulTypedName", + "src": "5353:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5359:6:19", + "nodeType": "YulTypedName", + "src": "5359:6:19", + "type": "" + } + ], + "src": "5314:189:19" + }, + { + "body": { + "nativeSrc": "5559:136:19", + "nodeType": "YulBlock", + "src": "5559:136:19", + "statements": [ + { + "body": { + "nativeSrc": "5626:63:19", + "nodeType": "YulBlock", + "src": "5626:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5670:5:19", + "nodeType": "YulIdentifier", + "src": "5670:5:19" + }, + { + "kind": "number", + "nativeSrc": "5677:1:19", + "nodeType": "YulLiteral", + "src": "5677:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5640:29:19", + "nodeType": "YulIdentifier", + "src": "5640:29:19" + }, + "nativeSrc": "5640:39:19", + "nodeType": "YulFunctionCall", + "src": "5640:39:19" + }, + "nativeSrc": "5640:39:19", + "nodeType": "YulExpressionStatement", + "src": "5640:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5579:5:19", + "nodeType": "YulIdentifier", + "src": "5579:5:19" + }, + { + "name": "end", + "nativeSrc": "5586:3:19", + "nodeType": "YulIdentifier", + "src": "5586:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5576:2:19", + "nodeType": "YulIdentifier", + "src": "5576:2:19" + }, + "nativeSrc": "5576:14:19", + "nodeType": "YulFunctionCall", + "src": "5576:14:19" + }, + "nativeSrc": "5569:120:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5591:26:19", + "nodeType": "YulBlock", + "src": "5591:26:19", + "statements": [ + { + "nativeSrc": "5593:22:19", + "nodeType": "YulAssignment", + "src": "5593:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5606:5:19", + "nodeType": "YulIdentifier", + "src": "5606:5:19" + }, + { + "kind": "number", + "nativeSrc": "5613:1:19", + "nodeType": "YulLiteral", + "src": "5613:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5602:3:19", + "nodeType": "YulIdentifier", + "src": "5602:3:19" + }, + "nativeSrc": "5602:13:19", + "nodeType": "YulFunctionCall", + "src": "5602:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5593:5:19", + "nodeType": "YulIdentifier", + "src": "5593:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5573:2:19", + "nodeType": "YulBlock", + "src": "5573:2:19", + "statements": [] + }, + "src": "5569:120:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5509:186:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "5547:5:19", + "nodeType": "YulTypedName", + "src": "5547:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5554:3:19", + "nodeType": "YulTypedName", + "src": "5554:3:19", + "type": "" + } + ], + "src": "5509:186:19" + }, + { + "body": { + "nativeSrc": "5780:464:19", + "nodeType": "YulBlock", + "src": "5780:464:19", + "statements": [ + { + "body": { + "nativeSrc": "5806:431:19", + "nodeType": "YulBlock", + "src": "5806:431:19", + "statements": [ + { + "nativeSrc": "5820:54:19", + "nodeType": "YulVariableDeclaration", + "src": "5820:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5868:5:19", + "nodeType": "YulIdentifier", + "src": "5868:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5836:31:19", + "nodeType": "YulIdentifier", + "src": "5836:31:19" + }, + "nativeSrc": "5836:38:19", + "nodeType": "YulFunctionCall", + "src": "5836:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5824:8:19", + "nodeType": "YulTypedName", + "src": "5824:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5887:63:19", + "nodeType": "YulVariableDeclaration", + "src": "5887:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5910:8:19", + "nodeType": "YulIdentifier", + "src": "5910:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5938:10:19", + "nodeType": "YulIdentifier", + "src": "5938:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5920:17:19", + "nodeType": "YulIdentifier", + "src": "5920:17:19" + }, + "nativeSrc": "5920:29:19", + "nodeType": "YulFunctionCall", + "src": "5920:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5906:3:19", + "nodeType": "YulIdentifier", + "src": "5906:3:19" + }, + "nativeSrc": "5906:44:19", + "nodeType": "YulFunctionCall", + "src": "5906:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5891:11:19", + "nodeType": "YulTypedName", + "src": "5891:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6107:27:19", + "nodeType": "YulBlock", + "src": "6107:27:19", + "statements": [ + { + "nativeSrc": "6109:23:19", + "nodeType": "YulAssignment", + "src": "6109:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "6124:8:19", + "nodeType": "YulIdentifier", + "src": "6124:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6109:11:19", + "nodeType": "YulIdentifier", + "src": "6109:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6091:10:19", + "nodeType": "YulIdentifier", + "src": "6091:10:19" + }, + { + "kind": "number", + "nativeSrc": "6103:2:19", + "nodeType": "YulLiteral", + "src": "6103:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6088:2:19", + "nodeType": "YulIdentifier", + "src": "6088:2:19" + }, + "nativeSrc": "6088:18:19", + "nodeType": "YulFunctionCall", + "src": "6088:18:19" + }, + "nativeSrc": "6085:49:19", + "nodeType": "YulIf", + "src": "6085:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6176:11:19", + "nodeType": "YulIdentifier", + "src": "6176:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6193:8:19", + "nodeType": "YulIdentifier", + "src": "6193:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6221:3:19", + "nodeType": "YulIdentifier", + "src": "6221:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6203:17:19", + "nodeType": "YulIdentifier", + "src": "6203:17:19" + }, + "nativeSrc": "6203:22:19", + "nodeType": "YulFunctionCall", + "src": "6203:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6189:3:19", + "nodeType": "YulIdentifier", + "src": "6189:3:19" + }, + "nativeSrc": "6189:37:19", + "nodeType": "YulFunctionCall", + "src": "6189:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6147:28:19", + "nodeType": "YulIdentifier", + "src": "6147:28:19" + }, + "nativeSrc": "6147:80:19", + "nodeType": "YulFunctionCall", + "src": "6147:80:19" + }, + "nativeSrc": "6147:80:19", + "nodeType": "YulExpressionStatement", + "src": "6147:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "5797:3:19", + "nodeType": "YulIdentifier", + "src": "5797:3:19" + }, + { + "kind": "number", + "nativeSrc": "5802:2:19", + "nodeType": "YulLiteral", + "src": "5802:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5794:2:19", + "nodeType": "YulIdentifier", + "src": "5794:2:19" + }, + "nativeSrc": "5794:11:19", + "nodeType": "YulFunctionCall", + "src": "5794:11:19" + }, + "nativeSrc": "5791:446:19", + "nodeType": "YulIf", + "src": "5791:446:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5701:543:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "5756:5:19", + "nodeType": "YulTypedName", + "src": "5756:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "5763:3:19", + "nodeType": "YulTypedName", + "src": "5763:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "5768:10:19", + "nodeType": "YulTypedName", + "src": "5768:10:19", + "type": "" + } + ], + "src": "5701:543:19" + }, + { + "body": { + "nativeSrc": "6313:54:19", + "nodeType": "YulBlock", + "src": "6313:54:19", + "statements": [ + { + "nativeSrc": "6323:37:19", + "nodeType": "YulAssignment", + "src": "6323:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "6348:4:19", + "nodeType": "YulIdentifier", + "src": "6348:4:19" + }, + { + "name": "value", + "nativeSrc": "6354:5:19", + "nodeType": "YulIdentifier", + "src": "6354:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "6344:3:19", + "nodeType": "YulIdentifier", + "src": "6344:3:19" + }, + "nativeSrc": "6344:16:19", + "nodeType": "YulFunctionCall", + "src": "6344:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "6323:8:19", + "nodeType": "YulIdentifier", + "src": "6323:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6250:117:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "6288:4:19", + "nodeType": "YulTypedName", + "src": "6288:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "6294:5:19", + "nodeType": "YulTypedName", + "src": "6294:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "6304:8:19", + "nodeType": "YulTypedName", + "src": "6304:8:19", + "type": "" + } + ], + "src": "6250:117:19" + }, + { + "body": { + "nativeSrc": "6424:118:19", + "nodeType": "YulBlock", + "src": "6424:118:19", + "statements": [ + { + "nativeSrc": "6434:68:19", + "nodeType": "YulVariableDeclaration", + "src": "6434:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6483:1:19", + "nodeType": "YulLiteral", + "src": "6483:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6486:5:19", + "nodeType": "YulIdentifier", + "src": "6486:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6479:3:19", + "nodeType": "YulIdentifier", + "src": "6479:3:19" + }, + "nativeSrc": "6479:13:19", + "nodeType": "YulFunctionCall", + "src": "6479:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6498:1:19", + "nodeType": "YulLiteral", + "src": "6498:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6494:3:19", + "nodeType": "YulIdentifier", + "src": "6494:3:19" + }, + "nativeSrc": "6494:6:19", + "nodeType": "YulFunctionCall", + "src": "6494:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6450:28:19", + "nodeType": "YulIdentifier", + "src": "6450:28:19" + }, + "nativeSrc": "6450:51:19", + "nodeType": "YulFunctionCall", + "src": "6450:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6446:3:19", + "nodeType": "YulIdentifier", + "src": "6446:3:19" + }, + "nativeSrc": "6446:56:19", + "nodeType": "YulFunctionCall", + "src": "6446:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "6438:4:19", + "nodeType": "YulTypedName", + "src": "6438:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "6511:25:19", + "nodeType": "YulAssignment", + "src": "6511:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6525:4:19", + "nodeType": "YulIdentifier", + "src": "6525:4:19" + }, + { + "name": "mask", + "nativeSrc": "6531:4:19", + "nodeType": "YulIdentifier", + "src": "6531:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6521:3:19", + "nodeType": "YulIdentifier", + "src": "6521:3:19" + }, + "nativeSrc": "6521:15:19", + "nodeType": "YulFunctionCall", + "src": "6521:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6511:6:19", + "nodeType": "YulIdentifier", + "src": "6511:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "6373:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6401:4:19", + "nodeType": "YulTypedName", + "src": "6401:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "6407:5:19", + "nodeType": "YulTypedName", + "src": "6407:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6417:6:19", + "nodeType": "YulTypedName", + "src": "6417:6:19", + "type": "" + } + ], + "src": "6373:169:19" + }, + { + "body": { + "nativeSrc": "6628:214:19", + "nodeType": "YulBlock", + "src": "6628:214:19", + "statements": [ + { + "nativeSrc": "6761:37:19", + "nodeType": "YulAssignment", + "src": "6761:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6788:4:19", + "nodeType": "YulIdentifier", + "src": "6788:4:19" + }, + { + "name": "len", + "nativeSrc": "6794:3:19", + "nodeType": "YulIdentifier", + "src": "6794:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "6769:18:19", + "nodeType": "YulIdentifier", + "src": "6769:18:19" + }, + "nativeSrc": "6769:29:19", + "nodeType": "YulFunctionCall", + "src": "6769:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "6761:4:19", + "nodeType": "YulIdentifier", + "src": "6761:4:19" + } + ] + }, + { + "nativeSrc": "6807:29:19", + "nodeType": "YulAssignment", + "src": "6807:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6818:4:19", + "nodeType": "YulIdentifier", + "src": "6818:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6828:1:19", + "nodeType": "YulLiteral", + "src": "6828:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6831:3:19", + "nodeType": "YulIdentifier", + "src": "6831:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6824:3:19", + "nodeType": "YulIdentifier", + "src": "6824:3:19" + }, + "nativeSrc": "6824:11:19", + "nodeType": "YulFunctionCall", + "src": "6824:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6815:2:19", + "nodeType": "YulIdentifier", + "src": "6815:2:19" + }, + "nativeSrc": "6815:21:19", + "nodeType": "YulFunctionCall", + "src": "6815:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "6807:4:19", + "nodeType": "YulIdentifier", + "src": "6807:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6547:295:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6609:4:19", + "nodeType": "YulTypedName", + "src": "6609:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "6615:3:19", + "nodeType": "YulTypedName", + "src": "6615:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "6623:4:19", + "nodeType": "YulTypedName", + "src": "6623:4:19", + "type": "" + } + ], + "src": "6547:295:19" + }, + { + "body": { + "nativeSrc": "6939:1303:19", + "nodeType": "YulBlock", + "src": "6939:1303:19", + "statements": [ + { + "nativeSrc": "6950:51:19", + "nodeType": "YulVariableDeclaration", + "src": "6950:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6997:3:19", + "nodeType": "YulIdentifier", + "src": "6997:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6964:32:19", + "nodeType": "YulIdentifier", + "src": "6964:32:19" + }, + "nativeSrc": "6964:37:19", + "nodeType": "YulFunctionCall", + "src": "6964:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6954:6:19", + "nodeType": "YulTypedName", + "src": "6954:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7086:22:19", + "nodeType": "YulBlock", + "src": "7086:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7088:16:19", + "nodeType": "YulIdentifier", + "src": "7088:16:19" + }, + "nativeSrc": "7088:18:19", + "nodeType": "YulFunctionCall", + "src": "7088:18:19" + }, + "nativeSrc": "7088:18:19", + "nodeType": "YulExpressionStatement", + "src": "7088:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7058:6:19", + "nodeType": "YulIdentifier", + "src": "7058:6:19" + }, + { + "kind": "number", + "nativeSrc": "7066:18:19", + "nodeType": "YulLiteral", + "src": "7066:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7055:2:19", + "nodeType": "YulIdentifier", + "src": "7055:2:19" + }, + "nativeSrc": "7055:30:19", + "nodeType": "YulFunctionCall", + "src": "7055:30:19" + }, + "nativeSrc": "7052:56:19", + "nodeType": "YulIf", + "src": "7052:56:19" + }, + { + "nativeSrc": "7118:52:19", + "nodeType": "YulVariableDeclaration", + "src": "7118:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7164:4:19", + "nodeType": "YulIdentifier", + "src": "7164:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "7158:5:19", + "nodeType": "YulIdentifier", + "src": "7158:5:19" + }, + "nativeSrc": "7158:11:19", + "nodeType": "YulFunctionCall", + "src": "7158:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7132:25:19", + "nodeType": "YulIdentifier", + "src": "7132:25:19" + }, + "nativeSrc": "7132:38:19", + "nodeType": "YulFunctionCall", + "src": "7132:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7122:6:19", + "nodeType": "YulTypedName", + "src": "7122:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7263:4:19", + "nodeType": "YulIdentifier", + "src": "7263:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "7269:6:19", + "nodeType": "YulIdentifier", + "src": "7269:6:19" + }, + { + "name": "newLen", + "nativeSrc": "7277:6:19", + "nodeType": "YulIdentifier", + "src": "7277:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7217:45:19", + "nodeType": "YulIdentifier", + "src": "7217:45:19" + }, + "nativeSrc": "7217:67:19", + "nodeType": "YulFunctionCall", + "src": "7217:67:19" + }, + "nativeSrc": "7217:67:19", + "nodeType": "YulExpressionStatement", + "src": "7217:67:19" + }, + { + "nativeSrc": "7294:18:19", + "nodeType": "YulVariableDeclaration", + "src": "7294:18:19", + "value": { + "kind": "number", + "nativeSrc": "7311:1:19", + "nodeType": "YulLiteral", + "src": "7311:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7298:9:19", + "nodeType": "YulTypedName", + "src": "7298:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7322:17:19", + "nodeType": "YulAssignment", + "src": "7322:17:19", + "value": { + "kind": "number", + "nativeSrc": "7335:4:19", + "nodeType": "YulLiteral", + "src": "7335:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7322:9:19", + "nodeType": "YulIdentifier", + "src": "7322:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7386:611:19", + "nodeType": "YulBlock", + "src": "7386:611:19", + "statements": [ + { + "nativeSrc": "7400:37:19", + "nodeType": "YulVariableDeclaration", + "src": "7400:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7419:6:19", + "nodeType": "YulIdentifier", + "src": "7419:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7431:4:19", + "nodeType": "YulLiteral", + "src": "7431:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7427:3:19", + "nodeType": "YulIdentifier", + "src": "7427:3:19" + }, + "nativeSrc": "7427:9:19", + "nodeType": "YulFunctionCall", + "src": "7427:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7415:3:19", + "nodeType": "YulIdentifier", + "src": "7415:3:19" + }, + "nativeSrc": "7415:22:19", + "nodeType": "YulFunctionCall", + "src": "7415:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7404:7:19", + "nodeType": "YulTypedName", + "src": "7404:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7451:51:19", + "nodeType": "YulVariableDeclaration", + "src": "7451:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7497:4:19", + "nodeType": "YulIdentifier", + "src": "7497:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7465:31:19", + "nodeType": "YulIdentifier", + "src": "7465:31:19" + }, + "nativeSrc": "7465:37:19", + "nodeType": "YulFunctionCall", + "src": "7465:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7455:6:19", + "nodeType": "YulTypedName", + "src": "7455:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7515:10:19", + "nodeType": "YulVariableDeclaration", + "src": "7515:10:19", + "value": { + "kind": "number", + "nativeSrc": "7524:1:19", + "nodeType": "YulLiteral", + "src": "7524:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7519:1:19", + "nodeType": "YulTypedName", + "src": "7519:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7583:163:19", + "nodeType": "YulBlock", + "src": "7583:163:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7608:6:19", + "nodeType": "YulIdentifier", + "src": "7608:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7626:3:19", + "nodeType": "YulIdentifier", + "src": "7626:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "7631:9:19", + "nodeType": "YulIdentifier", + "src": "7631:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7622:3:19", + "nodeType": "YulIdentifier", + "src": "7622:3:19" + }, + "nativeSrc": "7622:19:19", + "nodeType": "YulFunctionCall", + "src": "7622:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7616:5:19", + "nodeType": "YulIdentifier", + "src": "7616:5:19" + }, + "nativeSrc": "7616:26:19", + "nodeType": "YulFunctionCall", + "src": "7616:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7601:6:19", + "nodeType": "YulIdentifier", + "src": "7601:6:19" + }, + "nativeSrc": "7601:42:19", + "nodeType": "YulFunctionCall", + "src": "7601:42:19" + }, + "nativeSrc": "7601:42:19", + "nodeType": "YulExpressionStatement", + "src": "7601:42:19" + }, + { + "nativeSrc": "7660:24:19", + "nodeType": "YulAssignment", + "src": "7660:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7674:6:19", + "nodeType": "YulIdentifier", + "src": "7674:6:19" + }, + { + "kind": "number", + "nativeSrc": "7682:1:19", + "nodeType": "YulLiteral", + "src": "7682:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7670:3:19", + "nodeType": "YulIdentifier", + "src": "7670:3:19" + }, + "nativeSrc": "7670:14:19", + "nodeType": "YulFunctionCall", + "src": "7670:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7660:6:19", + "nodeType": "YulIdentifier", + "src": "7660:6:19" + } + ] + }, + { + "nativeSrc": "7701:31:19", + "nodeType": "YulAssignment", + "src": "7701:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7718:9:19", + "nodeType": "YulIdentifier", + "src": "7718:9:19" + }, + { + "kind": "number", + "nativeSrc": "7729:2:19", + "nodeType": "YulLiteral", + "src": "7729:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7714:3:19", + "nodeType": "YulIdentifier", + "src": "7714:3:19" + }, + "nativeSrc": "7714:18:19", + "nodeType": "YulFunctionCall", + "src": "7714:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7701:9:19", + "nodeType": "YulIdentifier", + "src": "7701:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7549:1:19", + "nodeType": "YulIdentifier", + "src": "7549:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "7552:7:19", + "nodeType": "YulIdentifier", + "src": "7552:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7546:2:19", + "nodeType": "YulIdentifier", + "src": "7546:2:19" + }, + "nativeSrc": "7546:14:19", + "nodeType": "YulFunctionCall", + "src": "7546:14:19" + }, + "nativeSrc": "7538:208:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7561:21:19", + "nodeType": "YulBlock", + "src": "7561:21:19", + "statements": [ + { + "nativeSrc": "7563:17:19", + "nodeType": "YulAssignment", + "src": "7563:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7572:1:19", + "nodeType": "YulIdentifier", + "src": "7572:1:19" + }, + { + "kind": "number", + "nativeSrc": "7575:4:19", + "nodeType": "YulLiteral", + "src": "7575:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7568:3:19", + "nodeType": "YulIdentifier", + "src": "7568:3:19" + }, + "nativeSrc": "7568:12:19", + "nodeType": "YulFunctionCall", + "src": "7568:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7563:1:19", + "nodeType": "YulIdentifier", + "src": "7563:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7542:3:19", + "nodeType": "YulBlock", + "src": "7542:3:19", + "statements": [] + }, + "src": "7538:208:19" + }, + { + "body": { + "nativeSrc": "7782:156:19", + "nodeType": "YulBlock", + "src": "7782:156:19", + "statements": [ + { + "nativeSrc": "7800:43:19", + "nodeType": "YulVariableDeclaration", + "src": "7800:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7827:3:19", + "nodeType": "YulIdentifier", + "src": "7827:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "7832:9:19", + "nodeType": "YulIdentifier", + "src": "7832:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7823:3:19", + "nodeType": "YulIdentifier", + "src": "7823:3:19" + }, + "nativeSrc": "7823:19:19", + "nodeType": "YulFunctionCall", + "src": "7823:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7817:5:19", + "nodeType": "YulIdentifier", + "src": "7817:5:19" + }, + "nativeSrc": "7817:26:19", + "nodeType": "YulFunctionCall", + "src": "7817:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7804:9:19", + "nodeType": "YulTypedName", + "src": "7804:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7867:6:19", + "nodeType": "YulIdentifier", + "src": "7867:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7894:9:19", + "nodeType": "YulIdentifier", + "src": "7894:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7909:6:19", + "nodeType": "YulIdentifier", + "src": "7909:6:19" + }, + { + "kind": "number", + "nativeSrc": "7917:4:19", + "nodeType": "YulLiteral", + "src": "7917:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7905:3:19", + "nodeType": "YulIdentifier", + "src": "7905:3:19" + }, + "nativeSrc": "7905:17:19", + "nodeType": "YulFunctionCall", + "src": "7905:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7875:18:19", + "nodeType": "YulIdentifier", + "src": "7875:18:19" + }, + "nativeSrc": "7875:48:19", + "nodeType": "YulFunctionCall", + "src": "7875:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7860:6:19", + "nodeType": "YulIdentifier", + "src": "7860:6:19" + }, + "nativeSrc": "7860:64:19", + "nodeType": "YulFunctionCall", + "src": "7860:64:19" + }, + "nativeSrc": "7860:64:19", + "nodeType": "YulExpressionStatement", + "src": "7860:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7765:7:19", + "nodeType": "YulIdentifier", + "src": "7765:7:19" + }, + { + "name": "newLen", + "nativeSrc": "7774:6:19", + "nodeType": "YulIdentifier", + "src": "7774:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7762:2:19", + "nodeType": "YulIdentifier", + "src": "7762:2:19" + }, + "nativeSrc": "7762:19:19", + "nodeType": "YulFunctionCall", + "src": "7762:19:19" + }, + "nativeSrc": "7759:179:19", + "nodeType": "YulIf", + "src": "7759:179:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7958:4:19", + "nodeType": "YulIdentifier", + "src": "7958:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7972:6:19", + "nodeType": "YulIdentifier", + "src": "7972:6:19" + }, + { + "kind": "number", + "nativeSrc": "7980:1:19", + "nodeType": "YulLiteral", + "src": "7980:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7968:3:19", + "nodeType": "YulIdentifier", + "src": "7968:3:19" + }, + "nativeSrc": "7968:14:19", + "nodeType": "YulFunctionCall", + "src": "7968:14:19" + }, + { + "kind": "number", + "nativeSrc": "7984:1:19", + "nodeType": "YulLiteral", + "src": "7984:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7964:3:19", + "nodeType": "YulIdentifier", + "src": "7964:3:19" + }, + "nativeSrc": "7964:22:19", + "nodeType": "YulFunctionCall", + "src": "7964:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7951:6:19", + "nodeType": "YulIdentifier", + "src": "7951:6:19" + }, + "nativeSrc": "7951:36:19", + "nodeType": "YulFunctionCall", + "src": "7951:36:19" + }, + "nativeSrc": "7951:36:19", + "nodeType": "YulExpressionStatement", + "src": "7951:36:19" + } + ] + }, + "nativeSrc": "7379:618:19", + "nodeType": "YulCase", + "src": "7379:618:19", + "value": { + "kind": "number", + "nativeSrc": "7384:1:19", + "nodeType": "YulLiteral", + "src": "7384:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "8014:222:19", + "nodeType": "YulBlock", + "src": "8014:222:19", + "statements": [ + { + "nativeSrc": "8028:14:19", + "nodeType": "YulVariableDeclaration", + "src": "8028:14:19", + "value": { + "kind": "number", + "nativeSrc": "8041:1:19", + "nodeType": "YulLiteral", + "src": "8041:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8032:5:19", + "nodeType": "YulTypedName", + "src": "8032:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8065:67:19", + "nodeType": "YulBlock", + "src": "8065:67:19", + "statements": [ + { + "nativeSrc": "8083:35:19", + "nodeType": "YulAssignment", + "src": "8083:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8102:3:19", + "nodeType": "YulIdentifier", + "src": "8102:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "8107:9:19", + "nodeType": "YulIdentifier", + "src": "8107:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8098:3:19", + "nodeType": "YulIdentifier", + "src": "8098:3:19" + }, + "nativeSrc": "8098:19:19", + "nodeType": "YulFunctionCall", + "src": "8098:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8092:5:19", + "nodeType": "YulIdentifier", + "src": "8092:5:19" + }, + "nativeSrc": "8092:26:19", + "nodeType": "YulFunctionCall", + "src": "8092:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8083:5:19", + "nodeType": "YulIdentifier", + "src": "8083:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8058:6:19", + "nodeType": "YulIdentifier", + "src": "8058:6:19" + }, + "nativeSrc": "8055:77:19", + "nodeType": "YulIf", + "src": "8055:77:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8152:4:19", + "nodeType": "YulIdentifier", + "src": "8152:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8211:5:19", + "nodeType": "YulIdentifier", + "src": "8211:5:19" + }, + { + "name": "newLen", + "nativeSrc": "8218:6:19", + "nodeType": "YulIdentifier", + "src": "8218:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8158:52:19", + "nodeType": "YulIdentifier", + "src": "8158:52:19" + }, + "nativeSrc": "8158:67:19", + "nodeType": "YulFunctionCall", + "src": "8158:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8145:6:19", + "nodeType": "YulIdentifier", + "src": "8145:6:19" + }, + "nativeSrc": "8145:81:19", + "nodeType": "YulFunctionCall", + "src": "8145:81:19" + }, + "nativeSrc": "8145:81:19", + "nodeType": "YulExpressionStatement", + "src": "8145:81:19" + } + ] + }, + "nativeSrc": "8006:230:19", + "nodeType": "YulCase", + "src": "8006:230:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7359:6:19", + "nodeType": "YulIdentifier", + "src": "7359:6:19" + }, + { + "kind": "number", + "nativeSrc": "7367:2:19", + "nodeType": "YulLiteral", + "src": "7367:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7356:2:19", + "nodeType": "YulIdentifier", + "src": "7356:2:19" + }, + "nativeSrc": "7356:14:19", + "nodeType": "YulFunctionCall", + "src": "7356:14:19" + }, + "nativeSrc": "7349:887:19", + "nodeType": "YulSwitch", + "src": "7349:887:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6847:1395:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "6928:4:19", + "nodeType": "YulTypedName", + "src": "6928:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "6934:3:19", + "nodeType": "YulTypedName", + "src": "6934:3:19", + "type": "" + } + ], + "src": "6847:1395:19" + }, + { + "body": { + "nativeSrc": "8293:81:19", + "nodeType": "YulBlock", + "src": "8293:81:19", + "statements": [ + { + "nativeSrc": "8303:65:19", + "nodeType": "YulAssignment", + "src": "8303:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8318:5:19", + "nodeType": "YulIdentifier", + "src": "8318:5:19" + }, + { + "kind": "number", + "nativeSrc": "8325:42:19", + "nodeType": "YulLiteral", + "src": "8325:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8314:3:19", + "nodeType": "YulIdentifier", + "src": "8314:3:19" + }, + "nativeSrc": "8314:54:19", + "nodeType": "YulFunctionCall", + "src": "8314:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8303:7:19", + "nodeType": "YulIdentifier", + "src": "8303:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "8248:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8275:5:19", + "nodeType": "YulTypedName", + "src": "8275:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8285:7:19", + "nodeType": "YulTypedName", + "src": "8285:7:19", + "type": "" + } + ], + "src": "8248:126:19" + }, + { + "body": { + "nativeSrc": "8425:51:19", + "nodeType": "YulBlock", + "src": "8425:51:19", + "statements": [ + { + "nativeSrc": "8435:35:19", + "nodeType": "YulAssignment", + "src": "8435:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8464:5:19", + "nodeType": "YulIdentifier", + "src": "8464:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "8446:17:19", + "nodeType": "YulIdentifier", + "src": "8446:17:19" + }, + "nativeSrc": "8446:24:19", + "nodeType": "YulFunctionCall", + "src": "8446:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8435:7:19", + "nodeType": "YulIdentifier", + "src": "8435:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "8380:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8407:5:19", + "nodeType": "YulTypedName", + "src": "8407:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8417:7:19", + "nodeType": "YulTypedName", + "src": "8417:7:19", + "type": "" + } + ], + "src": "8380:96:19" + }, + { + "body": { + "nativeSrc": "8547:53:19", + "nodeType": "YulBlock", + "src": "8547:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8564:3:19", + "nodeType": "YulIdentifier", + "src": "8564:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8587:5:19", + "nodeType": "YulIdentifier", + "src": "8587:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "8569:17:19", + "nodeType": "YulIdentifier", + "src": "8569:17:19" + }, + "nativeSrc": "8569:24:19", + "nodeType": "YulFunctionCall", + "src": "8569:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8557:6:19", + "nodeType": "YulIdentifier", + "src": "8557:6:19" + }, + "nativeSrc": "8557:37:19", + "nodeType": "YulFunctionCall", + "src": "8557:37:19" + }, + "nativeSrc": "8557:37:19", + "nodeType": "YulExpressionStatement", + "src": "8557:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8482:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8535:5:19", + "nodeType": "YulTypedName", + "src": "8535:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8542:3:19", + "nodeType": "YulTypedName", + "src": "8542:3:19", + "type": "" + } + ], + "src": "8482:118:19" + }, + { + "body": { + "nativeSrc": "8704:124:19", + "nodeType": "YulBlock", + "src": "8704:124:19", + "statements": [ + { + "nativeSrc": "8714:26:19", + "nodeType": "YulAssignment", + "src": "8714:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8726:9:19", + "nodeType": "YulIdentifier", + "src": "8726:9:19" + }, + { + "kind": "number", + "nativeSrc": "8737:2:19", + "nodeType": "YulLiteral", + "src": "8737:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8722:3:19", + "nodeType": "YulIdentifier", + "src": "8722:3:19" + }, + "nativeSrc": "8722:18:19", + "nodeType": "YulFunctionCall", + "src": "8722:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8714:4:19", + "nodeType": "YulIdentifier", + "src": "8714:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8794:6:19", + "nodeType": "YulIdentifier", + "src": "8794:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8807:9:19", + "nodeType": "YulIdentifier", + "src": "8807:9:19" + }, + { + "kind": "number", + "nativeSrc": "8818:1:19", + "nodeType": "YulLiteral", + "src": "8818:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8803:3:19", + "nodeType": "YulIdentifier", + "src": "8803:3:19" + }, + "nativeSrc": "8803:17:19", + "nodeType": "YulFunctionCall", + "src": "8803:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "8750:43:19", + "nodeType": "YulIdentifier", + "src": "8750:43:19" + }, + "nativeSrc": "8750:71:19", + "nodeType": "YulFunctionCall", + "src": "8750:71:19" + }, + "nativeSrc": "8750:71:19", + "nodeType": "YulExpressionStatement", + "src": "8750:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "8606:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8676:9:19", + "nodeType": "YulTypedName", + "src": "8676:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8688:6:19", + "nodeType": "YulTypedName", + "src": "8688:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8699:4:19", + "nodeType": "YulTypedName", + "src": "8699:4:19", + "type": "" + } + ], + "src": "8606:222:19" + }, + { + "body": { + "nativeSrc": "8930:73:19", + "nodeType": "YulBlock", + "src": "8930:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8947:3:19", + "nodeType": "YulIdentifier", + "src": "8947:3:19" + }, + { + "name": "length", + "nativeSrc": "8952:6:19", + "nodeType": "YulIdentifier", + "src": "8952:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8940:6:19", + "nodeType": "YulIdentifier", + "src": "8940:6:19" + }, + "nativeSrc": "8940:19:19", + "nodeType": "YulFunctionCall", + "src": "8940:19:19" + }, + "nativeSrc": "8940:19:19", + "nodeType": "YulExpressionStatement", + "src": "8940:19:19" + }, + { + "nativeSrc": "8968:29:19", + "nodeType": "YulAssignment", + "src": "8968:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8987:3:19", + "nodeType": "YulIdentifier", + "src": "8987:3:19" + }, + { + "kind": "number", + "nativeSrc": "8992:4:19", + "nodeType": "YulLiteral", + "src": "8992:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8983:3:19", + "nodeType": "YulIdentifier", + "src": "8983:3:19" + }, + "nativeSrc": "8983:14:19", + "nodeType": "YulFunctionCall", + "src": "8983:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "8968:11:19", + "nodeType": "YulIdentifier", + "src": "8968:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8834:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8902:3:19", + "nodeType": "YulTypedName", + "src": "8902:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8907:6:19", + "nodeType": "YulTypedName", + "src": "8907:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "8918:11:19", + "nodeType": "YulTypedName", + "src": "8918:11:19", + "type": "" + } + ], + "src": "8834:169:19" + }, + { + "body": { + "nativeSrc": "9115:68:19", + "nodeType": "YulBlock", + "src": "9115:68:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "9137:6:19", + "nodeType": "YulIdentifier", + "src": "9137:6:19" + }, + { + "kind": "number", + "nativeSrc": "9145:1:19", + "nodeType": "YulLiteral", + "src": "9145:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9133:3:19", + "nodeType": "YulIdentifier", + "src": "9133:3:19" + }, + "nativeSrc": "9133:14:19", + "nodeType": "YulFunctionCall", + "src": "9133:14:19" + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "9149:26:19", + "nodeType": "YulLiteral", + "src": "9149:26:19", + "type": "", + "value": "SVG data cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9126:6:19", + "nodeType": "YulIdentifier", + "src": "9126:6:19" + }, + "nativeSrc": "9126:50:19", + "nodeType": "YulFunctionCall", + "src": "9126:50:19" + }, + "nativeSrc": "9126:50:19", + "nodeType": "YulExpressionStatement", + "src": "9126:50:19" + } + ] + }, + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "9009:174:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "9107:6:19", + "nodeType": "YulTypedName", + "src": "9107:6:19", + "type": "" + } + ], + "src": "9009:174:19" + }, + { + "body": { + "nativeSrc": "9335:220:19", + "nodeType": "YulBlock", + "src": "9335:220:19", + "statements": [ + { + "nativeSrc": "9345:74:19", + "nodeType": "YulAssignment", + "src": "9345:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9411:3:19", + "nodeType": "YulIdentifier", + "src": "9411:3:19" + }, + { + "kind": "number", + "nativeSrc": "9416:2:19", + "nodeType": "YulLiteral", + "src": "9416:2:19", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "9352:58:19", + "nodeType": "YulIdentifier", + "src": "9352:58:19" + }, + "nativeSrc": "9352:67:19", + "nodeType": "YulFunctionCall", + "src": "9352:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9345:3:19", + "nodeType": "YulIdentifier", + "src": "9345:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9517:3:19", + "nodeType": "YulIdentifier", + "src": "9517:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "9428:88:19", + "nodeType": "YulIdentifier", + "src": "9428:88:19" + }, + "nativeSrc": "9428:93:19", + "nodeType": "YulFunctionCall", + "src": "9428:93:19" + }, + "nativeSrc": "9428:93:19", + "nodeType": "YulExpressionStatement", + "src": "9428:93:19" + }, + { + "nativeSrc": "9530:19:19", + "nodeType": "YulAssignment", + "src": "9530:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9541:3:19", + "nodeType": "YulIdentifier", + "src": "9541:3:19" + }, + { + "kind": "number", + "nativeSrc": "9546:2:19", + "nodeType": "YulLiteral", + "src": "9546:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9537:3:19", + "nodeType": "YulIdentifier", + "src": "9537:3:19" + }, + "nativeSrc": "9537:12:19", + "nodeType": "YulFunctionCall", + "src": "9537:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "9530:3:19", + "nodeType": "YulIdentifier", + "src": "9530:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9189:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "9323:3:19", + "nodeType": "YulTypedName", + "src": "9323:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "9331:3:19", + "nodeType": "YulTypedName", + "src": "9331:3:19", + "type": "" + } + ], + "src": "9189:366:19" + }, + { + "body": { + "nativeSrc": "9732:248:19", + "nodeType": "YulBlock", + "src": "9732:248:19", + "statements": [ + { + "nativeSrc": "9742:26:19", + "nodeType": "YulAssignment", + "src": "9742:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9754:9:19", + "nodeType": "YulIdentifier", + "src": "9754:9:19" + }, + { + "kind": "number", + "nativeSrc": "9765:2:19", + "nodeType": "YulLiteral", + "src": "9765:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9750:3:19", + "nodeType": "YulIdentifier", + "src": "9750:3:19" + }, + "nativeSrc": "9750:18:19", + "nodeType": "YulFunctionCall", + "src": "9750:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9742:4:19", + "nodeType": "YulIdentifier", + "src": "9742:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9789:9:19", + "nodeType": "YulIdentifier", + "src": "9789:9:19" + }, + { + "kind": "number", + "nativeSrc": "9800:1:19", + "nodeType": "YulLiteral", + "src": "9800:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9785:3:19", + "nodeType": "YulIdentifier", + "src": "9785:3:19" + }, + "nativeSrc": "9785:17:19", + "nodeType": "YulFunctionCall", + "src": "9785:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9808:4:19", + "nodeType": "YulIdentifier", + "src": "9808:4:19" + }, + { + "name": "headStart", + "nativeSrc": "9814:9:19", + "nodeType": "YulIdentifier", + "src": "9814:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9804:3:19", + "nodeType": "YulIdentifier", + "src": "9804:3:19" + }, + "nativeSrc": "9804:20:19", + "nodeType": "YulFunctionCall", + "src": "9804:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9778:6:19", + "nodeType": "YulIdentifier", + "src": "9778:6:19" + }, + "nativeSrc": "9778:47:19", + "nodeType": "YulFunctionCall", + "src": "9778:47:19" + }, + "nativeSrc": "9778:47:19", + "nodeType": "YulExpressionStatement", + "src": "9778:47:19" + }, + { + "nativeSrc": "9834:139:19", + "nodeType": "YulAssignment", + "src": "9834:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9968:4:19", + "nodeType": "YulIdentifier", + "src": "9968:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9842:124:19", + "nodeType": "YulIdentifier", + "src": "9842:124:19" + }, + "nativeSrc": "9842:131:19", + "nodeType": "YulFunctionCall", + "src": "9842:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9834:4:19", + "nodeType": "YulIdentifier", + "src": "9834:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9561:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9712:9:19", + "nodeType": "YulTypedName", + "src": "9712:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9727:4:19", + "nodeType": "YulTypedName", + "src": "9727:4:19", + "type": "" + } + ], + "src": "9561:419:19" + }, + { + "body": { + "nativeSrc": "10092:62:19", + "nodeType": "YulBlock", + "src": "10092:62:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10114:6:19", + "nodeType": "YulIdentifier", + "src": "10114:6:19" + }, + { + "kind": "number", + "nativeSrc": "10122:1:19", + "nodeType": "YulLiteral", + "src": "10122:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10110:3:19", + "nodeType": "YulIdentifier", + "src": "10110:3:19" + }, + "nativeSrc": "10110:14:19", + "nodeType": "YulFunctionCall", + "src": "10110:14:19" + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "kind": "string", + "nativeSrc": "10126:20:19", + "nodeType": "YulLiteral", + "src": "10126:20:19", + "type": "", + "value": "SVG data too large" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10103:6:19", + "nodeType": "YulIdentifier", + "src": "10103:6:19" + }, + "nativeSrc": "10103:44:19", + "nodeType": "YulFunctionCall", + "src": "10103:44:19" + }, + "nativeSrc": "10103:44:19", + "nodeType": "YulExpressionStatement", + "src": "10103:44:19" + } + ] + }, + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "9986:168:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "10084:6:19", + "nodeType": "YulTypedName", + "src": "10084:6:19", + "type": "" + } + ], + "src": "9986:168:19" + }, + { + "body": { + "nativeSrc": "10306:220:19", + "nodeType": "YulBlock", + "src": "10306:220:19", + "statements": [ + { + "nativeSrc": "10316:74:19", + "nodeType": "YulAssignment", + "src": "10316:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10382:3:19", + "nodeType": "YulIdentifier", + "src": "10382:3:19" + }, + { + "kind": "number", + "nativeSrc": "10387:2:19", + "nodeType": "YulLiteral", + "src": "10387:2:19", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "10323:58:19", + "nodeType": "YulIdentifier", + "src": "10323:58:19" + }, + "nativeSrc": "10323:67:19", + "nodeType": "YulFunctionCall", + "src": "10323:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10316:3:19", + "nodeType": "YulIdentifier", + "src": "10316:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10488:3:19", + "nodeType": "YulIdentifier", + "src": "10488:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "10399:88:19", + "nodeType": "YulIdentifier", + "src": "10399:88:19" + }, + "nativeSrc": "10399:93:19", + "nodeType": "YulFunctionCall", + "src": "10399:93:19" + }, + "nativeSrc": "10399:93:19", + "nodeType": "YulExpressionStatement", + "src": "10399:93:19" + }, + { + "nativeSrc": "10501:19:19", + "nodeType": "YulAssignment", + "src": "10501:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10512:3:19", + "nodeType": "YulIdentifier", + "src": "10512:3:19" + }, + { + "kind": "number", + "nativeSrc": "10517:2:19", + "nodeType": "YulLiteral", + "src": "10517:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10508:3:19", + "nodeType": "YulIdentifier", + "src": "10508:3:19" + }, + "nativeSrc": "10508:12:19", + "nodeType": "YulFunctionCall", + "src": "10508:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "10501:3:19", + "nodeType": "YulIdentifier", + "src": "10501:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10160:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "10294:3:19", + "nodeType": "YulTypedName", + "src": "10294:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "10302:3:19", + "nodeType": "YulTypedName", + "src": "10302:3:19", + "type": "" + } + ], + "src": "10160:366:19" + }, + { + "body": { + "nativeSrc": "10703:248:19", + "nodeType": "YulBlock", + "src": "10703:248:19", + "statements": [ + { + "nativeSrc": "10713:26:19", + "nodeType": "YulAssignment", + "src": "10713:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10725:9:19", + "nodeType": "YulIdentifier", + "src": "10725:9:19" + }, + { + "kind": "number", + "nativeSrc": "10736:2:19", + "nodeType": "YulLiteral", + "src": "10736:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10721:3:19", + "nodeType": "YulIdentifier", + "src": "10721:3:19" + }, + "nativeSrc": "10721:18:19", + "nodeType": "YulFunctionCall", + "src": "10721:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10713:4:19", + "nodeType": "YulIdentifier", + "src": "10713:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10760:9:19", + "nodeType": "YulIdentifier", + "src": "10760:9:19" + }, + { + "kind": "number", + "nativeSrc": "10771:1:19", + "nodeType": "YulLiteral", + "src": "10771:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10756:3:19", + "nodeType": "YulIdentifier", + "src": "10756:3:19" + }, + "nativeSrc": "10756:17:19", + "nodeType": "YulFunctionCall", + "src": "10756:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10779:4:19", + "nodeType": "YulIdentifier", + "src": "10779:4:19" + }, + { + "name": "headStart", + "nativeSrc": "10785:9:19", + "nodeType": "YulIdentifier", + "src": "10785:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10775:3:19", + "nodeType": "YulIdentifier", + "src": "10775:3:19" + }, + "nativeSrc": "10775:20:19", + "nodeType": "YulFunctionCall", + "src": "10775:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10749:6:19", + "nodeType": "YulIdentifier", + "src": "10749:6:19" + }, + "nativeSrc": "10749:47:19", + "nodeType": "YulFunctionCall", + "src": "10749:47:19" + }, + "nativeSrc": "10749:47:19", + "nodeType": "YulExpressionStatement", + "src": "10749:47:19" + }, + { + "nativeSrc": "10805:139:19", + "nodeType": "YulAssignment", + "src": "10805:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "10939:4:19", + "nodeType": "YulIdentifier", + "src": "10939:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10813:124:19", + "nodeType": "YulIdentifier", + "src": "10813:124:19" + }, + "nativeSrc": "10813:131:19", + "nodeType": "YulFunctionCall", + "src": "10813:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10805:4:19", + "nodeType": "YulIdentifier", + "src": "10805:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10532:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10683:9:19", + "nodeType": "YulTypedName", + "src": "10683:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10698:4:19", + "nodeType": "YulTypedName", + "src": "10698:4:19", + "type": "" + } + ], + "src": "10532:419:19" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n 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 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_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__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_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data too large\")\n\n }\n\n function abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__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_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "6080604052655af3107a40006009553480156200001b57600080fd5b5060405162003cf938038062003cf983398181016040528101906200004191906200045d565b336040518060400160405280600a81526020017f466c7566667946757279000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f46465900000000000000000000000000000000000000000000000000000000008152508160009081620000bf9190620006f9565b508060019081620000d19190620006f9565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001495760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000140919062000825565b60405180910390fd5b6200015a816200020460201b60201c565b506000815111620001a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019990620008a3565b60405180910390fd5b61138881511115620001eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e29062000915565b60405180910390fd5b80600a9081620001fc9190620006f9565b505062000937565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200033382620002e8565b810181811067ffffffffffffffff82111715620003555762000354620002f9565b5b80604052505050565b60006200036a620002ca565b905062000378828262000328565b919050565b600067ffffffffffffffff8211156200039b576200039a620002f9565b5b620003a682620002e8565b9050602081019050919050565b60005b83811015620003d3578082015181840152602081019050620003b6565b60008484015250505050565b6000620003f6620003f0846200037d565b6200035e565b905082815260208101848484011115620004155762000414620002e3565b5b62000422848285620003b3565b509392505050565b600082601f830112620004425762000441620002de565b5b815162000454848260208601620003df565b91505092915050565b600060208284031215620004765762000475620002d4565b5b600082015167ffffffffffffffff811115620004975762000496620002d9565b5b620004a5848285016200042a565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200050157607f821691505b602082108103620005175762000516620004b9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000542565b6200058d868362000542565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005da620005d4620005ce84620005a5565b620005af565b620005a5565b9050919050565b6000819050919050565b620005f683620005b9565b6200060e6200060582620005e1565b8484546200054f565b825550505050565b600090565b6200062562000616565b62000632818484620005eb565b505050565b5b818110156200065a576200064e6000826200061b565b60018101905062000638565b5050565b601f821115620006a95762000673816200051d565b6200067e8462000532565b810160208510156200068e578190505b620006a66200069d8562000532565b83018262000637565b50505b505050565b600082821c905092915050565b6000620006ce60001984600802620006ae565b1980831691505092915050565b6000620006e98383620006bb565b9150826002028217905092915050565b6200070482620004ae565b67ffffffffffffffff81111562000720576200071f620002f9565b5b6200072c8254620004e8565b620007398282856200065e565b600060209050601f8311600181146200077157600084156200075c578287015190505b620007688582620006db565b865550620007d8565b601f19841662000781866200051d565b60005b82811015620007ab5784890151825560018201915060208501945060208101905062000784565b86831015620007cb5784890151620007c7601f891682620006bb565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080d82620007e0565b9050919050565b6200081f8162000800565b82525050565b60006020820190506200083c600083018462000814565b92915050565b600082825260208201905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b60006200088b60188362000842565b9150620008988262000853565b602082019050919050565b60006020820190508181036000830152620008be816200087c565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000620008fd60128362000842565b91506200090a82620008c5565b602082019050919050565b600060208201905081810360008301526200093081620008ee565b9050919050565b6133b280620009476000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a31e06da1161006f578063a31e06da14610446578063a52db60d14610471578063b88d4fde1461049a578063c87b56dd146104c3578063e985e9c514610500578063f2fde38b1461053d5761014b565b806370a0823114610336578063715018a61461037357806371aee1931461038a5780638da5cb5b146103c757806395d89b41146103f2578063a22cb4651461041d5761014b565b806323b872dd1161010857806323b872dd1461022857806324600fc31461025157806330d871c61461026857806342842e0e146102a55780636352211e146102ce5780636817c76c1461030b5761014b565b806301ffc9a71461015057806306fdde031461018d578063081812fc146101b8578063095ea7b3146101f55780631249c58b1461021e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101776004803603810190610172919061229d565b610566565b60405161018491906122e5565b60405180910390f35b34801561019957600080fd5b506101a26105c7565b6040516101af9190612390565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da91906123e8565b610659565b6040516101ec9190612456565b60405180910390f35b34801561020157600080fd5b5061021c6004803603810190610217919061249d565b610675565b005b61022661068b565b005b34801561023457600080fd5b5061024f600480360381019061024a91906124dd565b6107e2565b005b34801561025d57600080fd5b506102666108e4565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612665565b6109eb565b60405161029c9190612390565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906124dd565b610a5f565b005b3480156102da57600080fd5b506102f560048036038101906102f091906123e8565b610a7f565b6040516103029190612456565b60405180910390f35b34801561031757600080fd5b50610320610a91565b60405161032d91906126bd565b60405180910390f35b34801561034257600080fd5b5061035d600480360381019061035891906126d8565b610a97565b60405161036a91906126bd565b60405180910390f35b34801561037f57600080fd5b50610388610b51565b005b34801561039657600080fd5b506103b160048036038101906103ac9190612665565b610b65565b6040516103be9190612390565b60405180910390f35b3480156103d357600080fd5b506103dc610bb5565b6040516103e99190612456565b60405180910390f35b3480156103fe57600080fd5b50610407610bdf565b6040516104149190612390565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612731565b610c71565b005b34801561045257600080fd5b5061045b610c87565b6040516104689190612390565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612665565b610d15565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612812565b610dba565b005b3480156104cf57600080fd5b506104ea60048036038101906104e591906123e8565b610dd7565b6040516104f79190612390565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612895565b610eea565b60405161053491906122e5565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906126d8565b610f7e565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c057506105bf82611001565b5b9050919050565b6060600080546105d690612904565b80601f016020809104026020016040519081016040528092919081815260200182805461060290612904565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050905090565b6000610664826110e3565b5061066e8261116b565b9050919050565b61068782826106826111a8565b6111b0565b5050565b60095434146106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690612981565b60405180910390fd5b6000610764600a80546106e190612904565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90612904565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b50505050506109eb565b9050600061077182610b65565b905060086000815480929190610786906129d0565b91905055506000600854905061079c33826111c2565b6107a681836111e0565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a816040516107d591906126bd565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108545760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161084b9190612456565b60405180910390fd5b600061086883836108636111a8565b61123c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108de578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108d593929190612a18565b60405180910390fd5b50505050565b6108ec611456565b600047905060008111610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612a9b565b60405180910390fd5b600061093e610bb5565b73ffffffffffffffffffffffffffffffffffffffff168260405161096190612aec565b60006040518083038185875af1925050503d806000811461099e576040519150601f19603f3d011682016040523d82523d6000602084013e6109a3565b606091505b50509050806109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612b4d565b60405180910390fd5b5050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000081525090506000610a32846114dd565b90508181604051602001610a47929190612ba9565b60405160208183030381529060405292505050919050565b610a7a83838360405180602001604052806000815250610dba565b505050565b6000610a8a826110e3565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b0a5760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b019190612456565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b59611456565b610b63600061150a565b565b6060610b8f82604051602001610b7b9190612cd7565b6040516020818303038152906040526114dd565b604051602001610b9f9190612d50565b6040516020818303038152906040529050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610bee90612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90612904565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b610c83610c7c6111a8565b83836115d0565b5050565b600a8054610c9490612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090612904565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b505050505081565b610d1d611456565b6000815111610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612dbe565b60405180910390fd5b61138881511115610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612e2a565b60405180910390fd5b80600a9081610db69190612ff6565b5050565b610dc58484846107e2565b610dd18484848461173f565b50505050565b6060610de2826110e3565b506000600660008481526020019081526020016000208054610e0390612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2f90612904565b8015610e7c5780601f10610e5157610100808354040283529160200191610e7c565b820191906000526020600020905b815481529060010190602001808311610e5f57829003601f168201915b505050505090506000610e8d6118f6565b90506000815103610ea2578192505050610ee5565b600082511115610ed7578082604051602001610ebf929190612ba9565b60405160208183030381529060405292505050610ee5565b610ee08461190d565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f86611456565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec9061313a565b60405180910390fd5b610ffe8161150a565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806110dc57506110db82611976565b5b9050919050565b6000806110ef836119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116257826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161115991906126bd565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6111bd8383836001611a1d565b505050565b6111dc828260405180602001604052806000815250611be2565b5050565b806006600084815260200190815260200160002090816112009190612ff6565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161123091906126bd565b60405180910390a15050565b600080611248846119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461128a57611289818486611bfe565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461131b576112cc600085600080611a1d565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461139e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61145e6111a8565b73ffffffffffffffffffffffffffffffffffffffff1661147c610bb5565b73ffffffffffffffffffffffffffffffffffffffff16146114db5761149f6111a8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114d29190612456565b60405180910390fd5b565b60606115038260405180606001604052806040815260200161333d604091396001611cc2565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164157816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116389190612456565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161173291906122e5565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156118f0578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117836111a8565b8685856040518563ffffffff1660e01b81526004016117a594939291906131af565b6020604051808303816000875af19250505080156117e157506040513d601f19601f820116820180604052508101906117de9190613210565b60015b611865573d8060008114611811576040519150601f19603f3d011682016040523d82523d6000602084013e611816565b606091505b50600081510361185d57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118549190612456565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146118ee57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118e59190612456565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b6060611918826110e3565b5060006119236118f6565b90506000815111611943576040518060200160405280600081525061196e565b8061194d84611e56565b60405160200161195e929190612ba9565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611a565750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b8a576000611a66846110e3565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ad157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae45750611ae28184610eea565b155b15611b2657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611b1d9190612456565b60405180910390fd5b8115611b8857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611bec8383611f24565b611bf9600084848461173f565b505050565b611c0983838361201d565b611cbd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7e57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611c7591906126bd565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611cb492919061323d565b60405180910390fd5b505050565b60606000845103611ce457604051806020016040528060008152509050611e4f565b600082611d16576003600286516004611cfd9190613266565b611d0791906132a8565b611d11919061330b565b611d3d565b600360028651611d2691906132a8565b611d30919061330b565b6004611d3c9190613266565b5b905060008167ffffffffffffffff811115611d5b57611d5a61253a565b5b6040519080825280601f01601f191660200182016040528015611d8d5781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b82841015611e03576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611da8565b8082528915611e435760038c510660018114611e265760028114611e3957611e41565b603d6001870353603d6002870353611e41565b603d60018703535b505b50505050505080925050505b9392505050565b606060006001611e65846120de565b01905060008167ffffffffffffffff811115611e8457611e8361253a565b5b6040519080825280601f01601f191660200182016040528015611eb65781602001600182028036833780820191505090505b509050600082602001820190505b600115611f19578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f0d57611f0c6132dc565b5b04945060008503611ec4575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f965760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8d9190612456565b60405180910390fd5b6000611fa48383600061123c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120185760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161200f9190612456565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120d557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061209657506120958484610eea565b5b806120d457508273ffffffffffffffffffffffffffffffffffffffff166120bc8361116b565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061213c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612132576121316132dc565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612179576d04ee2d6d415b85acef8100000000838161216f5761216e6132dc565b5b0492506020810190505b662386f26fc1000083106121a857662386f26fc10000838161219e5761219d6132dc565b5b0492506010810190505b6305f5e10083106121d1576305f5e10083816121c7576121c66132dc565b5b0492506008810190505b61271083106121f65761271083816121ec576121eb6132dc565b5b0492506004810190505b60648310612219576064838161220f5761220e6132dc565b5b0492506002810190505b600a8310612228576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61227a81612245565b811461228557600080fd5b50565b60008135905061229781612271565b92915050565b6000602082840312156122b3576122b261223b565b5b60006122c184828501612288565b91505092915050565b60008115159050919050565b6122df816122ca565b82525050565b60006020820190506122fa60008301846122d6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233a57808201518184015260208101905061231f565b60008484015250505050565b6000601f19601f8301169050919050565b600061236282612300565b61236c818561230b565b935061237c81856020860161231c565b61238581612346565b840191505092915050565b600060208201905081810360008301526123aa8184612357565b905092915050565b6000819050919050565b6123c5816123b2565b81146123d057600080fd5b50565b6000813590506123e2816123bc565b92915050565b6000602082840312156123fe576123fd61223b565b5b600061240c848285016123d3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244082612415565b9050919050565b61245081612435565b82525050565b600060208201905061246b6000830184612447565b92915050565b61247a81612435565b811461248557600080fd5b50565b60008135905061249781612471565b92915050565b600080604083850312156124b4576124b361223b565b5b60006124c285828601612488565b92505060206124d3858286016123d3565b9150509250929050565b6000806000606084860312156124f6576124f561223b565b5b600061250486828701612488565b935050602061251586828701612488565b9250506040612526868287016123d3565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61257282612346565b810181811067ffffffffffffffff821117156125915761259061253a565b5b80604052505050565b60006125a4612231565b90506125b08282612569565b919050565b600067ffffffffffffffff8211156125d0576125cf61253a565b5b6125d982612346565b9050602081019050919050565b82818337600083830152505050565b6000612608612603846125b5565b61259a565b90508281526020810184848401111561262457612623612535565b5b61262f8482856125e6565b509392505050565b600082601f83011261264c5761264b612530565b5b813561265c8482602086016125f5565b91505092915050565b60006020828403121561267b5761267a61223b565b5b600082013567ffffffffffffffff81111561269957612698612240565b5b6126a584828501612637565b91505092915050565b6126b7816123b2565b82525050565b60006020820190506126d260008301846126ae565b92915050565b6000602082840312156126ee576126ed61223b565b5b60006126fc84828501612488565b91505092915050565b61270e816122ca565b811461271957600080fd5b50565b60008135905061272b81612705565b92915050565b600080604083850312156127485761274761223b565b5b600061275685828601612488565b92505060206127678582860161271c565b9150509250929050565b600067ffffffffffffffff82111561278c5761278b61253a565b5b61279582612346565b9050602081019050919050565b60006127b56127b084612771565b61259a565b9050828152602081018484840111156127d1576127d0612535565b5b6127dc8482856125e6565b509392505050565b600082601f8301126127f9576127f8612530565b5b81356128098482602086016127a2565b91505092915050565b6000806000806080858703121561282c5761282b61223b565b5b600061283a87828801612488565b945050602061284b87828801612488565b935050604061285c878288016123d3565b925050606085013567ffffffffffffffff81111561287d5761287c612240565b5b612889878288016127e4565b91505092959194509250565b600080604083850312156128ac576128ab61223b565b5b60006128ba85828601612488565b92505060206128cb85828601612488565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061291c57607f821691505b60208210810361292f5761292e6128d5565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061296b601d8361230b565b915061297682612935565b602082019050919050565b6000602082019050818103600083015261299a8161295e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129db826123b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a0d57612a0c6129a1565b5b600182019050919050565b6000606082019050612a2d6000830186612447565b612a3a60208301856126ae565b612a476040830184612447565b949350505050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b6000612a8560128361230b565b9150612a9082612a4f565b602082019050919050565b60006020820190508181036000830152612ab481612a78565b9050919050565b600081905092915050565b50565b6000612ad6600083612abb565b9150612ae182612ac6565b600082019050919050565b6000612af782612ac9565b9150819050919050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612b3760118361230b565b9150612b4282612b01565b602082019050919050565b60006020820190508181036000830152612b6681612b2a565b9050919050565b600081905092915050565b6000612b8382612300565b612b8d8185612b6d565b9350612b9d81856020860161231c565b80840191505092915050565b6000612bb58285612b78565b9150612bc18284612b78565b91508190509392505050565b7f7b226e616d65223a2022466c756666792046757279222c20226465736372697060008201527f74696f6e223a2022596f75722061636365737320696e746f20616e792065766560208201527f6e742063726561746564207573696e67207468697320746f6b656e206164647260408201527f657373222c2022696d616765223a220000000000000000000000000000000000606082015250565b6000612c75606f83612b6d565b9150612c8082612bcd565b606f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612cc1600283612b6d565b9150612ccc82612c8b565b600282019050919050565b6000612ce282612c68565b9150612cee8284612b78565b9150612cf982612cb4565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000612d3a601d83612b6d565b9150612d4582612d04565b601d82019050919050565b6000612d5b82612d2d565b9150612d678284612b78565b915081905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b6000612da860188361230b565b9150612db382612d72565b602082019050919050565b60006020820190508181036000830152612dd781612d9b565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000612e1460128361230b565b9150612e1f82612dde565b602082019050919050565b60006020820190508181036000830152612e4381612e07565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612eac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e6f565b612eb68683612e6f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612ef3612eee612ee9846123b2565b612ece565b6123b2565b9050919050565b6000819050919050565b612f0d83612ed8565b612f21612f1982612efa565b848454612e7c565b825550505050565b600090565b612f36612f29565b612f41818484612f04565b505050565b5b81811015612f6557612f5a600082612f2e565b600181019050612f47565b5050565b601f821115612faa57612f7b81612e4a565b612f8484612e5f565b81016020851015612f93578190505b612fa7612f9f85612e5f565b830182612f46565b50505b505050565b600082821c905092915050565b6000612fcd60001984600802612faf565b1980831691505092915050565b6000612fe68383612fbc565b9150826002028217905092915050565b612fff82612300565b67ffffffffffffffff8111156130185761301761253a565b5b6130228254612904565b61302d828285612f69565b600060209050601f831160018114613060576000841561304e578287015190505b6130588582612fda565b8655506130c0565b601f19841661306e86612e4a565b60005b8281101561309657848901518255600182019150602085019450602081019050613071565b868310156130b357848901516130af601f891682612fbc565b8355505b6001600288020188555050505b505050505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061312460248361230b565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006131818261315a565b61318b8185613165565b935061319b81856020860161231c565b6131a481612346565b840191505092915050565b60006080820190506131c46000830187612447565b6131d16020830186612447565b6131de60408301856126ae565b81810360608301526131f08184613176565b905095945050505050565b60008151905061320a81612271565b92915050565b6000602082840312156132265761322561223b565b5b6000613234848285016131fb565b91505092915050565b60006040820190506132526000830185612447565b61325f60208301846126ae565b9392505050565b6000613271826123b2565b915061327c836123b2565b925082820261328a816123b2565b915082820484148315176132a1576132a06129a1565b5b5092915050565b60006132b3826123b2565b91506132be836123b2565b92508282019050808211156132d6576132d56129a1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613316826123b2565b9150613321836123b2565b925082613331576133306132dc565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f1a1a46abdc0ea2e367c70d79d69481c4d0e6e587eee1932b56afa37249682e564736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH6 0x5AF3107A4000 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3CF9 CODESIZE SUB DUP1 PUSH3 0x3CF9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x41 SWAP2 SWAP1 PUSH3 0x45D JUMP JUMPDEST CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x466C756666794675727900000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4646590000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0xBF SWAP2 SWAP1 PUSH3 0x6F9 JUMP JUMPDEST POP DUP1 PUSH1 0x1 SWAP1 DUP2 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x6F9 JUMP JUMPDEST POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x149 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x140 SWAP2 SWAP1 PUSH3 0x825 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x15A DUP2 PUSH3 0x204 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD GT PUSH3 0x1A2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x199 SWAP1 PUSH3 0x8A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1388 DUP2 MLOAD GT ISZERO PUSH3 0x1EB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1E2 SWAP1 PUSH3 0x915 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH3 0x1FC SWAP2 SWAP1 PUSH3 0x6F9 JUMP JUMPDEST POP POP PUSH3 0x937 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP 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 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 PUSH3 0x333 DUP3 PUSH3 0x2E8 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x355 JUMPI PUSH3 0x354 PUSH3 0x2F9 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x36A PUSH3 0x2CA JUMP JUMPDEST SWAP1 POP PUSH3 0x378 DUP3 DUP3 PUSH3 0x328 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x39B JUMPI PUSH3 0x39A PUSH3 0x2F9 JUMP JUMPDEST JUMPDEST PUSH3 0x3A6 DUP3 PUSH3 0x2E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3D3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3B6 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3F6 PUSH3 0x3F0 DUP5 PUSH3 0x37D JUMP JUMPDEST PUSH3 0x35E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x415 JUMPI PUSH3 0x414 PUSH3 0x2E3 JUMP JUMPDEST JUMPDEST PUSH3 0x422 DUP5 DUP3 DUP6 PUSH3 0x3B3 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x442 JUMPI PUSH3 0x441 PUSH3 0x2DE JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x454 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x3DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x476 JUMPI PUSH3 0x475 PUSH3 0x2D4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x497 JUMPI PUSH3 0x496 PUSH3 0x2D9 JUMP JUMPDEST JUMPDEST PUSH3 0x4A5 DUP5 DUP3 DUP6 ADD PUSH3 0x42A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x501 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x517 JUMPI PUSH3 0x516 PUSH3 0x4B9 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x581 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x542 JUMP JUMPDEST PUSH3 0x58D DUP7 DUP4 PUSH3 0x542 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5DA PUSH3 0x5D4 PUSH3 0x5CE DUP5 PUSH3 0x5A5 JUMP JUMPDEST PUSH3 0x5AF JUMP JUMPDEST PUSH3 0x5A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x5F6 DUP4 PUSH3 0x5B9 JUMP JUMPDEST PUSH3 0x60E PUSH3 0x605 DUP3 PUSH3 0x5E1 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x54F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x625 PUSH3 0x616 JUMP JUMPDEST PUSH3 0x632 DUP2 DUP5 DUP5 PUSH3 0x5EB JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x65A JUMPI PUSH3 0x64E PUSH1 0x0 DUP3 PUSH3 0x61B JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x638 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x6A9 JUMPI PUSH3 0x673 DUP2 PUSH3 0x51D JUMP JUMPDEST PUSH3 0x67E DUP5 PUSH3 0x532 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x68E JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x6A6 PUSH3 0x69D DUP6 PUSH3 0x532 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x637 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6CE PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x6AE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6E9 DUP4 DUP4 PUSH3 0x6BB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x704 DUP3 PUSH3 0x4AE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x720 JUMPI PUSH3 0x71F PUSH3 0x2F9 JUMP JUMPDEST JUMPDEST PUSH3 0x72C DUP3 SLOAD PUSH3 0x4E8 JUMP JUMPDEST PUSH3 0x739 DUP3 DUP3 DUP6 PUSH3 0x65E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x771 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x75C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x768 DUP6 DUP3 PUSH3 0x6DB JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x7D8 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x781 DUP7 PUSH3 0x51D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x7AB JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x784 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x7CB JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x7C7 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x6BB JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x80D DUP3 PUSH3 0x7E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x81F DUP2 PUSH3 0x800 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x83C PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x814 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 0x53564720646174612063616E6E6F7420626520656D7074790000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x88B PUSH1 0x18 DUP4 PUSH3 0x842 JUMP JUMPDEST SWAP2 POP PUSH3 0x898 DUP3 PUSH3 0x853 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 PUSH3 0x8BE DUP2 PUSH3 0x87C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x535647206461746120746F6F206C617267650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8FD PUSH1 0x12 DUP4 PUSH3 0x842 JUMP JUMPDEST SWAP2 POP PUSH3 0x90A DUP3 PUSH3 0x8C5 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 PUSH3 0x930 DUP2 PUSH3 0x8EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x33B2 DUP1 PUSH3 0x947 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x144 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xA31E06DA GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xA31E06DA EQ PUSH2 0x446 JUMPI DUP1 PUSH4 0xA52DB60D EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x53D JUMPI PUSH2 0x14B JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x336 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0x71AEE193 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x41D JUMPI PUSH2 0x14B JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x30D871C6 EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x30B JUMPI PUSH2 0x14B JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x1249C58B EQ PUSH2 0x21E JUMPI PUSH2 0x14B JUMP JUMPDEST CALLDATASIZE PUSH2 0x14B JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0x229D JUMP JUMPDEST PUSH2 0x566 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x184 SWAP2 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A2 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x23E8 JUMP JUMPDEST PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EC SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x217 SWAP2 SWAP1 PUSH2 0x249D JUMP JUMPDEST PUSH2 0x675 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH2 0x68B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x24DD JUMP JUMPDEST PUSH2 0x7E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x8E4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29C SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C7 SWAP2 SWAP1 PUSH2 0x24DD JUMP JUMPDEST PUSH2 0xA5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F0 SWAP2 SWAP1 PUSH2 0x23E8 JUMP JUMPDEST PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32D SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x358 SWAP2 SWAP1 PUSH2 0x26D8 JUMP JUMPDEST PUSH2 0xA97 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36A SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x388 PUSH2 0xB51 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x396 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3AC SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0xB65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E9 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x407 PUSH2 0xBDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x2731 JUMP JUMPDEST PUSH2 0xC71 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45B PUSH2 0xC87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x468 SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x498 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x493 SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0xD15 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x2812 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x23E8 JUMP JUMPDEST PUSH2 0xDD7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F7 SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x2895 JUMP JUMPDEST PUSH2 0xEEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x55F SWAP2 SWAP1 PUSH2 0x26D8 JUMP JUMPDEST PUSH2 0xF7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5C0 JUMPI POP PUSH2 0x5BF DUP3 PUSH2 0x1001 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x5D6 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x602 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x64F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x624 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x64F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x632 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x664 DUP3 PUSH2 0x10E3 JUMP JUMPDEST POP PUSH2 0x66E DUP3 PUSH2 0x116B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x687 DUP3 DUP3 PUSH2 0x682 PUSH2 0x11A8 JUMP JUMPDEST PUSH2 0x11B0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD CALLVALUE EQ PUSH2 0x6CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C6 SWAP1 PUSH2 0x2981 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x764 PUSH1 0xA DUP1 SLOAD PUSH2 0x6E1 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x70D SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x75A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x72F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x75A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x73D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x9EB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x771 DUP3 PUSH2 0xB65 JUMP JUMPDEST SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x786 SWAP1 PUSH2 0x29D0 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH2 0x79C CALLER DUP3 PUSH2 0x11C2 JUMP JUMPDEST PUSH2 0x7A6 DUP2 DUP4 PUSH2 0x11E0 JUMP JUMPDEST PUSH32 0x176B02BB2D12439FF7A20B59F402CCA16C76F50508B13EF3166A600EB719354A DUP2 PUSH1 0x40 MLOAD PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x854 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x868 DUP4 DUP4 PUSH2 0x863 PUSH2 0x11A8 JUMP JUMPDEST PUSH2 0x123C JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8DE JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x8EC PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x934 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x92B SWAP1 PUSH2 0x2A9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x93E PUSH2 0xBB5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x961 SWAP1 PUSH2 0x2AEC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x99E 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 0x9A3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x9E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9DE SWAP1 PUSH2 0x2B4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174613A696D6167652F7376672B786D6C3B6261736536342C000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 PUSH2 0xA32 DUP5 PUSH2 0x14DD JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA47 SWAP3 SWAP2 SWAP1 PUSH2 0x2BA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA7A DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xDBA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8A DUP3 PUSH2 0x10E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB0A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xB59 PUSH2 0x1456 JUMP JUMPDEST PUSH2 0xB63 PUSH1 0x0 PUSH2 0x150A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0xB8F DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB7B SWAP2 SWAP1 PUSH2 0x2CD7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x14DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB9F SWAP2 SWAP1 PUSH2 0x2D50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xBEE SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC1A SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC67 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC3C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC67 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC4A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC83 PUSH2 0xC7C PUSH2 0x11A8 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x15D0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xC94 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCC0 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD0D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCE2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD0D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCF0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xD1D PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP1 PUSH2 0x2DBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1388 DUP2 MLOAD GT ISZERO PUSH2 0xDA7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9E SWAP1 PUSH2 0x2E2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH2 0xDB6 SWAP2 SWAP1 PUSH2 0x2FF6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xDC5 DUP5 DUP5 DUP5 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0xDD1 DUP5 DUP5 DUP5 DUP5 PUSH2 0x173F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xDE2 DUP3 PUSH2 0x10E3 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xE03 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE2F SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE7C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE51 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE7C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE5F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0xE8D PUSH2 0x18F6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xEA2 JUMPI DUP2 SWAP3 POP POP POP PUSH2 0xEE5 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0xED7 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEBF SWAP3 SWAP2 SWAP1 PUSH2 0x2BA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP PUSH2 0xEE5 JUMP JUMPDEST PUSH2 0xEE0 DUP5 PUSH2 0x190D JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH2 0xF86 PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFEC SWAP1 PUSH2 0x313A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFE DUP2 PUSH2 0x150A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x10CC JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x10DC JUMPI POP PUSH2 0x10DB DUP3 PUSH2 0x1976 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10EF DUP4 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1162 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1159 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11BD DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1A1D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x11DC DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1BE2 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1200 SWAP2 SWAP1 PUSH2 0x2FF6 JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1230 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1248 DUP5 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x128A JUMPI PUSH2 0x1289 DUP2 DUP5 DUP7 PUSH2 0x1BFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x131B JUMPI PUSH2 0x12CC PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1A1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x139E JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x145E PUSH2 0x11A8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x147C PUSH2 0xBB5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x14DB JUMPI PUSH2 0x149F PUSH2 0x11A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D2 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1503 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x333D PUSH1 0x40 SWAP2 CODECOPY PUSH1 0x1 PUSH2 0x1CC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1641 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1638 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1732 SWAP2 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x18F0 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x1783 PUSH2 0x11A8 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17A5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31AF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x17E1 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DE SWAP2 SWAP1 PUSH2 0x3210 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1865 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1811 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 0x1816 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x185D JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1854 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x18EE JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18E5 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1918 DUP3 PUSH2 0x10E3 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1923 PUSH2 0x18F6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1943 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x196E JUMP JUMPDEST DUP1 PUSH2 0x194D DUP5 PUSH2 0x1E56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x195E SWAP3 SWAP2 SWAP1 PUSH2 0x2BA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1A56 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x0 PUSH2 0x1A66 DUP5 PUSH2 0x10E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1AD1 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1AE4 JUMPI POP PUSH2 0x1AE2 DUP2 DUP5 PUSH2 0xEEA JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1B26 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B1D SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1B88 JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH2 0x1BEC DUP4 DUP4 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x1BF9 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x173F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1C09 DUP4 DUP4 DUP4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1CBD JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1C7E JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C75 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CB4 SWAP3 SWAP2 SWAP1 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD SUB PUSH2 0x1CE4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x1E4F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D16 JUMPI PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH1 0x4 PUSH2 0x1CFD SWAP2 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH2 0x1D07 SWAP2 SWAP1 PUSH2 0x32A8 JUMP JUMPDEST PUSH2 0x1D11 SWAP2 SWAP1 PUSH2 0x330B JUMP JUMPDEST PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH2 0x1D26 SWAP2 SWAP1 PUSH2 0x32A8 JUMP JUMPDEST PUSH2 0x1D30 SWAP2 SWAP1 PUSH2 0x330B JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1D3C SWAP2 SWAP1 PUSH2 0x3266 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D5B JUMPI PUSH2 0x1D5A PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1D8D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP6 ADD PUSH1 0x20 DUP3 ADD DUP8 DUP9 MLOAD DUP10 ADD PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x0 DUP3 MSTORE JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x1E03 JUMPI PUSH1 0x3 DUP5 ADD SWAP4 POP DUP4 MLOAD PUSH1 0x3F DUP2 PUSH1 0x12 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0xC SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0x6 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP POP PUSH2 0x1DA8 JUMP JUMPDEST DUP1 DUP3 MSTORE DUP10 ISZERO PUSH2 0x1E43 JUMPI PUSH1 0x3 DUP13 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x1E26 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1E39 JUMPI PUSH2 0x1E41 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 PUSH1 0x3D PUSH1 0x2 DUP8 SUB MSTORE8 PUSH2 0x1E41 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 JUMPDEST POP JUMPDEST POP POP POP POP POP POP DUP1 SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1E65 DUP5 PUSH2 0x20DE JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E84 JUMPI PUSH2 0x1E83 PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1EB6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1F19 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1F0D JUMPI PUSH2 0x1F0C PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1EC4 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1F96 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F8D SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FA4 DUP4 DUP4 PUSH1 0x0 PUSH2 0x123C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2018 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x200F SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x20D5 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2096 JUMPI POP PUSH2 0x2095 DUP5 DUP5 PUSH2 0xEEA JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x20D4 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x20BC DUP4 PUSH2 0x116B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x213C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2132 JUMPI PUSH2 0x2131 PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x2179 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x216F JUMPI PUSH2 0x216E PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x21A8 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x219E JUMPI PUSH2 0x219D PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x21D1 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x21C7 JUMPI PUSH2 0x21C6 PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x21F6 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x21EC JUMPI PUSH2 0x21EB PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x2219 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x220F JUMPI PUSH2 0x220E PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2228 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 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 0x227A DUP2 PUSH2 0x2245 JUMP JUMPDEST DUP2 EQ PUSH2 0x2285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2297 DUP2 PUSH2 0x2271 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22B3 JUMPI PUSH2 0x22B2 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22C1 DUP5 DUP3 DUP6 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22DF DUP2 PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22FA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22D6 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x231F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2362 DUP3 PUSH2 0x2300 JUMP JUMPDEST PUSH2 0x236C DUP2 DUP6 PUSH2 0x230B JUMP JUMPDEST SWAP4 POP PUSH2 0x237C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231C JUMP JUMPDEST PUSH2 0x2385 DUP2 PUSH2 0x2346 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x23AA DUP2 DUP5 PUSH2 0x2357 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C5 DUP2 PUSH2 0x23B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E2 DUP2 PUSH2 0x23BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23FE JUMPI PUSH2 0x23FD PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240C DUP5 DUP3 DUP6 ADD PUSH2 0x23D3 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 0x2440 DUP3 PUSH2 0x2415 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2450 DUP2 PUSH2 0x2435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x246B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2447 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x247A DUP2 PUSH2 0x2435 JUMP JUMPDEST DUP2 EQ PUSH2 0x2485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2497 DUP2 PUSH2 0x2471 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24B4 JUMPI PUSH2 0x24B3 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24C2 DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x24D3 DUP6 DUP3 DUP7 ADD PUSH2 0x23D3 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 0x24F6 JUMPI PUSH2 0x24F5 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2504 DUP7 DUP3 DUP8 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2515 DUP7 DUP3 DUP8 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2526 DUP7 DUP3 DUP8 ADD PUSH2 0x23D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2572 DUP3 PUSH2 0x2346 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2591 JUMPI PUSH2 0x2590 PUSH2 0x253A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25A4 PUSH2 0x2231 JUMP JUMPDEST SWAP1 POP PUSH2 0x25B0 DUP3 DUP3 PUSH2 0x2569 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25D0 JUMPI PUSH2 0x25CF PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH2 0x25D9 DUP3 PUSH2 0x2346 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 0x2608 PUSH2 0x2603 DUP5 PUSH2 0x25B5 JUMP JUMPDEST PUSH2 0x259A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2624 JUMPI PUSH2 0x2623 PUSH2 0x2535 JUMP JUMPDEST JUMPDEST PUSH2 0x262F DUP5 DUP3 DUP6 PUSH2 0x25E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x264C JUMPI PUSH2 0x264B PUSH2 0x2530 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x265C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x267B JUMPI PUSH2 0x267A PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2699 JUMPI PUSH2 0x2698 PUSH2 0x2240 JUMP JUMPDEST JUMPDEST PUSH2 0x26A5 DUP5 DUP3 DUP6 ADD PUSH2 0x2637 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x26B7 DUP2 PUSH2 0x23B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x26D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x26AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26EE JUMPI PUSH2 0x26ED PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26FC DUP5 DUP3 DUP6 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x270E DUP2 PUSH2 0x22CA JUMP JUMPDEST DUP2 EQ PUSH2 0x2719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x272B DUP2 PUSH2 0x2705 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2748 JUMPI PUSH2 0x2747 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2756 DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2767 DUP6 DUP3 DUP7 ADD PUSH2 0x271C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x278C JUMPI PUSH2 0x278B PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH2 0x2795 DUP3 PUSH2 0x2346 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27B5 PUSH2 0x27B0 DUP5 PUSH2 0x2771 JUMP JUMPDEST PUSH2 0x259A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27D1 JUMPI PUSH2 0x27D0 PUSH2 0x2535 JUMP JUMPDEST JUMPDEST PUSH2 0x27DC DUP5 DUP3 DUP6 PUSH2 0x25E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F9 JUMPI PUSH2 0x27F8 PUSH2 0x2530 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2809 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x27A2 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 0x282C JUMPI PUSH2 0x282B PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x283A DUP8 DUP3 DUP9 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x284B DUP8 DUP3 DUP9 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x285C DUP8 DUP3 DUP9 ADD PUSH2 0x23D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x287D JUMPI PUSH2 0x287C PUSH2 0x2240 JUMP JUMPDEST JUMPDEST PUSH2 0x2889 DUP8 DUP3 DUP9 ADD PUSH2 0x27E4 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 0x28AC JUMPI PUSH2 0x28AB PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28BA DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28CB DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x291C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x292F JUMPI PUSH2 0x292E PUSH2 0x28D5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x302E3030303120657468657220726571756972656420746F206D696E74000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x296B PUSH1 0x1D DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2976 DUP3 PUSH2 0x2935 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 0x299A DUP2 PUSH2 0x295E 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 0x29DB DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2A0D JUMPI PUSH2 0x2A0C PUSH2 0x29A1 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2A2D PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x2A3A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x26AE JUMP JUMPDEST PUSH2 0x2A47 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2447 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6F2066756E647320617661696C61626C650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A85 PUSH1 0x12 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2A90 DUP3 PUSH2 0x2A4F 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 0x2AB4 DUP2 PUSH2 0x2A78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AD6 PUSH1 0x0 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP2 POP PUSH2 0x2AE1 DUP3 PUSH2 0x2AC6 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AF7 DUP3 PUSH2 0x2AC9 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B37 PUSH1 0x11 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2B42 DUP3 PUSH2 0x2B01 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 0x2B66 DUP2 PUSH2 0x2B2A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP3 PUSH2 0x2300 JUMP JUMPDEST PUSH2 0x2B8D DUP2 DUP6 PUSH2 0x2B6D JUMP JUMPDEST SWAP4 POP PUSH2 0x2B9D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BB5 DUP3 DUP6 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP PUSH2 0x2BC1 DUP3 DUP5 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x7B226E616D65223A2022466C756666792046757279222C202264657363726970 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x74696F6E223A2022596F75722061636365737320696E746F20616E7920657665 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E742063726561746564207573696E67207468697320746F6B656E2061646472 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x657373222C2022696D616765223A220000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C75 PUSH1 0x6F DUP4 PUSH2 0x2B6D JUMP JUMPDEST SWAP2 POP PUSH2 0x2C80 DUP3 PUSH2 0x2BCD JUMP JUMPDEST PUSH1 0x6F DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x227D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CC1 PUSH1 0x2 DUP4 PUSH2 0x2B6D JUMP JUMPDEST SWAP2 POP PUSH2 0x2CCC DUP3 PUSH2 0x2C8B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CE2 DUP3 PUSH2 0x2C68 JUMP JUMPDEST SWAP2 POP PUSH2 0x2CEE DUP3 DUP5 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP PUSH2 0x2CF9 DUP3 PUSH2 0x2CB4 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D3A PUSH1 0x1D DUP4 PUSH2 0x2B6D JUMP JUMPDEST SWAP2 POP PUSH2 0x2D45 DUP3 PUSH2 0x2D04 JUMP JUMPDEST PUSH1 0x1D DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5B DUP3 PUSH2 0x2D2D JUMP JUMPDEST SWAP2 POP PUSH2 0x2D67 DUP3 DUP5 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x53564720646174612063616E6E6F7420626520656D7074790000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA8 PUSH1 0x18 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2DB3 DUP3 PUSH2 0x2D72 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 0x2DD7 DUP2 PUSH2 0x2D9B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x535647206461746120746F6F206C617267650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E14 PUSH1 0x12 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2E1F DUP3 PUSH2 0x2DDE 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 0x2E43 DUP2 PUSH2 0x2E07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2EAC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2E6F JUMP JUMPDEST PUSH2 0x2EB6 DUP7 DUP4 PUSH2 0x2E6F JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF3 PUSH2 0x2EEE PUSH2 0x2EE9 DUP5 PUSH2 0x23B2 JUMP JUMPDEST PUSH2 0x2ECE JUMP JUMPDEST PUSH2 0x23B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2F0D DUP4 PUSH2 0x2ED8 JUMP JUMPDEST PUSH2 0x2F21 PUSH2 0x2F19 DUP3 PUSH2 0x2EFA JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2E7C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2F36 PUSH2 0x2F29 JUMP JUMPDEST PUSH2 0x2F41 DUP2 DUP5 DUP5 PUSH2 0x2F04 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F65 JUMPI PUSH2 0x2F5A PUSH1 0x0 DUP3 PUSH2 0x2F2E JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2F47 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2FAA JUMPI PUSH2 0x2F7B DUP2 PUSH2 0x2E4A JUMP JUMPDEST PUSH2 0x2F84 DUP5 PUSH2 0x2E5F JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2F93 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2FA7 PUSH2 0x2F9F DUP6 PUSH2 0x2E5F JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2F46 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCD PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2FAF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE6 DUP4 DUP4 PUSH2 0x2FBC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2FFF DUP3 PUSH2 0x2300 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3018 JUMPI PUSH2 0x3017 PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH2 0x3022 DUP3 SLOAD PUSH2 0x2904 JUMP JUMPDEST PUSH2 0x302D DUP3 DUP3 DUP6 PUSH2 0x2F69 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3060 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x304E JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3058 DUP6 DUP3 PUSH2 0x2FDA JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x30C0 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x306E DUP7 PUSH2 0x2E4A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3096 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3071 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x30B3 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x30AF PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2FBC JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6577206F776E65722063616E6E6F7420626520746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3124 PUSH1 0x24 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x312F DUP3 PUSH2 0x30C8 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 0x3153 DUP2 PUSH2 0x3117 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 PUSH2 0x3181 DUP3 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x318B DUP2 DUP6 PUSH2 0x3165 JUMP JUMPDEST SWAP4 POP PUSH2 0x319B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231C JUMP JUMPDEST PUSH2 0x31A4 DUP2 PUSH2 0x2346 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x31C4 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x31D1 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x31DE PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26AE JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31F0 DUP2 DUP5 PUSH2 0x3176 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x320A DUP2 PUSH2 0x2271 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3226 JUMPI PUSH2 0x3225 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3234 DUP5 DUP3 DUP6 ADD PUSH2 0x31FB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3252 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x325F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26AE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3271 DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x327C DUP4 PUSH2 0x23B2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x328A DUP2 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x32A1 JUMPI PUSH2 0x32A0 PUSH2 0x29A1 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B3 DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x32BE DUP4 PUSH2 0x23B2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x32D6 JUMPI PUSH2 0x32D5 PUSH2 0x29A1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3316 DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x3321 DUP4 PUSH2 0x23B2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3331 JUMPI PUSH2 0x3330 PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID COINBASE TIMESTAMP NUMBER PREVRANDAO GASLIMIT CHAINID SELFBALANCE BASEFEE BLOBHASH BLOBBASEFEE 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2FA2646970667358 0x22 SLT KECCAK256 CALL LOG1 LOG4 PUSH11 0xBDC0EA2E367C70D79D6948 SHR 0x4D 0xE PUSH15 0x587EEE1932B56AFA37249682E56473 PUSH16 0x6C634300081800330000000000000000 ", + "sourceMap": "287:3331:18:-:0;;;455:12;428:39;;570:291;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;336:10;1381:113:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:5;1447;:13;;;;;;:::i;:::-;;1480:7;1470;:17;;;;;;:::i;:::-;;1381:113;;1297:1:0;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;681:1:18::1;660:10;654:24;:28;646:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;757:4;735:10;729:24;:32;;721:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;804:10;794:7;:20;;;;;;:::i;:::-;;570:291:::0;287:3331;;2912:187:0;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:75:19:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:524::-;2757:6;2806:2;2794:9;2785:7;2781:23;2777:32;2774:119;;;2812:79;;:::i;:::-;2774:119;2953:1;2942:9;2938:17;2932:24;2983:18;2975:6;2972:30;2969:117;;;3005:79;;:::i;:::-;2969:117;3110:74;3176:7;3167:6;3156:9;3152:22;3110:74;:::i;:::-;3100:84;;2903:291;2677:524;;;;:::o;3207:99::-;3259:6;3293:5;3287:12;3277:22;;3207:99;;;:::o;3312:180::-;3360:77;3357:1;3350:88;3457:4;3454:1;3447:15;3481:4;3478:1;3471:15;3498:320;3542:6;3579:1;3573:4;3569:12;3559:22;;3626:1;3620:4;3616:12;3647:18;3637:81;;3703:4;3695:6;3691:17;3681:27;;3637:81;3765:2;3757:6;3754:14;3734:18;3731:38;3728:84;;3784:18;;:::i;:::-;3728:84;3549:269;3498:320;;;:::o;3824:141::-;3873:4;3896:3;3888:11;;3919:3;3916:1;3909:14;3953:4;3950:1;3940:18;3932:26;;3824:141;;;:::o;3971:93::-;4008:6;4055:2;4050;4043:5;4039:14;4035:23;4025:33;;3971:93;;;:::o;4070:107::-;4114:8;4164:5;4158:4;4154:16;4133:37;;4070:107;;;;:::o;4183:393::-;4252:6;4302:1;4290:10;4286:18;4325:97;4355:66;4344:9;4325:97;:::i;:::-;4443:39;4473:8;4462:9;4443:39;:::i;:::-;4431:51;;4515:4;4511:9;4504:5;4500:21;4491:30;;4564:4;4554:8;4550:19;4543:5;4540:30;4530:40;;4259:317;;4183:393;;;;;:::o;4582:77::-;4619:7;4648:5;4637:16;;4582:77;;;:::o;4665:60::-;4693:3;4714:5;4707:12;;4665:60;;;:::o;4731:142::-;4781:9;4814:53;4832:34;4841:24;4859:5;4841:24;:::i;:::-;4832:34;:::i;:::-;4814:53;:::i;:::-;4801:66;;4731:142;;;:::o;4879:75::-;4922:3;4943:5;4936:12;;4879:75;;;:::o;4960:269::-;5070:39;5101:7;5070:39;:::i;:::-;5131:91;5180:41;5204:16;5180:41;:::i;:::-;5172:6;5165:4;5159:11;5131:91;:::i;:::-;5125:4;5118:105;5036:193;4960:269;;;:::o;5235:73::-;5280:3;5235:73;:::o;5314:189::-;5391:32;;:::i;:::-;5432:65;5490:6;5482;5476:4;5432:65;:::i;:::-;5367:136;5314:189;;:::o;5509:186::-;5569:120;5586:3;5579:5;5576:14;5569:120;;;5640:39;5677:1;5670:5;5640:39;:::i;:::-;5613:1;5606:5;5602:13;5593:22;;5569:120;;;5509:186;;:::o;5701:543::-;5802:2;5797:3;5794:11;5791:446;;;5836:38;5868:5;5836:38;:::i;:::-;5920:29;5938:10;5920:29;:::i;:::-;5910:8;5906:44;6103:2;6091:10;6088:18;6085:49;;;6124:8;6109:23;;6085:49;6147:80;6203:22;6221:3;6203:22;:::i;:::-;6193:8;6189:37;6176:11;6147:80;:::i;:::-;5806:431;;5791:446;5701:543;;;:::o;6250:117::-;6304:8;6354:5;6348:4;6344:16;6323:37;;6250:117;;;;:::o;6373:169::-;6417:6;6450:51;6498:1;6494:6;6486:5;6483:1;6479:13;6450:51;:::i;:::-;6446:56;6531:4;6525;6521:15;6511:25;;6424:118;6373:169;;;;:::o;6547:295::-;6623:4;6769:29;6794:3;6788:4;6769:29;:::i;:::-;6761:37;;6831:3;6828:1;6824:11;6818:4;6815:21;6807:29;;6547:295;;;;:::o;6847:1395::-;6964:37;6997:3;6964:37;:::i;:::-;7066:18;7058:6;7055:30;7052:56;;;7088:18;;:::i;:::-;7052:56;7132:38;7164:4;7158:11;7132:38;:::i;:::-;7217:67;7277:6;7269;7263:4;7217:67;:::i;:::-;7311:1;7335:4;7322:17;;7367:2;7359:6;7356:14;7384:1;7379:618;;;;8041:1;8058:6;8055:77;;;8107:9;8102:3;8098:19;8092:26;8083:35;;8055:77;8158:67;8218:6;8211:5;8158:67;:::i;:::-;8152:4;8145:81;8014:222;7349:887;;7379:618;7431:4;7427:9;7419:6;7415:22;7465:37;7497:4;7465:37;:::i;:::-;7524:1;7538:208;7552:7;7549:1;7546:14;7538:208;;;7631:9;7626:3;7622:19;7616:26;7608:6;7601:42;7682:1;7674:6;7670:14;7660:24;;7729:2;7718:9;7714:18;7701:31;;7575:4;7572:1;7568:12;7563:17;;7538:208;;;7774:6;7765:7;7762:19;7759:179;;;7832:9;7827:3;7823:19;7817:26;7875:48;7917:4;7909:6;7905:17;7894:9;7875:48;:::i;:::-;7867:6;7860:64;7782:156;7759:179;7984:1;7980;7972:6;7968:14;7964:22;7958:4;7951:36;7386:611;;;7349:887;;6939:1303;;;6847:1395;;:::o;8248:126::-;8285:7;8325:42;8318:5;8314:54;8303:65;;8248:126;;;:::o;8380:96::-;8417:7;8446:24;8464:5;8446:24;:::i;:::-;8435:35;;8380:96;;;:::o;8482:118::-;8569:24;8587:5;8569:24;:::i;:::-;8564:3;8557:37;8482:118;;:::o;8606:222::-;8699:4;8737:2;8726:9;8722:18;8714:26;;8750:71;8818:1;8807:9;8803:17;8794:6;8750:71;:::i;:::-;8606:222;;;;:::o;8834:169::-;8918:11;8952:6;8947:3;8940:19;8992:4;8987:3;8983:14;8968:29;;8834:169;;;;:::o;9009:174::-;9149:26;9145:1;9137:6;9133:14;9126:50;9009:174;:::o;9189:366::-;9331:3;9352:67;9416:2;9411:3;9352:67;:::i;:::-;9345:74;;9428:93;9517:3;9428:93;:::i;:::-;9546:2;9541:3;9537:12;9530:19;;9189:366;;;:::o;9561:419::-;9727:4;9765:2;9754:9;9750:18;9742:26;;9814:9;9808:4;9804:20;9800:1;9789:9;9785:17;9778:47;9842:131;9968:4;9842:131;:::i;:::-;9834:139;;9561:419;;;:::o;9986:168::-;10126:20;10122:1;10114:6;10110:14;10103:44;9986:168;:::o;10160:366::-;10302:3;10323:67;10387:2;10382:3;10323:67;:::i;:::-;10316:74;;10399:93;10488:3;10399:93;:::i;:::-;10517:2;10512:3;10508:12;10501:19;;10160:366;;;:::o;10532:419::-;10698:4;10736:2;10725:9;10721:18;10713:26;;10785:9;10779:4;10775:20;10771:1;10760:9;10756:17;10749:47;10813:131;10939:4;10813:131;:::i;:::-;10805:139;;10532:419;;;:::o;287:3331:18:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_3783": { + "entryPoint": null, + "id": 3783, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_approve_1128": { + "entryPoint": 4528, + "id": 1128, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1194": { + "entryPoint": 6685, + "id": 1194, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_521": { + "entryPoint": 6390, + "id": 521, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkAuthorized_776": { + "entryPoint": 7166, + "id": 776, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkOnERC721Received_1324": { + "entryPoint": 5951, + "id": 1324, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkOwner_84": { + "entryPoint": 5206, + "id": 84, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_encode_3188": { + "entryPoint": 7362, + "id": 3188, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_getApproved_703": { + "entryPoint": 4459, + "id": 703, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_isAuthorized_739": { + "entryPoint": 8221, + "id": 739, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_mint_932": { + "entryPoint": 7972, + "id": 932, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1626": { + "entryPoint": 4520, + "id": 1626, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_690": { + "entryPoint": 6624, + "id": 690, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireOwned_1260": { + "entryPoint": 4323, + "id": 1260, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_safeMint_947": { + "entryPoint": 4546, + "id": 947, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_973": { + "entryPoint": 7138, + "id": 973, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1231": { + "entryPoint": 5584, + "id": 1231, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setTokenURI_1585": { + "entryPoint": 4576, + "id": 1585, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_146": { + "entryPoint": 5386, + "id": 146, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_update_882": { + "entryPoint": 4668, + "id": 882, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@approve_537": { + "entryPoint": 1653, + "id": 537, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_445": { + "entryPoint": 2711, + "id": 445, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@encode_3119": { + "entryPoint": 5341, + "id": 3119, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@formatTokenURI_3646": { + "entryPoint": 2917, + "id": 3646, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_554": { + "entryPoint": 1625, + "id": 554, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@isApprovedForAll_587": { + "entryPoint": 3818, + "id": 587, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_2809": { + "entryPoint": 8414, + "id": 2809, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@mintPrice_3537": { + "entryPoint": 2705, + "id": 3537, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@mint_3686": { + "entryPoint": 1675, + "id": 3686, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@name_467": { + "entryPoint": 1479, + "id": 467, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_458": { + "entryPoint": 2687, + "id": 458, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_67": { + "entryPoint": 2997, + "id": 67, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_98": { + "entryPoint": 2897, + "id": 98, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@safeTransferFrom_651": { + "entryPoint": 2655, + "id": 651, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_677": { + "entryPoint": 3514, + "id": 677, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_570": { + "entryPoint": 3185, + "id": 570, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1509": { + "entryPoint": 1382, + "id": 1509, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_1922": { + "entryPoint": 6518, + "id": 1922, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_417": { + "entryPoint": 4097, + "id": 417, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@svgData_3539": { + "entryPoint": 3207, + "id": 3539, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@svgToImageURI_3618": { + "entryPoint": 2539, + "id": 3618, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_476": { + "entryPoint": 3039, + "id": 476, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_1712": { + "entryPoint": 7766, + "id": 1712, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_1566": { + "entryPoint": 3543, + "id": 1566, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_512": { + "entryPoint": 6413, + "id": 512, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_633": { + "entryPoint": 2018, + "id": 633, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@transferOwnership_3779": { + "entryPoint": 3966, + "id": 3779, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@updateSVG_3756": { + "entryPoint": 3349, + "id": 3756, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@withdrawFunds_3722": { + "entryPoint": 2276, + "id": 3722, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 10146, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 9717, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 9352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 10012, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8840, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 12795, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 10212, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 9783, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 9171, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 9944, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 10389, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 9437, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 10258, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 10033, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 9373, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8861, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 12816, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 9829, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 9192, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 9287, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8918, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 12662, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 9047, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11128, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10872, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11675, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11368, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11444, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11565, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10953, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack": { + "entryPoint": 10590, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11783, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11050, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12567, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 9902, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11177, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11479, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11600, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 10988, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 9302, + "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": 12719, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 12861, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed": { + "entryPoint": 10776, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8933, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 9104, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10907, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11710, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 10625, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11818, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11085, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12602, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 9917, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9626, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8753, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 10097, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 9653, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 11850, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 12634, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8960, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 12645, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 10939, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8971, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11117, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12968, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 13067, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 12902, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 12137, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 9269, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8773, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 9237, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 9138, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 12102, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 11992, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 12278, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9702, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8988, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 11871, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 10500, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 12250, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9577, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11982, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 10704, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 12220, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 10657, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13020, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 10453, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9530, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 12026, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9520, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9525, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8768, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8763, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 9030, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 11887, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 12207, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 12078, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1": { + "entryPoint": 10831, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d": { + "entryPoint": 11634, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d": { + "entryPoint": 11213, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475": { + "entryPoint": 11403, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa": { + "entryPoint": 11524, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": { + "entryPoint": 10950, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b": { + "entryPoint": 10549, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244": { + "entryPoint": 11742, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88": { + "entryPoint": 11009, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422": { + "entryPoint": 12488, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 11900, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 12036, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 9329, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 9989, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8817, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 9148, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 12073, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:32377:19", + "nodeType": "YulBlock", + "src": "0:32377:19", + "statements": [ + { + "body": { + "nativeSrc": "47:35:19", + "nodeType": "YulBlock", + "src": "47:35:19", + "statements": [ + { + "nativeSrc": "57:19:19", + "nodeType": "YulAssignment", + "src": "57:19:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:19", + "nodeType": "YulLiteral", + "src": "73:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:19", + "nodeType": "YulIdentifier", + "src": "67:5:19" + }, + "nativeSrc": "67:9:19", + "nodeType": "YulFunctionCall", + "src": "67:9:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:19", + "nodeType": "YulIdentifier", + "src": "57:6:19" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:19", + "nodeType": "YulTypedName", + "src": "40:6:19", + "type": "" + } + ], + "src": "7:75:19" + }, + { + "body": { + "nativeSrc": "177:28:19", + "nodeType": "YulBlock", + "src": "177:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:19", + "nodeType": "YulLiteral", + "src": "194:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:19", + "nodeType": "YulLiteral", + "src": "197:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:19", + "nodeType": "YulIdentifier", + "src": "187:6:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulFunctionCall", + "src": "187:12:19" + }, + "nativeSrc": "187:12:19", + "nodeType": "YulExpressionStatement", + "src": "187:12:19" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:19", + "nodeType": "YulFunctionDefinition", + "src": "88:117:19" + }, + { + "body": { + "nativeSrc": "300:28:19", + "nodeType": "YulBlock", + "src": "300:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:19", + "nodeType": "YulLiteral", + "src": "317:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:19", + "nodeType": "YulLiteral", + "src": "320:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:19", + "nodeType": "YulIdentifier", + "src": "310:6:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulFunctionCall", + "src": "310:12:19" + }, + "nativeSrc": "310:12:19", + "nodeType": "YulExpressionStatement", + "src": "310:12:19" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:19", + "nodeType": "YulFunctionDefinition", + "src": "211:117:19" + }, + { + "body": { + "nativeSrc": "378:105:19", + "nodeType": "YulBlock", + "src": "378:105:19", + "statements": [ + { + "nativeSrc": "388:89:19", + "nodeType": "YulAssignment", + "src": "388:89:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "403:5:19", + "nodeType": "YulIdentifier", + "src": "403:5:19" + }, + { + "kind": "number", + "nativeSrc": "410:66:19", + "nodeType": "YulLiteral", + "src": "410:66:19", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "399:3:19", + "nodeType": "YulIdentifier", + "src": "399:3:19" + }, + "nativeSrc": "399:78:19", + "nodeType": "YulFunctionCall", + "src": "399:78:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "388:7:19", + "nodeType": "YulIdentifier", + "src": "388:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "334:149:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "360:5:19", + "nodeType": "YulTypedName", + "src": "360:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "370:7:19", + "nodeType": "YulTypedName", + "src": "370:7:19", + "type": "" + } + ], + "src": "334:149:19" + }, + { + "body": { + "nativeSrc": "531:78:19", + "nodeType": "YulBlock", + "src": "531:78:19", + "statements": [ + { + "body": { + "nativeSrc": "587:16:19", + "nodeType": "YulBlock", + "src": "587:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "596:1:19", + "nodeType": "YulLiteral", + "src": "596:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "599:1:19", + "nodeType": "YulLiteral", + "src": "599:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "589:6:19", + "nodeType": "YulIdentifier", + "src": "589:6:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulFunctionCall", + "src": "589:12:19" + }, + "nativeSrc": "589:12:19", + "nodeType": "YulExpressionStatement", + "src": "589:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "554:5:19", + "nodeType": "YulIdentifier", + "src": "554:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "578:5:19", + "nodeType": "YulIdentifier", + "src": "578:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "561:16:19", + "nodeType": "YulIdentifier", + "src": "561:16:19" + }, + "nativeSrc": "561:23:19", + "nodeType": "YulFunctionCall", + "src": "561:23:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "551:2:19", + "nodeType": "YulIdentifier", + "src": "551:2:19" + }, + "nativeSrc": "551:34:19", + "nodeType": "YulFunctionCall", + "src": "551:34:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "544:6:19", + "nodeType": "YulIdentifier", + "src": "544:6:19" + }, + "nativeSrc": "544:42:19", + "nodeType": "YulFunctionCall", + "src": "544:42:19" + }, + "nativeSrc": "541:62:19", + "nodeType": "YulIf", + "src": "541:62:19" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "489:120:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "524:5:19", + "nodeType": "YulTypedName", + "src": "524:5:19", + "type": "" + } + ], + "src": "489:120:19" + }, + { + "body": { + "nativeSrc": "666:86:19", + "nodeType": "YulBlock", + "src": "666:86:19", + "statements": [ + { + "nativeSrc": "676:29:19", + "nodeType": "YulAssignment", + "src": "676:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "698:6:19", + "nodeType": "YulIdentifier", + "src": "698:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "685:12:19", + "nodeType": "YulIdentifier", + "src": "685:12:19" + }, + "nativeSrc": "685:20:19", + "nodeType": "YulFunctionCall", + "src": "685:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "676:5:19", + "nodeType": "YulIdentifier", + "src": "676:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "740:5:19", + "nodeType": "YulIdentifier", + "src": "740:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "714:25:19", + "nodeType": "YulIdentifier", + "src": "714:25:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulFunctionCall", + "src": "714:32:19" + }, + "nativeSrc": "714:32:19", + "nodeType": "YulExpressionStatement", + "src": "714:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "615:137:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "644:6:19", + "nodeType": "YulTypedName", + "src": "644:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "652:3:19", + "nodeType": "YulTypedName", + "src": "652:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "660:5:19", + "nodeType": "YulTypedName", + "src": "660:5:19", + "type": "" + } + ], + "src": "615:137:19" + }, + { + "body": { + "nativeSrc": "823:262:19", + "nodeType": "YulBlock", + "src": "823:262:19", + "statements": [ + { + "body": { + "nativeSrc": "869:83:19", + "nodeType": "YulBlock", + "src": "869:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "871:77:19", + "nodeType": "YulIdentifier", + "src": "871:77:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulFunctionCall", + "src": "871:79:19" + }, + "nativeSrc": "871:79:19", + "nodeType": "YulExpressionStatement", + "src": "871:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "844:7:19", + "nodeType": "YulIdentifier", + "src": "844:7:19" + }, + { + "name": "headStart", + "nativeSrc": "853:9:19", + "nodeType": "YulIdentifier", + "src": "853:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "840:3:19", + "nodeType": "YulIdentifier", + "src": "840:3:19" + }, + "nativeSrc": "840:23:19", + "nodeType": "YulFunctionCall", + "src": "840:23:19" + }, + { + "kind": "number", + "nativeSrc": "865:2:19", + "nodeType": "YulLiteral", + "src": "865:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "836:3:19", + "nodeType": "YulIdentifier", + "src": "836:3:19" + }, + "nativeSrc": "836:32:19", + "nodeType": "YulFunctionCall", + "src": "836:32:19" + }, + "nativeSrc": "833:119:19", + "nodeType": "YulIf", + "src": "833:119:19" + }, + { + "nativeSrc": "962:116:19", + "nodeType": "YulBlock", + "src": "962:116:19", + "statements": [ + { + "nativeSrc": "977:15:19", + "nodeType": "YulVariableDeclaration", + "src": "977:15:19", + "value": { + "kind": "number", + "nativeSrc": "991:1:19", + "nodeType": "YulLiteral", + "src": "991:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "981:6:19", + "nodeType": "YulTypedName", + "src": "981:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "1006:62:19", + "nodeType": "YulAssignment", + "src": "1006:62:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1040:9:19", + "nodeType": "YulIdentifier", + "src": "1040:9:19" + }, + { + "name": "offset", + "nativeSrc": "1051:6:19", + "nodeType": "YulIdentifier", + "src": "1051:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1036:3:19", + "nodeType": "YulIdentifier", + "src": "1036:3:19" + }, + "nativeSrc": "1036:22:19", + "nodeType": "YulFunctionCall", + "src": "1036:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "1060:7:19", + "nodeType": "YulIdentifier", + "src": "1060:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "1016:19:19", + "nodeType": "YulIdentifier", + "src": "1016:19:19" + }, + "nativeSrc": "1016:52:19", + "nodeType": "YulFunctionCall", + "src": "1016:52:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1006:6:19", + "nodeType": "YulIdentifier", + "src": "1006:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "758:327:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "793:9:19", + "nodeType": "YulTypedName", + "src": "793:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "804:7:19", + "nodeType": "YulTypedName", + "src": "804:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "816:6:19", + "nodeType": "YulTypedName", + "src": "816:6:19", + "type": "" + } + ], + "src": "758:327:19" + }, + { + "body": { + "nativeSrc": "1133:48:19", + "nodeType": "YulBlock", + "src": "1133:48:19", + "statements": [ + { + "nativeSrc": "1143:32:19", + "nodeType": "YulAssignment", + "src": "1143:32:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:19", + "nodeType": "YulIdentifier", + "src": "1168:5:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1161:6:19", + "nodeType": "YulIdentifier", + "src": "1161:6:19" + }, + "nativeSrc": "1161:13:19", + "nodeType": "YulFunctionCall", + "src": "1161:13:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1154:6:19", + "nodeType": "YulIdentifier", + "src": "1154:6:19" + }, + "nativeSrc": "1154:21:19", + "nodeType": "YulFunctionCall", + "src": "1154:21:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1143:7:19", + "nodeType": "YulIdentifier", + "src": "1143:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "1091:90:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1115:5:19", + "nodeType": "YulTypedName", + "src": "1115:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1125:7:19", + "nodeType": "YulTypedName", + "src": "1125:7:19", + "type": "" + } + ], + "src": "1091:90:19" + }, + { + "body": { + "nativeSrc": "1246:50:19", + "nodeType": "YulBlock", + "src": "1246:50:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1263:3:19", + "nodeType": "YulIdentifier", + "src": "1263:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1283:5:19", + "nodeType": "YulIdentifier", + "src": "1283:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "1268:14:19", + "nodeType": "YulIdentifier", + "src": "1268:14:19" + }, + "nativeSrc": "1268:21:19", + "nodeType": "YulFunctionCall", + "src": "1268:21:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1256:6:19", + "nodeType": "YulIdentifier", + "src": "1256:6:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulFunctionCall", + "src": "1256:34:19" + }, + "nativeSrc": "1256:34:19", + "nodeType": "YulExpressionStatement", + "src": "1256:34:19" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1187:109:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1234:5:19", + "nodeType": "YulTypedName", + "src": "1234:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1241:3:19", + "nodeType": "YulTypedName", + "src": "1241:3:19", + "type": "" + } + ], + "src": "1187:109:19" + }, + { + "body": { + "nativeSrc": "1394:118:19", + "nodeType": "YulBlock", + "src": "1394:118:19", + "statements": [ + { + "nativeSrc": "1404:26:19", + "nodeType": "YulAssignment", + "src": "1404:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:19", + "nodeType": "YulIdentifier", + "src": "1416:9:19" + }, + { + "kind": "number", + "nativeSrc": "1427:2:19", + "nodeType": "YulLiteral", + "src": "1427:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:19", + "nodeType": "YulIdentifier", + "src": "1412:3:19" + }, + "nativeSrc": "1412:18:19", + "nodeType": "YulFunctionCall", + "src": "1412:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1404:4:19", + "nodeType": "YulIdentifier", + "src": "1404:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1478:6:19", + "nodeType": "YulIdentifier", + "src": "1478:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1491:9:19", + "nodeType": "YulIdentifier", + "src": "1491:9:19" + }, + { + "kind": "number", + "nativeSrc": "1502:1:19", + "nodeType": "YulLiteral", + "src": "1502:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1487:3:19", + "nodeType": "YulIdentifier", + "src": "1487:3:19" + }, + "nativeSrc": "1487:17:19", + "nodeType": "YulFunctionCall", + "src": "1487:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "1440:37:19", + "nodeType": "YulIdentifier", + "src": "1440:37:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulFunctionCall", + "src": "1440:65:19" + }, + "nativeSrc": "1440:65:19", + "nodeType": "YulExpressionStatement", + "src": "1440:65:19" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "1302:210:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1366:9:19", + "nodeType": "YulTypedName", + "src": "1366:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1378:6:19", + "nodeType": "YulTypedName", + "src": "1378:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1389:4:19", + "nodeType": "YulTypedName", + "src": "1389:4:19", + "type": "" + } + ], + "src": "1302:210:19" + }, + { + "body": { + "nativeSrc": "1577:40:19", + "nodeType": "YulBlock", + "src": "1577:40:19", + "statements": [ + { + "nativeSrc": "1588:22:19", + "nodeType": "YulAssignment", + "src": "1588:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1604:5:19", + "nodeType": "YulIdentifier", + "src": "1604:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1598:5:19", + "nodeType": "YulIdentifier", + "src": "1598:5:19" + }, + "nativeSrc": "1598:12:19", + "nodeType": "YulFunctionCall", + "src": "1598:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "1588:6:19", + "nodeType": "YulIdentifier", + "src": "1588:6:19" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "1518:99:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1560:5:19", + "nodeType": "YulTypedName", + "src": "1560:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "1570:6:19", + "nodeType": "YulTypedName", + "src": "1570:6:19", + "type": "" + } + ], + "src": "1518:99:19" + }, + { + "body": { + "nativeSrc": "1719:73:19", + "nodeType": "YulBlock", + "src": "1719:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1736:3:19", + "nodeType": "YulIdentifier", + "src": "1736:3:19" + }, + { + "name": "length", + "nativeSrc": "1741:6:19", + "nodeType": "YulIdentifier", + "src": "1741:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1729:6:19", + "nodeType": "YulIdentifier", + "src": "1729:6:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulFunctionCall", + "src": "1729:19:19" + }, + "nativeSrc": "1729:19:19", + "nodeType": "YulExpressionStatement", + "src": "1729:19:19" + }, + { + "nativeSrc": "1757:29:19", + "nodeType": "YulAssignment", + "src": "1757:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1776:3:19", + "nodeType": "YulIdentifier", + "src": "1776:3:19" + }, + { + "kind": "number", + "nativeSrc": "1781:4:19", + "nodeType": "YulLiteral", + "src": "1781:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:19", + "nodeType": "YulIdentifier", + "src": "1772:3:19" + }, + "nativeSrc": "1772:14:19", + "nodeType": "YulFunctionCall", + "src": "1772:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "1757:11:19", + "nodeType": "YulIdentifier", + "src": "1757:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "1623:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1691:3:19", + "nodeType": "YulTypedName", + "src": "1691:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1696:6:19", + "nodeType": "YulTypedName", + "src": "1696:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "1707:11:19", + "nodeType": "YulTypedName", + "src": "1707:11:19", + "type": "" + } + ], + "src": "1623:169:19" + }, + { + "body": { + "nativeSrc": "1860:184:19", + "nodeType": "YulBlock", + "src": "1860:184:19", + "statements": [ + { + "nativeSrc": "1870:10:19", + "nodeType": "YulVariableDeclaration", + "src": "1870:10:19", + "value": { + "kind": "number", + "nativeSrc": "1879:1:19", + "nodeType": "YulLiteral", + "src": "1879:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1874:1:19", + "nodeType": "YulTypedName", + "src": "1874:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1939:63:19", + "nodeType": "YulBlock", + "src": "1939:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1964:3:19", + "nodeType": "YulIdentifier", + "src": "1964:3:19" + }, + { + "name": "i", + "nativeSrc": "1969:1:19", + "nodeType": "YulIdentifier", + "src": "1969:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1960:3:19", + "nodeType": "YulIdentifier", + "src": "1960:3:19" + }, + "nativeSrc": "1960:11:19", + "nodeType": "YulFunctionCall", + "src": "1960:11:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1983:3:19", + "nodeType": "YulIdentifier", + "src": "1983:3:19" + }, + { + "name": "i", + "nativeSrc": "1988:1:19", + "nodeType": "YulIdentifier", + "src": "1988:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1979:3:19", + "nodeType": "YulIdentifier", + "src": "1979:3:19" + }, + "nativeSrc": "1979:11:19", + "nodeType": "YulFunctionCall", + "src": "1979:11:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1973:5:19", + "nodeType": "YulIdentifier", + "src": "1973:5:19" + }, + "nativeSrc": "1973:18:19", + "nodeType": "YulFunctionCall", + "src": "1973:18:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1953:6:19", + "nodeType": "YulIdentifier", + "src": "1953:6:19" + }, + "nativeSrc": "1953:39:19", + "nodeType": "YulFunctionCall", + "src": "1953:39:19" + }, + "nativeSrc": "1953:39:19", + "nodeType": "YulExpressionStatement", + "src": "1953:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1900:1:19", + "nodeType": "YulIdentifier", + "src": "1900:1:19" + }, + { + "name": "length", + "nativeSrc": "1903:6:19", + "nodeType": "YulIdentifier", + "src": "1903:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1897:2:19", + "nodeType": "YulIdentifier", + "src": "1897:2:19" + }, + "nativeSrc": "1897:13:19", + "nodeType": "YulFunctionCall", + "src": "1897:13:19" + }, + "nativeSrc": "1889:113:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1911:19:19", + "nodeType": "YulBlock", + "src": "1911:19:19", + "statements": [ + { + "nativeSrc": "1913:15:19", + "nodeType": "YulAssignment", + "src": "1913:15:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1922:1:19", + "nodeType": "YulIdentifier", + "src": "1922:1:19" + }, + { + "kind": "number", + "nativeSrc": "1925:2:19", + "nodeType": "YulLiteral", + "src": "1925:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1918:3:19", + "nodeType": "YulIdentifier", + "src": "1918:3:19" + }, + "nativeSrc": "1918:10:19", + "nodeType": "YulFunctionCall", + "src": "1918:10:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1913:1:19", + "nodeType": "YulIdentifier", + "src": "1913:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1893:3:19", + "nodeType": "YulBlock", + "src": "1893:3:19", + "statements": [] + }, + "src": "1889:113:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2022:3:19", + "nodeType": "YulIdentifier", + "src": "2022:3:19" + }, + { + "name": "length", + "nativeSrc": "2027:6:19", + "nodeType": "YulIdentifier", + "src": "2027:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2018:3:19", + "nodeType": "YulIdentifier", + "src": "2018:3:19" + }, + "nativeSrc": "2018:16:19", + "nodeType": "YulFunctionCall", + "src": "2018:16:19" + }, + { + "kind": "number", + "nativeSrc": "2036:1:19", + "nodeType": "YulLiteral", + "src": "2036:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2011:6:19", + "nodeType": "YulIdentifier", + "src": "2011:6:19" + }, + "nativeSrc": "2011:27:19", + "nodeType": "YulFunctionCall", + "src": "2011:27:19" + }, + "nativeSrc": "2011:27:19", + "nodeType": "YulExpressionStatement", + "src": "2011:27:19" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1798:246:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1842:3:19", + "nodeType": "YulTypedName", + "src": "1842:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1847:3:19", + "nodeType": "YulTypedName", + "src": "1847:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1852:6:19", + "nodeType": "YulTypedName", + "src": "1852:6:19", + "type": "" + } + ], + "src": "1798:246:19" + }, + { + "body": { + "nativeSrc": "2098:54:19", + "nodeType": "YulBlock", + "src": "2098:54:19", + "statements": [ + { + "nativeSrc": "2108:38:19", + "nodeType": "YulAssignment", + "src": "2108:38:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2126:5:19", + "nodeType": "YulIdentifier", + "src": "2126:5:19" + }, + { + "kind": "number", + "nativeSrc": "2133:2:19", + "nodeType": "YulLiteral", + "src": "2133:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2122:3:19", + "nodeType": "YulIdentifier", + "src": "2122:3:19" + }, + "nativeSrc": "2122:14:19", + "nodeType": "YulFunctionCall", + "src": "2122:14:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2142:2:19", + "nodeType": "YulLiteral", + "src": "2142:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2138:3:19", + "nodeType": "YulIdentifier", + "src": "2138:3:19" + }, + "nativeSrc": "2138:7:19", + "nodeType": "YulFunctionCall", + "src": "2138:7:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2118:3:19", + "nodeType": "YulIdentifier", + "src": "2118:3:19" + }, + "nativeSrc": "2118:28:19", + "nodeType": "YulFunctionCall", + "src": "2118:28:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2108:6:19", + "nodeType": "YulIdentifier", + "src": "2108:6:19" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "2050:102:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2081:5:19", + "nodeType": "YulTypedName", + "src": "2081:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "2091:6:19", + "nodeType": "YulTypedName", + "src": "2091:6:19", + "type": "" + } + ], + "src": "2050:102:19" + }, + { + "body": { + "nativeSrc": "2250:285:19", + "nodeType": "YulBlock", + "src": "2250:285:19", + "statements": [ + { + "nativeSrc": "2260:53:19", + "nodeType": "YulVariableDeclaration", + "src": "2260:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2307:5:19", + "nodeType": "YulIdentifier", + "src": "2307:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "2274:32:19", + "nodeType": "YulIdentifier", + "src": "2274:32:19" + }, + "nativeSrc": "2274:39:19", + "nodeType": "YulFunctionCall", + "src": "2274:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2264:6:19", + "nodeType": "YulTypedName", + "src": "2264:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "2322:78:19", + "nodeType": "YulAssignment", + "src": "2322:78:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2388:3:19", + "nodeType": "YulIdentifier", + "src": "2388:3:19" + }, + { + "name": "length", + "nativeSrc": "2393:6:19", + "nodeType": "YulIdentifier", + "src": "2393:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "2329:58:19", + "nodeType": "YulIdentifier", + "src": "2329:58:19" + }, + "nativeSrc": "2329:71:19", + "nodeType": "YulFunctionCall", + "src": "2329:71:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2322:3:19", + "nodeType": "YulIdentifier", + "src": "2322:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2448:5:19", + "nodeType": "YulIdentifier", + "src": "2448:5:19" + }, + { + "kind": "number", + "nativeSrc": "2455:4:19", + "nodeType": "YulLiteral", + "src": "2455:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2444:3:19", + "nodeType": "YulIdentifier", + "src": "2444:3:19" + }, + "nativeSrc": "2444:16:19", + "nodeType": "YulFunctionCall", + "src": "2444:16:19" + }, + { + "name": "pos", + "nativeSrc": "2462:3:19", + "nodeType": "YulIdentifier", + "src": "2462:3:19" + }, + { + "name": "length", + "nativeSrc": "2467:6:19", + "nodeType": "YulIdentifier", + "src": "2467:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2409:34:19", + "nodeType": "YulIdentifier", + "src": "2409:34:19" + }, + "nativeSrc": "2409:65:19", + "nodeType": "YulFunctionCall", + "src": "2409:65:19" + }, + "nativeSrc": "2409:65:19", + "nodeType": "YulExpressionStatement", + "src": "2409:65:19" + }, + { + "nativeSrc": "2483:46:19", + "nodeType": "YulAssignment", + "src": "2483:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2494:3:19", + "nodeType": "YulIdentifier", + "src": "2494:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2521:6:19", + "nodeType": "YulIdentifier", + "src": "2521:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "2499:21:19", + "nodeType": "YulIdentifier", + "src": "2499:21:19" + }, + "nativeSrc": "2499:29:19", + "nodeType": "YulFunctionCall", + "src": "2499:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2490:3:19", + "nodeType": "YulIdentifier", + "src": "2490:3:19" + }, + "nativeSrc": "2490:39:19", + "nodeType": "YulFunctionCall", + "src": "2490:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2483:3:19", + "nodeType": "YulIdentifier", + "src": "2483:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2158:377:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2231:5:19", + "nodeType": "YulTypedName", + "src": "2231:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2238:3:19", + "nodeType": "YulTypedName", + "src": "2238:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2246:3:19", + "nodeType": "YulTypedName", + "src": "2246:3:19", + "type": "" + } + ], + "src": "2158:377:19" + }, + { + "body": { + "nativeSrc": "2659:195:19", + "nodeType": "YulBlock", + "src": "2659:195:19", + "statements": [ + { + "nativeSrc": "2669:26:19", + "nodeType": "YulAssignment", + "src": "2669:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2681:9:19", + "nodeType": "YulIdentifier", + "src": "2681:9:19" + }, + { + "kind": "number", + "nativeSrc": "2692:2:19", + "nodeType": "YulLiteral", + "src": "2692:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2677:3:19", + "nodeType": "YulIdentifier", + "src": "2677:3:19" + }, + "nativeSrc": "2677:18:19", + "nodeType": "YulFunctionCall", + "src": "2677:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2669:4:19", + "nodeType": "YulIdentifier", + "src": "2669:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2716:9:19", + "nodeType": "YulIdentifier", + "src": "2716:9:19" + }, + { + "kind": "number", + "nativeSrc": "2727:1:19", + "nodeType": "YulLiteral", + "src": "2727:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2712:3:19", + "nodeType": "YulIdentifier", + "src": "2712:3:19" + }, + "nativeSrc": "2712:17:19", + "nodeType": "YulFunctionCall", + "src": "2712:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "2735:4:19", + "nodeType": "YulIdentifier", + "src": "2735:4:19" + }, + { + "name": "headStart", + "nativeSrc": "2741:9:19", + "nodeType": "YulIdentifier", + "src": "2741:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2731:3:19", + "nodeType": "YulIdentifier", + "src": "2731:3:19" + }, + "nativeSrc": "2731:20:19", + "nodeType": "YulFunctionCall", + "src": "2731:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2705:6:19", + "nodeType": "YulIdentifier", + "src": "2705:6:19" + }, + "nativeSrc": "2705:47:19", + "nodeType": "YulFunctionCall", + "src": "2705:47:19" + }, + "nativeSrc": "2705:47:19", + "nodeType": "YulExpressionStatement", + "src": "2705:47:19" + }, + { + "nativeSrc": "2761:86:19", + "nodeType": "YulAssignment", + "src": "2761:86:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2833:6:19", + "nodeType": "YulIdentifier", + "src": "2833:6:19" + }, + { + "name": "tail", + "nativeSrc": "2842:4:19", + "nodeType": "YulIdentifier", + "src": "2842:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "2769:63:19", + "nodeType": "YulIdentifier", + "src": "2769:63:19" + }, + "nativeSrc": "2769:78:19", + "nodeType": "YulFunctionCall", + "src": "2769:78:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2761:4:19", + "nodeType": "YulIdentifier", + "src": "2761:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2541:313:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2631:9:19", + "nodeType": "YulTypedName", + "src": "2631:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2643:6:19", + "nodeType": "YulTypedName", + "src": "2643:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2654:4:19", + "nodeType": "YulTypedName", + "src": "2654:4:19", + "type": "" + } + ], + "src": "2541:313:19" + }, + { + "body": { + "nativeSrc": "2905:32:19", + "nodeType": "YulBlock", + "src": "2905:32:19", + "statements": [ + { + "nativeSrc": "2915:16:19", + "nodeType": "YulAssignment", + "src": "2915:16:19", + "value": { + "name": "value", + "nativeSrc": "2926:5:19", + "nodeType": "YulIdentifier", + "src": "2926:5:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2915:7:19", + "nodeType": "YulIdentifier", + "src": "2915:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "2860:77:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2887:5:19", + "nodeType": "YulTypedName", + "src": "2887:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2897:7:19", + "nodeType": "YulTypedName", + "src": "2897:7:19", + "type": "" + } + ], + "src": "2860:77:19" + }, + { + "body": { + "nativeSrc": "2986:79:19", + "nodeType": "YulBlock", + "src": "2986:79:19", + "statements": [ + { + "body": { + "nativeSrc": "3043:16:19", + "nodeType": "YulBlock", + "src": "3043:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3052:1:19", + "nodeType": "YulLiteral", + "src": "3052:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3055:1:19", + "nodeType": "YulLiteral", + "src": "3055:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3045:6:19", + "nodeType": "YulIdentifier", + "src": "3045:6:19" + }, + "nativeSrc": "3045:12:19", + "nodeType": "YulFunctionCall", + "src": "3045:12:19" + }, + "nativeSrc": "3045:12:19", + "nodeType": "YulExpressionStatement", + "src": "3045:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3009:5:19", + "nodeType": "YulIdentifier", + "src": "3009:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3034:5:19", + "nodeType": "YulIdentifier", + "src": "3034:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "3016:17:19", + "nodeType": "YulIdentifier", + "src": "3016:17:19" + }, + "nativeSrc": "3016:24:19", + "nodeType": "YulFunctionCall", + "src": "3016:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3006:2:19", + "nodeType": "YulIdentifier", + "src": "3006:2:19" + }, + "nativeSrc": "3006:35:19", + "nodeType": "YulFunctionCall", + "src": "3006:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2999:6:19", + "nodeType": "YulIdentifier", + "src": "2999:6:19" + }, + "nativeSrc": "2999:43:19", + "nodeType": "YulFunctionCall", + "src": "2999:43:19" + }, + "nativeSrc": "2996:63:19", + "nodeType": "YulIf", + "src": "2996:63:19" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "2943:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2979:5:19", + "nodeType": "YulTypedName", + "src": "2979:5:19", + "type": "" + } + ], + "src": "2943:122:19" + }, + { + "body": { + "nativeSrc": "3123:87:19", + "nodeType": "YulBlock", + "src": "3123:87:19", + "statements": [ + { + "nativeSrc": "3133:29:19", + "nodeType": "YulAssignment", + "src": "3133:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3155:6:19", + "nodeType": "YulIdentifier", + "src": "3155:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3142:12:19", + "nodeType": "YulIdentifier", + "src": "3142:12:19" + }, + "nativeSrc": "3142:20:19", + "nodeType": "YulFunctionCall", + "src": "3142:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3133:5:19", + "nodeType": "YulIdentifier", + "src": "3133:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3198:5:19", + "nodeType": "YulIdentifier", + "src": "3198:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3171:26:19", + "nodeType": "YulIdentifier", + "src": "3171:26:19" + }, + "nativeSrc": "3171:33:19", + "nodeType": "YulFunctionCall", + "src": "3171:33:19" + }, + "nativeSrc": "3171:33:19", + "nodeType": "YulExpressionStatement", + "src": "3171:33:19" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "3071:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3101:6:19", + "nodeType": "YulTypedName", + "src": "3101:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3109:3:19", + "nodeType": "YulTypedName", + "src": "3109:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3117:5:19", + "nodeType": "YulTypedName", + "src": "3117:5:19", + "type": "" + } + ], + "src": "3071:139:19" + }, + { + "body": { + "nativeSrc": "3282:263:19", + "nodeType": "YulBlock", + "src": "3282:263:19", + "statements": [ + { + "body": { + "nativeSrc": "3328:83:19", + "nodeType": "YulBlock", + "src": "3328:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3330:77:19", + "nodeType": "YulIdentifier", + "src": "3330:77:19" + }, + "nativeSrc": "3330:79:19", + "nodeType": "YulFunctionCall", + "src": "3330:79:19" + }, + "nativeSrc": "3330:79:19", + "nodeType": "YulExpressionStatement", + "src": "3330:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3303:7:19", + "nodeType": "YulIdentifier", + "src": "3303:7:19" + }, + { + "name": "headStart", + "nativeSrc": "3312:9:19", + "nodeType": "YulIdentifier", + "src": "3312:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3299:3:19", + "nodeType": "YulIdentifier", + "src": "3299:3:19" + }, + "nativeSrc": "3299:23:19", + "nodeType": "YulFunctionCall", + "src": "3299:23:19" + }, + { + "kind": "number", + "nativeSrc": "3324:2:19", + "nodeType": "YulLiteral", + "src": "3324:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3295:3:19", + "nodeType": "YulIdentifier", + "src": "3295:3:19" + }, + "nativeSrc": "3295:32:19", + "nodeType": "YulFunctionCall", + "src": "3295:32:19" + }, + "nativeSrc": "3292:119:19", + "nodeType": "YulIf", + "src": "3292:119:19" + }, + { + "nativeSrc": "3421:117:19", + "nodeType": "YulBlock", + "src": "3421:117:19", + "statements": [ + { + "nativeSrc": "3436:15:19", + "nodeType": "YulVariableDeclaration", + "src": "3436:15:19", + "value": { + "kind": "number", + "nativeSrc": "3450:1:19", + "nodeType": "YulLiteral", + "src": "3450:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3440:6:19", + "nodeType": "YulTypedName", + "src": "3440:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "3465:63:19", + "nodeType": "YulAssignment", + "src": "3465:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3500:9:19", + "nodeType": "YulIdentifier", + "src": "3500:9:19" + }, + { + "name": "offset", + "nativeSrc": "3511:6:19", + "nodeType": "YulIdentifier", + "src": "3511:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3496:3:19", + "nodeType": "YulIdentifier", + "src": "3496:3:19" + }, + "nativeSrc": "3496:22:19", + "nodeType": "YulFunctionCall", + "src": "3496:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "3520:7:19", + "nodeType": "YulIdentifier", + "src": "3520:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3475:20:19", + "nodeType": "YulIdentifier", + "src": "3475:20:19" + }, + "nativeSrc": "3475:53:19", + "nodeType": "YulFunctionCall", + "src": "3475:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3465:6:19", + "nodeType": "YulIdentifier", + "src": "3465:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3216:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3252:9:19", + "nodeType": "YulTypedName", + "src": "3252:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3263:7:19", + "nodeType": "YulTypedName", + "src": "3263:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3275:6:19", + "nodeType": "YulTypedName", + "src": "3275:6:19", + "type": "" + } + ], + "src": "3216:329:19" + }, + { + "body": { + "nativeSrc": "3596:81:19", + "nodeType": "YulBlock", + "src": "3596:81:19", + "statements": [ + { + "nativeSrc": "3606:65:19", + "nodeType": "YulAssignment", + "src": "3606:65:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3621:5:19", + "nodeType": "YulIdentifier", + "src": "3621:5:19" + }, + { + "kind": "number", + "nativeSrc": "3628:42:19", + "nodeType": "YulLiteral", + "src": "3628:42:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3617:3:19", + "nodeType": "YulIdentifier", + "src": "3617:3:19" + }, + "nativeSrc": "3617:54:19", + "nodeType": "YulFunctionCall", + "src": "3617:54:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3606:7:19", + "nodeType": "YulIdentifier", + "src": "3606:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "3551:126:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3578:5:19", + "nodeType": "YulTypedName", + "src": "3578:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3588:7:19", + "nodeType": "YulTypedName", + "src": "3588:7:19", + "type": "" + } + ], + "src": "3551:126:19" + }, + { + "body": { + "nativeSrc": "3728:51:19", + "nodeType": "YulBlock", + "src": "3728:51:19", + "statements": [ + { + "nativeSrc": "3738:35:19", + "nodeType": "YulAssignment", + "src": "3738:35:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3767:5:19", + "nodeType": "YulIdentifier", + "src": "3767:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "3749:17:19", + "nodeType": "YulIdentifier", + "src": "3749:17:19" + }, + "nativeSrc": "3749:24:19", + "nodeType": "YulFunctionCall", + "src": "3749:24:19" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3738:7:19", + "nodeType": "YulIdentifier", + "src": "3738:7:19" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "3683:96:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3710:5:19", + "nodeType": "YulTypedName", + "src": "3710:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3720:7:19", + "nodeType": "YulTypedName", + "src": "3720:7:19", + "type": "" + } + ], + "src": "3683:96:19" + }, + { + "body": { + "nativeSrc": "3850:53:19", + "nodeType": "YulBlock", + "src": "3850:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3867:3:19", + "nodeType": "YulIdentifier", + "src": "3867:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3890:5:19", + "nodeType": "YulIdentifier", + "src": "3890:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "3872:17:19", + "nodeType": "YulIdentifier", + "src": "3872:17:19" + }, + "nativeSrc": "3872:24:19", + "nodeType": "YulFunctionCall", + "src": "3872:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3860:6:19", + "nodeType": "YulIdentifier", + "src": "3860:6:19" + }, + "nativeSrc": "3860:37:19", + "nodeType": "YulFunctionCall", + "src": "3860:37:19" + }, + "nativeSrc": "3860:37:19", + "nodeType": "YulExpressionStatement", + "src": "3860:37:19" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "3785:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3838:5:19", + "nodeType": "YulTypedName", + "src": "3838:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3845:3:19", + "nodeType": "YulTypedName", + "src": "3845:3:19", + "type": "" + } + ], + "src": "3785:118:19" + }, + { + "body": { + "nativeSrc": "4007:124:19", + "nodeType": "YulBlock", + "src": "4007:124:19", + "statements": [ + { + "nativeSrc": "4017:26:19", + "nodeType": "YulAssignment", + "src": "4017:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4029:9:19", + "nodeType": "YulIdentifier", + "src": "4029:9:19" + }, + { + "kind": "number", + "nativeSrc": "4040:2:19", + "nodeType": "YulLiteral", + "src": "4040:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4025:3:19", + "nodeType": "YulIdentifier", + "src": "4025:3:19" + }, + "nativeSrc": "4025:18:19", + "nodeType": "YulFunctionCall", + "src": "4025:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4017:4:19", + "nodeType": "YulIdentifier", + "src": "4017:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4097:6:19", + "nodeType": "YulIdentifier", + "src": "4097:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4110:9:19", + "nodeType": "YulIdentifier", + "src": "4110:9:19" + }, + { + "kind": "number", + "nativeSrc": "4121:1:19", + "nodeType": "YulLiteral", + "src": "4121:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4106:3:19", + "nodeType": "YulIdentifier", + "src": "4106:3:19" + }, + "nativeSrc": "4106:17:19", + "nodeType": "YulFunctionCall", + "src": "4106:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4053:43:19", + "nodeType": "YulIdentifier", + "src": "4053:43:19" + }, + "nativeSrc": "4053:71:19", + "nodeType": "YulFunctionCall", + "src": "4053:71:19" + }, + "nativeSrc": "4053:71:19", + "nodeType": "YulExpressionStatement", + "src": "4053:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "3909:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3979:9:19", + "nodeType": "YulTypedName", + "src": "3979:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3991:6:19", + "nodeType": "YulTypedName", + "src": "3991:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4002:4:19", + "nodeType": "YulTypedName", + "src": "4002:4:19", + "type": "" + } + ], + "src": "3909:222:19" + }, + { + "body": { + "nativeSrc": "4180:79:19", + "nodeType": "YulBlock", + "src": "4180:79:19", + "statements": [ + { + "body": { + "nativeSrc": "4237:16:19", + "nodeType": "YulBlock", + "src": "4237:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4246:1:19", + "nodeType": "YulLiteral", + "src": "4246:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4249:1:19", + "nodeType": "YulLiteral", + "src": "4249:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4239:6:19", + "nodeType": "YulIdentifier", + "src": "4239:6:19" + }, + "nativeSrc": "4239:12:19", + "nodeType": "YulFunctionCall", + "src": "4239:12:19" + }, + "nativeSrc": "4239:12:19", + "nodeType": "YulExpressionStatement", + "src": "4239:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4203:5:19", + "nodeType": "YulIdentifier", + "src": "4203:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4228:5:19", + "nodeType": "YulIdentifier", + "src": "4228:5:19" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "4210:17:19", + "nodeType": "YulIdentifier", + "src": "4210:17:19" + }, + "nativeSrc": "4210:24:19", + "nodeType": "YulFunctionCall", + "src": "4210:24:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4200:2:19", + "nodeType": "YulIdentifier", + "src": "4200:2:19" + }, + "nativeSrc": "4200:35:19", + "nodeType": "YulFunctionCall", + "src": "4200:35:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4193:6:19", + "nodeType": "YulIdentifier", + "src": "4193:6:19" + }, + "nativeSrc": "4193:43:19", + "nodeType": "YulFunctionCall", + "src": "4193:43:19" + }, + "nativeSrc": "4190:63:19", + "nodeType": "YulIf", + "src": "4190:63:19" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "4137:122:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4173:5:19", + "nodeType": "YulTypedName", + "src": "4173:5:19", + "type": "" + } + ], + "src": "4137:122:19" + }, + { + "body": { + "nativeSrc": "4317:87:19", + "nodeType": "YulBlock", + "src": "4317:87:19", + "statements": [ + { + "nativeSrc": "4327:29:19", + "nodeType": "YulAssignment", + "src": "4327:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4349:6:19", + "nodeType": "YulIdentifier", + "src": "4349:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4336:12:19", + "nodeType": "YulIdentifier", + "src": "4336:12:19" + }, + "nativeSrc": "4336:20:19", + "nodeType": "YulFunctionCall", + "src": "4336:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4327:5:19", + "nodeType": "YulIdentifier", + "src": "4327:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4392:5:19", + "nodeType": "YulIdentifier", + "src": "4392:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "4365:26:19", + "nodeType": "YulIdentifier", + "src": "4365:26:19" + }, + "nativeSrc": "4365:33:19", + "nodeType": "YulFunctionCall", + "src": "4365:33:19" + }, + "nativeSrc": "4365:33:19", + "nodeType": "YulExpressionStatement", + "src": "4365:33:19" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "4265:139:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4295:6:19", + "nodeType": "YulTypedName", + "src": "4295:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4303:3:19", + "nodeType": "YulTypedName", + "src": "4303:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4311:5:19", + "nodeType": "YulTypedName", + "src": "4311:5:19", + "type": "" + } + ], + "src": "4265:139:19" + }, + { + "body": { + "nativeSrc": "4493:391:19", + "nodeType": "YulBlock", + "src": "4493:391:19", + "statements": [ + { + "body": { + "nativeSrc": "4539:83:19", + "nodeType": "YulBlock", + "src": "4539:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4541:77:19", + "nodeType": "YulIdentifier", + "src": "4541:77:19" + }, + "nativeSrc": "4541:79:19", + "nodeType": "YulFunctionCall", + "src": "4541:79:19" + }, + "nativeSrc": "4541:79:19", + "nodeType": "YulExpressionStatement", + "src": "4541:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4514:7:19", + "nodeType": "YulIdentifier", + "src": "4514:7:19" + }, + { + "name": "headStart", + "nativeSrc": "4523:9:19", + "nodeType": "YulIdentifier", + "src": "4523:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4510:3:19", + "nodeType": "YulIdentifier", + "src": "4510:3:19" + }, + "nativeSrc": "4510:23:19", + "nodeType": "YulFunctionCall", + "src": "4510:23:19" + }, + { + "kind": "number", + "nativeSrc": "4535:2:19", + "nodeType": "YulLiteral", + "src": "4535:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4506:3:19", + "nodeType": "YulIdentifier", + "src": "4506:3:19" + }, + "nativeSrc": "4506:32:19", + "nodeType": "YulFunctionCall", + "src": "4506:32:19" + }, + "nativeSrc": "4503:119:19", + "nodeType": "YulIf", + "src": "4503:119:19" + }, + { + "nativeSrc": "4632:117:19", + "nodeType": "YulBlock", + "src": "4632:117:19", + "statements": [ + { + "nativeSrc": "4647:15:19", + "nodeType": "YulVariableDeclaration", + "src": "4647:15:19", + "value": { + "kind": "number", + "nativeSrc": "4661:1:19", + "nodeType": "YulLiteral", + "src": "4661:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4651:6:19", + "nodeType": "YulTypedName", + "src": "4651:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4676:63:19", + "nodeType": "YulAssignment", + "src": "4676:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4711:9:19", + "nodeType": "YulIdentifier", + "src": "4711:9:19" + }, + { + "name": "offset", + "nativeSrc": "4722:6:19", + "nodeType": "YulIdentifier", + "src": "4722:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4707:3:19", + "nodeType": "YulIdentifier", + "src": "4707:3:19" + }, + "nativeSrc": "4707:22:19", + "nodeType": "YulFunctionCall", + "src": "4707:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4731:7:19", + "nodeType": "YulIdentifier", + "src": "4731:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4686:20:19", + "nodeType": "YulIdentifier", + "src": "4686:20:19" + }, + "nativeSrc": "4686:53:19", + "nodeType": "YulFunctionCall", + "src": "4686:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4676:6:19", + "nodeType": "YulIdentifier", + "src": "4676:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "4759:118:19", + "nodeType": "YulBlock", + "src": "4759:118:19", + "statements": [ + { + "nativeSrc": "4774:16:19", + "nodeType": "YulVariableDeclaration", + "src": "4774:16:19", + "value": { + "kind": "number", + "nativeSrc": "4788:2:19", + "nodeType": "YulLiteral", + "src": "4788:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4778:6:19", + "nodeType": "YulTypedName", + "src": "4778:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "4804:63:19", + "nodeType": "YulAssignment", + "src": "4804:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4839:9:19", + "nodeType": "YulIdentifier", + "src": "4839:9:19" + }, + { + "name": "offset", + "nativeSrc": "4850:6:19", + "nodeType": "YulIdentifier", + "src": "4850:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4835:3:19", + "nodeType": "YulIdentifier", + "src": "4835:3:19" + }, + "nativeSrc": "4835:22:19", + "nodeType": "YulFunctionCall", + "src": "4835:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "4859:7:19", + "nodeType": "YulIdentifier", + "src": "4859:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "4814:20:19", + "nodeType": "YulIdentifier", + "src": "4814:20:19" + }, + "nativeSrc": "4814:53:19", + "nodeType": "YulFunctionCall", + "src": "4814:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4804:6:19", + "nodeType": "YulIdentifier", + "src": "4804:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "4410:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4455:9:19", + "nodeType": "YulTypedName", + "src": "4455:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4466:7:19", + "nodeType": "YulTypedName", + "src": "4466:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4478:6:19", + "nodeType": "YulTypedName", + "src": "4478:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4486:6:19", + "nodeType": "YulTypedName", + "src": "4486:6:19", + "type": "" + } + ], + "src": "4410:474:19" + }, + { + "body": { + "nativeSrc": "4990:519:19", + "nodeType": "YulBlock", + "src": "4990:519:19", + "statements": [ + { + "body": { + "nativeSrc": "5036:83:19", + "nodeType": "YulBlock", + "src": "5036:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5038:77:19", + "nodeType": "YulIdentifier", + "src": "5038:77:19" + }, + "nativeSrc": "5038:79:19", + "nodeType": "YulFunctionCall", + "src": "5038:79:19" + }, + "nativeSrc": "5038:79:19", + "nodeType": "YulExpressionStatement", + "src": "5038:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5011:7:19", + "nodeType": "YulIdentifier", + "src": "5011:7:19" + }, + { + "name": "headStart", + "nativeSrc": "5020:9:19", + "nodeType": "YulIdentifier", + "src": "5020:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5007:3:19", + "nodeType": "YulIdentifier", + "src": "5007:3:19" + }, + "nativeSrc": "5007:23:19", + "nodeType": "YulFunctionCall", + "src": "5007:23:19" + }, + { + "kind": "number", + "nativeSrc": "5032:2:19", + "nodeType": "YulLiteral", + "src": "5032:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5003:3:19", + "nodeType": "YulIdentifier", + "src": "5003:3:19" + }, + "nativeSrc": "5003:32:19", + "nodeType": "YulFunctionCall", + "src": "5003:32:19" + }, + "nativeSrc": "5000:119:19", + "nodeType": "YulIf", + "src": "5000:119:19" + }, + { + "nativeSrc": "5129:117:19", + "nodeType": "YulBlock", + "src": "5129:117:19", + "statements": [ + { + "nativeSrc": "5144:15:19", + "nodeType": "YulVariableDeclaration", + "src": "5144:15:19", + "value": { + "kind": "number", + "nativeSrc": "5158:1:19", + "nodeType": "YulLiteral", + "src": "5158:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5148:6:19", + "nodeType": "YulTypedName", + "src": "5148:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5173:63:19", + "nodeType": "YulAssignment", + "src": "5173:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5208:9:19", + "nodeType": "YulIdentifier", + "src": "5208:9:19" + }, + { + "name": "offset", + "nativeSrc": "5219:6:19", + "nodeType": "YulIdentifier", + "src": "5219:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5204:3:19", + "nodeType": "YulIdentifier", + "src": "5204:3:19" + }, + "nativeSrc": "5204:22:19", + "nodeType": "YulFunctionCall", + "src": "5204:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5228:7:19", + "nodeType": "YulIdentifier", + "src": "5228:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5183:20:19", + "nodeType": "YulIdentifier", + "src": "5183:20:19" + }, + "nativeSrc": "5183:53:19", + "nodeType": "YulFunctionCall", + "src": "5183:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5173:6:19", + "nodeType": "YulIdentifier", + "src": "5173:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5256:118:19", + "nodeType": "YulBlock", + "src": "5256:118:19", + "statements": [ + { + "nativeSrc": "5271:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5271:16:19", + "value": { + "kind": "number", + "nativeSrc": "5285:2:19", + "nodeType": "YulLiteral", + "src": "5285:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5275:6:19", + "nodeType": "YulTypedName", + "src": "5275:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5301:63:19", + "nodeType": "YulAssignment", + "src": "5301:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5336:9:19", + "nodeType": "YulIdentifier", + "src": "5336:9:19" + }, + { + "name": "offset", + "nativeSrc": "5347:6:19", + "nodeType": "YulIdentifier", + "src": "5347:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5332:3:19", + "nodeType": "YulIdentifier", + "src": "5332:3:19" + }, + "nativeSrc": "5332:22:19", + "nodeType": "YulFunctionCall", + "src": "5332:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5356:7:19", + "nodeType": "YulIdentifier", + "src": "5356:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5311:20:19", + "nodeType": "YulIdentifier", + "src": "5311:20:19" + }, + "nativeSrc": "5311:53:19", + "nodeType": "YulFunctionCall", + "src": "5311:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5301:6:19", + "nodeType": "YulIdentifier", + "src": "5301:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "5384:118:19", + "nodeType": "YulBlock", + "src": "5384:118:19", + "statements": [ + { + "nativeSrc": "5399:16:19", + "nodeType": "YulVariableDeclaration", + "src": "5399:16:19", + "value": { + "kind": "number", + "nativeSrc": "5413:2:19", + "nodeType": "YulLiteral", + "src": "5413:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5403:6:19", + "nodeType": "YulTypedName", + "src": "5403:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "5429:63:19", + "nodeType": "YulAssignment", + "src": "5429:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5464:9:19", + "nodeType": "YulIdentifier", + "src": "5464:9:19" + }, + { + "name": "offset", + "nativeSrc": "5475:6:19", + "nodeType": "YulIdentifier", + "src": "5475:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5460:3:19", + "nodeType": "YulIdentifier", + "src": "5460:3:19" + }, + "nativeSrc": "5460:22:19", + "nodeType": "YulFunctionCall", + "src": "5460:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "5484:7:19", + "nodeType": "YulIdentifier", + "src": "5484:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5439:20:19", + "nodeType": "YulIdentifier", + "src": "5439:20:19" + }, + "nativeSrc": "5439:53:19", + "nodeType": "YulFunctionCall", + "src": "5439:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5429:6:19", + "nodeType": "YulIdentifier", + "src": "5429:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "4890:619:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4944:9:19", + "nodeType": "YulTypedName", + "src": "4944:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4955:7:19", + "nodeType": "YulTypedName", + "src": "4955:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4967:6:19", + "nodeType": "YulTypedName", + "src": "4967:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4975:6:19", + "nodeType": "YulTypedName", + "src": "4975:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4983:6:19", + "nodeType": "YulTypedName", + "src": "4983:6:19", + "type": "" + } + ], + "src": "4890:619:19" + }, + { + "body": { + "nativeSrc": "5604:28:19", + "nodeType": "YulBlock", + "src": "5604:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5621:1:19", + "nodeType": "YulLiteral", + "src": "5621:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5624:1:19", + "nodeType": "YulLiteral", + "src": "5624:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5614:6:19", + "nodeType": "YulIdentifier", + "src": "5614:6:19" + }, + "nativeSrc": "5614:12:19", + "nodeType": "YulFunctionCall", + "src": "5614:12:19" + }, + "nativeSrc": "5614:12:19", + "nodeType": "YulExpressionStatement", + "src": "5614:12:19" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "5515:117:19", + "nodeType": "YulFunctionDefinition", + "src": "5515:117:19" + }, + { + "body": { + "nativeSrc": "5727:28:19", + "nodeType": "YulBlock", + "src": "5727:28:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5744:1:19", + "nodeType": "YulLiteral", + "src": "5744:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5747:1:19", + "nodeType": "YulLiteral", + "src": "5747:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5737:6:19", + "nodeType": "YulIdentifier", + "src": "5737:6:19" + }, + "nativeSrc": "5737:12:19", + "nodeType": "YulFunctionCall", + "src": "5737:12:19" + }, + "nativeSrc": "5737:12:19", + "nodeType": "YulExpressionStatement", + "src": "5737:12:19" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "5638:117:19", + "nodeType": "YulFunctionDefinition", + "src": "5638:117:19" + }, + { + "body": { + "nativeSrc": "5789:152:19", + "nodeType": "YulBlock", + "src": "5789:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5806:1:19", + "nodeType": "YulLiteral", + "src": "5806:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5809:77:19", + "nodeType": "YulLiteral", + "src": "5809:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5799:6:19", + "nodeType": "YulIdentifier", + "src": "5799:6:19" + }, + "nativeSrc": "5799:88:19", + "nodeType": "YulFunctionCall", + "src": "5799:88:19" + }, + "nativeSrc": "5799:88:19", + "nodeType": "YulExpressionStatement", + "src": "5799:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5903:1:19", + "nodeType": "YulLiteral", + "src": "5903:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "5906:4:19", + "nodeType": "YulLiteral", + "src": "5906:4:19", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5896:6:19", + "nodeType": "YulIdentifier", + "src": "5896:6:19" + }, + "nativeSrc": "5896:15:19", + "nodeType": "YulFunctionCall", + "src": "5896:15:19" + }, + "nativeSrc": "5896:15:19", + "nodeType": "YulExpressionStatement", + "src": "5896:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5927:1:19", + "nodeType": "YulLiteral", + "src": "5927:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5930:4:19", + "nodeType": "YulLiteral", + "src": "5930:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5920:6:19", + "nodeType": "YulIdentifier", + "src": "5920:6:19" + }, + "nativeSrc": "5920:15:19", + "nodeType": "YulFunctionCall", + "src": "5920:15:19" + }, + "nativeSrc": "5920:15:19", + "nodeType": "YulExpressionStatement", + "src": "5920:15:19" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "5761:180:19", + "nodeType": "YulFunctionDefinition", + "src": "5761:180:19" + }, + { + "body": { + "nativeSrc": "5990:238:19", + "nodeType": "YulBlock", + "src": "5990:238:19", + "statements": [ + { + "nativeSrc": "6000:58:19", + "nodeType": "YulVariableDeclaration", + "src": "6000:58:19", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6022:6:19", + "nodeType": "YulIdentifier", + "src": "6022:6:19" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6052:4:19", + "nodeType": "YulIdentifier", + "src": "6052:4:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6030:21:19", + "nodeType": "YulIdentifier", + "src": "6030:21:19" + }, + "nativeSrc": "6030:27:19", + "nodeType": "YulFunctionCall", + "src": "6030:27:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6018:3:19", + "nodeType": "YulIdentifier", + "src": "6018:3:19" + }, + "nativeSrc": "6018:40:19", + "nodeType": "YulFunctionCall", + "src": "6018:40:19" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6004:10:19", + "nodeType": "YulTypedName", + "src": "6004:10:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6169:22:19", + "nodeType": "YulBlock", + "src": "6169:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6171:16:19", + "nodeType": "YulIdentifier", + "src": "6171:16:19" + }, + "nativeSrc": "6171:18:19", + "nodeType": "YulFunctionCall", + "src": "6171:18:19" + }, + "nativeSrc": "6171:18:19", + "nodeType": "YulExpressionStatement", + "src": "6171:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6112:10:19", + "nodeType": "YulIdentifier", + "src": "6112:10:19" + }, + { + "kind": "number", + "nativeSrc": "6124:18:19", + "nodeType": "YulLiteral", + "src": "6124:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6109:2:19", + "nodeType": "YulIdentifier", + "src": "6109:2:19" + }, + "nativeSrc": "6109:34:19", + "nodeType": "YulFunctionCall", + "src": "6109:34:19" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6148:10:19", + "nodeType": "YulIdentifier", + "src": "6148:10:19" + }, + { + "name": "memPtr", + "nativeSrc": "6160:6:19", + "nodeType": "YulIdentifier", + "src": "6160:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6145:2:19", + "nodeType": "YulIdentifier", + "src": "6145:2:19" + }, + "nativeSrc": "6145:22:19", + "nodeType": "YulFunctionCall", + "src": "6145:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6106:2:19", + "nodeType": "YulIdentifier", + "src": "6106:2:19" + }, + "nativeSrc": "6106:62:19", + "nodeType": "YulFunctionCall", + "src": "6106:62:19" + }, + "nativeSrc": "6103:88:19", + "nodeType": "YulIf", + "src": "6103:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6207:2:19", + "nodeType": "YulLiteral", + "src": "6207:2:19", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6211:10:19", + "nodeType": "YulIdentifier", + "src": "6211:10:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6200:6:19", + "nodeType": "YulIdentifier", + "src": "6200:6:19" + }, + "nativeSrc": "6200:22:19", + "nodeType": "YulFunctionCall", + "src": "6200:22:19" + }, + "nativeSrc": "6200:22:19", + "nodeType": "YulExpressionStatement", + "src": "6200:22:19" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "5947:281:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "5976:6:19", + "nodeType": "YulTypedName", + "src": "5976:6:19", + "type": "" + }, + { + "name": "size", + "nativeSrc": "5984:4:19", + "nodeType": "YulTypedName", + "src": "5984:4:19", + "type": "" + } + ], + "src": "5947:281:19" + }, + { + "body": { + "nativeSrc": "6275:88:19", + "nodeType": "YulBlock", + "src": "6275:88:19", + "statements": [ + { + "nativeSrc": "6285:30:19", + "nodeType": "YulAssignment", + "src": "6285:30:19", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6295:18:19", + "nodeType": "YulIdentifier", + "src": "6295:18:19" + }, + "nativeSrc": "6295:20:19", + "nodeType": "YulFunctionCall", + "src": "6295:20:19" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6285:6:19", + "nodeType": "YulIdentifier", + "src": "6285:6:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6344:6:19", + "nodeType": "YulIdentifier", + "src": "6344:6:19" + }, + { + "name": "size", + "nativeSrc": "6352:4:19", + "nodeType": "YulIdentifier", + "src": "6352:4:19" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "6324:19:19", + "nodeType": "YulIdentifier", + "src": "6324:19:19" + }, + "nativeSrc": "6324:33:19", + "nodeType": "YulFunctionCall", + "src": "6324:33:19" + }, + "nativeSrc": "6324:33:19", + "nodeType": "YulExpressionStatement", + "src": "6324:33:19" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6234:129:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6259:4:19", + "nodeType": "YulTypedName", + "src": "6259:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6268:6:19", + "nodeType": "YulTypedName", + "src": "6268:6:19", + "type": "" + } + ], + "src": "6234:129:19" + }, + { + "body": { + "nativeSrc": "6436:241:19", + "nodeType": "YulBlock", + "src": "6436:241:19", + "statements": [ + { + "body": { + "nativeSrc": "6541:22:19", + "nodeType": "YulBlock", + "src": "6541:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6543:16:19", + "nodeType": "YulIdentifier", + "src": "6543:16:19" + }, + "nativeSrc": "6543:18:19", + "nodeType": "YulFunctionCall", + "src": "6543:18:19" + }, + "nativeSrc": "6543:18:19", + "nodeType": "YulExpressionStatement", + "src": "6543:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6513:6:19", + "nodeType": "YulIdentifier", + "src": "6513:6:19" + }, + { + "kind": "number", + "nativeSrc": "6521:18:19", + "nodeType": "YulLiteral", + "src": "6521:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6510:2:19", + "nodeType": "YulIdentifier", + "src": "6510:2:19" + }, + "nativeSrc": "6510:30:19", + "nodeType": "YulFunctionCall", + "src": "6510:30:19" + }, + "nativeSrc": "6507:56:19", + "nodeType": "YulIf", + "src": "6507:56:19" + }, + { + "nativeSrc": "6573:37:19", + "nodeType": "YulAssignment", + "src": "6573:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6603:6:19", + "nodeType": "YulIdentifier", + "src": "6603:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6581:21:19", + "nodeType": "YulIdentifier", + "src": "6581:21:19" + }, + "nativeSrc": "6581:29:19", + "nodeType": "YulFunctionCall", + "src": "6581:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6573:4:19", + "nodeType": "YulIdentifier", + "src": "6573:4:19" + } + ] + }, + { + "nativeSrc": "6647:23:19", + "nodeType": "YulAssignment", + "src": "6647:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "6659:4:19", + "nodeType": "YulIdentifier", + "src": "6659:4:19" + }, + { + "kind": "number", + "nativeSrc": "6665:4:19", + "nodeType": "YulLiteral", + "src": "6665:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6655:3:19", + "nodeType": "YulIdentifier", + "src": "6655:3:19" + }, + "nativeSrc": "6655:15:19", + "nodeType": "YulFunctionCall", + "src": "6655:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6647:4:19", + "nodeType": "YulIdentifier", + "src": "6647:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "6369:308:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "6420:6:19", + "nodeType": "YulTypedName", + "src": "6420:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "6431:4:19", + "nodeType": "YulTypedName", + "src": "6431:4:19", + "type": "" + } + ], + "src": "6369:308:19" + }, + { + "body": { + "nativeSrc": "6747:82:19", + "nodeType": "YulBlock", + "src": "6747:82:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "6770:3:19", + "nodeType": "YulIdentifier", + "src": "6770:3:19" + }, + { + "name": "src", + "nativeSrc": "6775:3:19", + "nodeType": "YulIdentifier", + "src": "6775:3:19" + }, + { + "name": "length", + "nativeSrc": "6780:6:19", + "nodeType": "YulIdentifier", + "src": "6780:6:19" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "6757:12:19", + "nodeType": "YulIdentifier", + "src": "6757:12:19" + }, + "nativeSrc": "6757:30:19", + "nodeType": "YulFunctionCall", + "src": "6757:30:19" + }, + "nativeSrc": "6757:30:19", + "nodeType": "YulExpressionStatement", + "src": "6757:30:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "6807:3:19", + "nodeType": "YulIdentifier", + "src": "6807:3:19" + }, + { + "name": "length", + "nativeSrc": "6812:6:19", + "nodeType": "YulIdentifier", + "src": "6812:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6803:3:19", + "nodeType": "YulIdentifier", + "src": "6803:3:19" + }, + "nativeSrc": "6803:16:19", + "nodeType": "YulFunctionCall", + "src": "6803:16:19" + }, + { + "kind": "number", + "nativeSrc": "6821:1:19", + "nodeType": "YulLiteral", + "src": "6821:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6796:6:19", + "nodeType": "YulIdentifier", + "src": "6796:6:19" + }, + "nativeSrc": "6796:27:19", + "nodeType": "YulFunctionCall", + "src": "6796:27:19" + }, + "nativeSrc": "6796:27:19", + "nodeType": "YulExpressionStatement", + "src": "6796:27:19" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "6683:146:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "6729:3:19", + "nodeType": "YulTypedName", + "src": "6729:3:19", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "6734:3:19", + "nodeType": "YulTypedName", + "src": "6734:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6739:6:19", + "nodeType": "YulTypedName", + "src": "6739:6:19", + "type": "" + } + ], + "src": "6683:146:19" + }, + { + "body": { + "nativeSrc": "6919:341:19", + "nodeType": "YulBlock", + "src": "6919:341:19", + "statements": [ + { + "nativeSrc": "6929:75:19", + "nodeType": "YulAssignment", + "src": "6929:75:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "6996:6:19", + "nodeType": "YulIdentifier", + "src": "6996:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "6954:41:19", + "nodeType": "YulIdentifier", + "src": "6954:41:19" + }, + "nativeSrc": "6954:49:19", + "nodeType": "YulFunctionCall", + "src": "6954:49:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "6938:15:19", + "nodeType": "YulIdentifier", + "src": "6938:15:19" + }, + "nativeSrc": "6938:66:19", + "nodeType": "YulFunctionCall", + "src": "6938:66:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "6929:5:19", + "nodeType": "YulIdentifier", + "src": "6929:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7020:5:19", + "nodeType": "YulIdentifier", + "src": "7020:5:19" + }, + { + "name": "length", + "nativeSrc": "7027:6:19", + "nodeType": "YulIdentifier", + "src": "7027:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7013:6:19", + "nodeType": "YulIdentifier", + "src": "7013:6:19" + }, + "nativeSrc": "7013:21:19", + "nodeType": "YulFunctionCall", + "src": "7013:21:19" + }, + "nativeSrc": "7013:21:19", + "nodeType": "YulExpressionStatement", + "src": "7013:21:19" + }, + { + "nativeSrc": "7043:27:19", + "nodeType": "YulVariableDeclaration", + "src": "7043:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7058:5:19", + "nodeType": "YulIdentifier", + "src": "7058:5:19" + }, + { + "kind": "number", + "nativeSrc": "7065:4:19", + "nodeType": "YulLiteral", + "src": "7065:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7054:3:19", + "nodeType": "YulIdentifier", + "src": "7054:3:19" + }, + "nativeSrc": "7054:16:19", + "nodeType": "YulFunctionCall", + "src": "7054:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7047:3:19", + "nodeType": "YulTypedName", + "src": "7047:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7108:83:19", + "nodeType": "YulBlock", + "src": "7108:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7110:77:19", + "nodeType": "YulIdentifier", + "src": "7110:77:19" + }, + "nativeSrc": "7110:79:19", + "nodeType": "YulFunctionCall", + "src": "7110:79:19" + }, + "nativeSrc": "7110:79:19", + "nodeType": "YulExpressionStatement", + "src": "7110:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7089:3:19", + "nodeType": "YulIdentifier", + "src": "7089:3:19" + }, + { + "name": "length", + "nativeSrc": "7094:6:19", + "nodeType": "YulIdentifier", + "src": "7094:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7085:3:19", + "nodeType": "YulIdentifier", + "src": "7085:3:19" + }, + "nativeSrc": "7085:16:19", + "nodeType": "YulFunctionCall", + "src": "7085:16:19" + }, + { + "name": "end", + "nativeSrc": "7103:3:19", + "nodeType": "YulIdentifier", + "src": "7103:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7082:2:19", + "nodeType": "YulIdentifier", + "src": "7082:2:19" + }, + "nativeSrc": "7082:25:19", + "nodeType": "YulFunctionCall", + "src": "7082:25:19" + }, + "nativeSrc": "7079:112:19", + "nodeType": "YulIf", + "src": "7079:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7237:3:19", + "nodeType": "YulIdentifier", + "src": "7237:3:19" + }, + { + "name": "dst", + "nativeSrc": "7242:3:19", + "nodeType": "YulIdentifier", + "src": "7242:3:19" + }, + { + "name": "length", + "nativeSrc": "7247:6:19", + "nodeType": "YulIdentifier", + "src": "7247:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7200:36:19", + "nodeType": "YulIdentifier", + "src": "7200:36:19" + }, + "nativeSrc": "7200:54:19", + "nodeType": "YulFunctionCall", + "src": "7200:54:19" + }, + "nativeSrc": "7200:54:19", + "nodeType": "YulExpressionStatement", + "src": "7200:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "6835:425:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "6892:3:19", + "nodeType": "YulTypedName", + "src": "6892:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "6897:6:19", + "nodeType": "YulTypedName", + "src": "6897:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "6905:3:19", + "nodeType": "YulTypedName", + "src": "6905:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "6913:5:19", + "nodeType": "YulTypedName", + "src": "6913:5:19", + "type": "" + } + ], + "src": "6835:425:19" + }, + { + "body": { + "nativeSrc": "7342:278:19", + "nodeType": "YulBlock", + "src": "7342:278:19", + "statements": [ + { + "body": { + "nativeSrc": "7391:83:19", + "nodeType": "YulBlock", + "src": "7391:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "7393:77:19", + "nodeType": "YulIdentifier", + "src": "7393:77:19" + }, + "nativeSrc": "7393:79:19", + "nodeType": "YulFunctionCall", + "src": "7393:79:19" + }, + "nativeSrc": "7393:79:19", + "nodeType": "YulExpressionStatement", + "src": "7393:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7370:6:19", + "nodeType": "YulIdentifier", + "src": "7370:6:19" + }, + { + "kind": "number", + "nativeSrc": "7378:4:19", + "nodeType": "YulLiteral", + "src": "7378:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7366:3:19", + "nodeType": "YulIdentifier", + "src": "7366:3:19" + }, + "nativeSrc": "7366:17:19", + "nodeType": "YulFunctionCall", + "src": "7366:17:19" + }, + { + "name": "end", + "nativeSrc": "7385:3:19", + "nodeType": "YulIdentifier", + "src": "7385:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7362:3:19", + "nodeType": "YulIdentifier", + "src": "7362:3:19" + }, + "nativeSrc": "7362:27:19", + "nodeType": "YulFunctionCall", + "src": "7362:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7355:6:19", + "nodeType": "YulIdentifier", + "src": "7355:6:19" + }, + "nativeSrc": "7355:35:19", + "nodeType": "YulFunctionCall", + "src": "7355:35:19" + }, + "nativeSrc": "7352:122:19", + "nodeType": "YulIf", + "src": "7352:122:19" + }, + { + "nativeSrc": "7483:34:19", + "nodeType": "YulVariableDeclaration", + "src": "7483:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7510:6:19", + "nodeType": "YulIdentifier", + "src": "7510:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7497:12:19", + "nodeType": "YulIdentifier", + "src": "7497:12:19" + }, + "nativeSrc": "7497:20:19", + "nodeType": "YulFunctionCall", + "src": "7497:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "7487:6:19", + "nodeType": "YulTypedName", + "src": "7487:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "7526:88:19", + "nodeType": "YulAssignment", + "src": "7526:88:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7587:6:19", + "nodeType": "YulIdentifier", + "src": "7587:6:19" + }, + { + "kind": "number", + "nativeSrc": "7595:4:19", + "nodeType": "YulLiteral", + "src": "7595:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7583:3:19", + "nodeType": "YulIdentifier", + "src": "7583:3:19" + }, + "nativeSrc": "7583:17:19", + "nodeType": "YulFunctionCall", + "src": "7583:17:19" + }, + { + "name": "length", + "nativeSrc": "7602:6:19", + "nodeType": "YulIdentifier", + "src": "7602:6:19" + }, + { + "name": "end", + "nativeSrc": "7610:3:19", + "nodeType": "YulIdentifier", + "src": "7610:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "7535:47:19", + "nodeType": "YulIdentifier", + "src": "7535:47:19" + }, + "nativeSrc": "7535:79:19", + "nodeType": "YulFunctionCall", + "src": "7535:79:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7526:5:19", + "nodeType": "YulIdentifier", + "src": "7526:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "7280:340:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7320:6:19", + "nodeType": "YulTypedName", + "src": "7320:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7328:3:19", + "nodeType": "YulTypedName", + "src": "7328:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7336:5:19", + "nodeType": "YulTypedName", + "src": "7336:5:19", + "type": "" + } + ], + "src": "7280:340:19" + }, + { + "body": { + "nativeSrc": "7702:433:19", + "nodeType": "YulBlock", + "src": "7702:433:19", + "statements": [ + { + "body": { + "nativeSrc": "7748:83:19", + "nodeType": "YulBlock", + "src": "7748:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "7750:77:19", + "nodeType": "YulIdentifier", + "src": "7750:77:19" + }, + "nativeSrc": "7750:79:19", + "nodeType": "YulFunctionCall", + "src": "7750:79:19" + }, + "nativeSrc": "7750:79:19", + "nodeType": "YulExpressionStatement", + "src": "7750:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7723:7:19", + "nodeType": "YulIdentifier", + "src": "7723:7:19" + }, + { + "name": "headStart", + "nativeSrc": "7732:9:19", + "nodeType": "YulIdentifier", + "src": "7732:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7719:3:19", + "nodeType": "YulIdentifier", + "src": "7719:3:19" + }, + "nativeSrc": "7719:23:19", + "nodeType": "YulFunctionCall", + "src": "7719:23:19" + }, + { + "kind": "number", + "nativeSrc": "7744:2:19", + "nodeType": "YulLiteral", + "src": "7744:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7715:3:19", + "nodeType": "YulIdentifier", + "src": "7715:3:19" + }, + "nativeSrc": "7715:32:19", + "nodeType": "YulFunctionCall", + "src": "7715:32:19" + }, + "nativeSrc": "7712:119:19", + "nodeType": "YulIf", + "src": "7712:119:19" + }, + { + "nativeSrc": "7841:287:19", + "nodeType": "YulBlock", + "src": "7841:287:19", + "statements": [ + { + "nativeSrc": "7856:45:19", + "nodeType": "YulVariableDeclaration", + "src": "7856:45:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7887:9:19", + "nodeType": "YulIdentifier", + "src": "7887:9:19" + }, + { + "kind": "number", + "nativeSrc": "7898:1:19", + "nodeType": "YulLiteral", + "src": "7898:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7883:3:19", + "nodeType": "YulIdentifier", + "src": "7883:3:19" + }, + "nativeSrc": "7883:17:19", + "nodeType": "YulFunctionCall", + "src": "7883:17:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7870:12:19", + "nodeType": "YulIdentifier", + "src": "7870:12:19" + }, + "nativeSrc": "7870:31:19", + "nodeType": "YulFunctionCall", + "src": "7870:31:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "7860:6:19", + "nodeType": "YulTypedName", + "src": "7860:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7948:83:19", + "nodeType": "YulBlock", + "src": "7948:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "7950:77:19", + "nodeType": "YulIdentifier", + "src": "7950:77:19" + }, + "nativeSrc": "7950:79:19", + "nodeType": "YulFunctionCall", + "src": "7950:79:19" + }, + "nativeSrc": "7950:79:19", + "nodeType": "YulExpressionStatement", + "src": "7950:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7920:6:19", + "nodeType": "YulIdentifier", + "src": "7920:6:19" + }, + { + "kind": "number", + "nativeSrc": "7928:18:19", + "nodeType": "YulLiteral", + "src": "7928:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7917:2:19", + "nodeType": "YulIdentifier", + "src": "7917:2:19" + }, + "nativeSrc": "7917:30:19", + "nodeType": "YulFunctionCall", + "src": "7917:30:19" + }, + "nativeSrc": "7914:117:19", + "nodeType": "YulIf", + "src": "7914:117:19" + }, + { + "nativeSrc": "8045:73:19", + "nodeType": "YulAssignment", + "src": "8045:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8090:9:19", + "nodeType": "YulIdentifier", + "src": "8090:9:19" + }, + { + "name": "offset", + "nativeSrc": "8101:6:19", + "nodeType": "YulIdentifier", + "src": "8101:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8086:3:19", + "nodeType": "YulIdentifier", + "src": "8086:3:19" + }, + "nativeSrc": "8086:22:19", + "nodeType": "YulFunctionCall", + "src": "8086:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "8110:7:19", + "nodeType": "YulIdentifier", + "src": "8110:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "8055:30:19", + "nodeType": "YulIdentifier", + "src": "8055:30:19" + }, + "nativeSrc": "8055:63:19", + "nodeType": "YulFunctionCall", + "src": "8055:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8045:6:19", + "nodeType": "YulIdentifier", + "src": "8045:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "7626:509:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7672:9:19", + "nodeType": "YulTypedName", + "src": "7672:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7683:7:19", + "nodeType": "YulTypedName", + "src": "7683:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7695:6:19", + "nodeType": "YulTypedName", + "src": "7695:6:19", + "type": "" + } + ], + "src": "7626:509:19" + }, + { + "body": { + "nativeSrc": "8206:53:19", + "nodeType": "YulBlock", + "src": "8206:53:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8223:3:19", + "nodeType": "YulIdentifier", + "src": "8223:3:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8246:5:19", + "nodeType": "YulIdentifier", + "src": "8246:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "8228:17:19", + "nodeType": "YulIdentifier", + "src": "8228:17:19" + }, + "nativeSrc": "8228:24:19", + "nodeType": "YulFunctionCall", + "src": "8228:24:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8216:6:19", + "nodeType": "YulIdentifier", + "src": "8216:6:19" + }, + "nativeSrc": "8216:37:19", + "nodeType": "YulFunctionCall", + "src": "8216:37:19" + }, + "nativeSrc": "8216:37:19", + "nodeType": "YulExpressionStatement", + "src": "8216:37:19" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "8141:118:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8194:5:19", + "nodeType": "YulTypedName", + "src": "8194:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8201:3:19", + "nodeType": "YulTypedName", + "src": "8201:3:19", + "type": "" + } + ], + "src": "8141:118:19" + }, + { + "body": { + "nativeSrc": "8363:124:19", + "nodeType": "YulBlock", + "src": "8363:124:19", + "statements": [ + { + "nativeSrc": "8373:26:19", + "nodeType": "YulAssignment", + "src": "8373:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8385:9:19", + "nodeType": "YulIdentifier", + "src": "8385:9:19" + }, + { + "kind": "number", + "nativeSrc": "8396:2:19", + "nodeType": "YulLiteral", + "src": "8396:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8381:3:19", + "nodeType": "YulIdentifier", + "src": "8381:3:19" + }, + "nativeSrc": "8381:18:19", + "nodeType": "YulFunctionCall", + "src": "8381:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8373:4:19", + "nodeType": "YulIdentifier", + "src": "8373:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8453:6:19", + "nodeType": "YulIdentifier", + "src": "8453:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8466:9:19", + "nodeType": "YulIdentifier", + "src": "8466:9:19" + }, + { + "kind": "number", + "nativeSrc": "8477:1:19", + "nodeType": "YulLiteral", + "src": "8477:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8462:3:19", + "nodeType": "YulIdentifier", + "src": "8462:3:19" + }, + "nativeSrc": "8462:17:19", + "nodeType": "YulFunctionCall", + "src": "8462:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "8409:43:19", + "nodeType": "YulIdentifier", + "src": "8409:43:19" + }, + "nativeSrc": "8409:71:19", + "nodeType": "YulFunctionCall", + "src": "8409:71:19" + }, + "nativeSrc": "8409:71:19", + "nodeType": "YulExpressionStatement", + "src": "8409:71:19" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "8265:222:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8335:9:19", + "nodeType": "YulTypedName", + "src": "8335:9:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "8347:6:19", + "nodeType": "YulTypedName", + "src": "8347:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8358:4:19", + "nodeType": "YulTypedName", + "src": "8358:4:19", + "type": "" + } + ], + "src": "8265:222:19" + }, + { + "body": { + "nativeSrc": "8559:263:19", + "nodeType": "YulBlock", + "src": "8559:263:19", + "statements": [ + { + "body": { + "nativeSrc": "8605:83:19", + "nodeType": "YulBlock", + "src": "8605:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "8607:77:19", + "nodeType": "YulIdentifier", + "src": "8607:77:19" + }, + "nativeSrc": "8607:79:19", + "nodeType": "YulFunctionCall", + "src": "8607:79:19" + }, + "nativeSrc": "8607:79:19", + "nodeType": "YulExpressionStatement", + "src": "8607:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8580:7:19", + "nodeType": "YulIdentifier", + "src": "8580:7:19" + }, + { + "name": "headStart", + "nativeSrc": "8589:9:19", + "nodeType": "YulIdentifier", + "src": "8589:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8576:3:19", + "nodeType": "YulIdentifier", + "src": "8576:3:19" + }, + "nativeSrc": "8576:23:19", + "nodeType": "YulFunctionCall", + "src": "8576:23:19" + }, + { + "kind": "number", + "nativeSrc": "8601:2:19", + "nodeType": "YulLiteral", + "src": "8601:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8572:3:19", + "nodeType": "YulIdentifier", + "src": "8572:3:19" + }, + "nativeSrc": "8572:32:19", + "nodeType": "YulFunctionCall", + "src": "8572:32:19" + }, + "nativeSrc": "8569:119:19", + "nodeType": "YulIf", + "src": "8569:119:19" + }, + { + "nativeSrc": "8698:117:19", + "nodeType": "YulBlock", + "src": "8698:117:19", + "statements": [ + { + "nativeSrc": "8713:15:19", + "nodeType": "YulVariableDeclaration", + "src": "8713:15:19", + "value": { + "kind": "number", + "nativeSrc": "8727:1:19", + "nodeType": "YulLiteral", + "src": "8727:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8717:6:19", + "nodeType": "YulTypedName", + "src": "8717:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "8742:63:19", + "nodeType": "YulAssignment", + "src": "8742:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8777:9:19", + "nodeType": "YulIdentifier", + "src": "8777:9:19" + }, + { + "name": "offset", + "nativeSrc": "8788:6:19", + "nodeType": "YulIdentifier", + "src": "8788:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8773:3:19", + "nodeType": "YulIdentifier", + "src": "8773:3:19" + }, + "nativeSrc": "8773:22:19", + "nodeType": "YulFunctionCall", + "src": "8773:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "8797:7:19", + "nodeType": "YulIdentifier", + "src": "8797:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "8752:20:19", + "nodeType": "YulIdentifier", + "src": "8752:20:19" + }, + "nativeSrc": "8752:53:19", + "nodeType": "YulFunctionCall", + "src": "8752:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8742:6:19", + "nodeType": "YulIdentifier", + "src": "8742:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "8493:329:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8529:9:19", + "nodeType": "YulTypedName", + "src": "8529:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8540:7:19", + "nodeType": "YulTypedName", + "src": "8540:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8552:6:19", + "nodeType": "YulTypedName", + "src": "8552:6:19", + "type": "" + } + ], + "src": "8493:329:19" + }, + { + "body": { + "nativeSrc": "8868:76:19", + "nodeType": "YulBlock", + "src": "8868:76:19", + "statements": [ + { + "body": { + "nativeSrc": "8922:16:19", + "nodeType": "YulBlock", + "src": "8922:16:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8931:1:19", + "nodeType": "YulLiteral", + "src": "8931:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8934:1:19", + "nodeType": "YulLiteral", + "src": "8934:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8924:6:19", + "nodeType": "YulIdentifier", + "src": "8924:6:19" + }, + "nativeSrc": "8924:12:19", + "nodeType": "YulFunctionCall", + "src": "8924:12:19" + }, + "nativeSrc": "8924:12:19", + "nodeType": "YulExpressionStatement", + "src": "8924:12:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8891:5:19", + "nodeType": "YulIdentifier", + "src": "8891:5:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8913:5:19", + "nodeType": "YulIdentifier", + "src": "8913:5:19" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "8898:14:19", + "nodeType": "YulIdentifier", + "src": "8898:14:19" + }, + "nativeSrc": "8898:21:19", + "nodeType": "YulFunctionCall", + "src": "8898:21:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8888:2:19", + "nodeType": "YulIdentifier", + "src": "8888:2:19" + }, + "nativeSrc": "8888:32:19", + "nodeType": "YulFunctionCall", + "src": "8888:32:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8881:6:19", + "nodeType": "YulIdentifier", + "src": "8881:6:19" + }, + "nativeSrc": "8881:40:19", + "nodeType": "YulFunctionCall", + "src": "8881:40:19" + }, + "nativeSrc": "8878:60:19", + "nodeType": "YulIf", + "src": "8878:60:19" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "8828:116:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8861:5:19", + "nodeType": "YulTypedName", + "src": "8861:5:19", + "type": "" + } + ], + "src": "8828:116:19" + }, + { + "body": { + "nativeSrc": "8999:84:19", + "nodeType": "YulBlock", + "src": "8999:84:19", + "statements": [ + { + "nativeSrc": "9009:29:19", + "nodeType": "YulAssignment", + "src": "9009:29:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9031:6:19", + "nodeType": "YulIdentifier", + "src": "9031:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9018:12:19", + "nodeType": "YulIdentifier", + "src": "9018:12:19" + }, + "nativeSrc": "9018:20:19", + "nodeType": "YulFunctionCall", + "src": "9018:20:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9009:5:19", + "nodeType": "YulIdentifier", + "src": "9009:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9071:5:19", + "nodeType": "YulIdentifier", + "src": "9071:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "9047:23:19", + "nodeType": "YulIdentifier", + "src": "9047:23:19" + }, + "nativeSrc": "9047:30:19", + "nodeType": "YulFunctionCall", + "src": "9047:30:19" + }, + "nativeSrc": "9047:30:19", + "nodeType": "YulExpressionStatement", + "src": "9047:30:19" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "8950:133:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8977:6:19", + "nodeType": "YulTypedName", + "src": "8977:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8985:3:19", + "nodeType": "YulTypedName", + "src": "8985:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "8993:5:19", + "nodeType": "YulTypedName", + "src": "8993:5:19", + "type": "" + } + ], + "src": "8950:133:19" + }, + { + "body": { + "nativeSrc": "9169:388:19", + "nodeType": "YulBlock", + "src": "9169:388:19", + "statements": [ + { + "body": { + "nativeSrc": "9215:83:19", + "nodeType": "YulBlock", + "src": "9215:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9217:77:19", + "nodeType": "YulIdentifier", + "src": "9217:77:19" + }, + "nativeSrc": "9217:79:19", + "nodeType": "YulFunctionCall", + "src": "9217:79:19" + }, + "nativeSrc": "9217:79:19", + "nodeType": "YulExpressionStatement", + "src": "9217:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9190:7:19", + "nodeType": "YulIdentifier", + "src": "9190:7:19" + }, + { + "name": "headStart", + "nativeSrc": "9199:9:19", + "nodeType": "YulIdentifier", + "src": "9199:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9186:3:19", + "nodeType": "YulIdentifier", + "src": "9186:3:19" + }, + "nativeSrc": "9186:23:19", + "nodeType": "YulFunctionCall", + "src": "9186:23:19" + }, + { + "kind": "number", + "nativeSrc": "9211:2:19", + "nodeType": "YulLiteral", + "src": "9211:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9182:3:19", + "nodeType": "YulIdentifier", + "src": "9182:3:19" + }, + "nativeSrc": "9182:32:19", + "nodeType": "YulFunctionCall", + "src": "9182:32:19" + }, + "nativeSrc": "9179:119:19", + "nodeType": "YulIf", + "src": "9179:119:19" + }, + { + "nativeSrc": "9308:117:19", + "nodeType": "YulBlock", + "src": "9308:117:19", + "statements": [ + { + "nativeSrc": "9323:15:19", + "nodeType": "YulVariableDeclaration", + "src": "9323:15:19", + "value": { + "kind": "number", + "nativeSrc": "9337:1:19", + "nodeType": "YulLiteral", + "src": "9337:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9327:6:19", + "nodeType": "YulTypedName", + "src": "9327:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9352:63:19", + "nodeType": "YulAssignment", + "src": "9352:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9387:9:19", + "nodeType": "YulIdentifier", + "src": "9387:9:19" + }, + { + "name": "offset", + "nativeSrc": "9398:6:19", + "nodeType": "YulIdentifier", + "src": "9398:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9383:3:19", + "nodeType": "YulIdentifier", + "src": "9383:3:19" + }, + "nativeSrc": "9383:22:19", + "nodeType": "YulFunctionCall", + "src": "9383:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9407:7:19", + "nodeType": "YulIdentifier", + "src": "9407:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9362:20:19", + "nodeType": "YulIdentifier", + "src": "9362:20:19" + }, + "nativeSrc": "9362:53:19", + "nodeType": "YulFunctionCall", + "src": "9362:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9352:6:19", + "nodeType": "YulIdentifier", + "src": "9352:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "9435:115:19", + "nodeType": "YulBlock", + "src": "9435:115:19", + "statements": [ + { + "nativeSrc": "9450:16:19", + "nodeType": "YulVariableDeclaration", + "src": "9450:16:19", + "value": { + "kind": "number", + "nativeSrc": "9464:2:19", + "nodeType": "YulLiteral", + "src": "9464:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9454:6:19", + "nodeType": "YulTypedName", + "src": "9454:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "9480:60:19", + "nodeType": "YulAssignment", + "src": "9480:60:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9512:9:19", + "nodeType": "YulIdentifier", + "src": "9512:9:19" + }, + { + "name": "offset", + "nativeSrc": "9523:6:19", + "nodeType": "YulIdentifier", + "src": "9523:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9508:3:19", + "nodeType": "YulIdentifier", + "src": "9508:3:19" + }, + "nativeSrc": "9508:22:19", + "nodeType": "YulFunctionCall", + "src": "9508:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "9532:7:19", + "nodeType": "YulIdentifier", + "src": "9532:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "9490:17:19", + "nodeType": "YulIdentifier", + "src": "9490:17:19" + }, + "nativeSrc": "9490:50:19", + "nodeType": "YulFunctionCall", + "src": "9490:50:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9480:6:19", + "nodeType": "YulIdentifier", + "src": "9480:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "9089:468:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9131:9:19", + "nodeType": "YulTypedName", + "src": "9131:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9142:7:19", + "nodeType": "YulTypedName", + "src": "9142:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9154:6:19", + "nodeType": "YulTypedName", + "src": "9154:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9162:6:19", + "nodeType": "YulTypedName", + "src": "9162:6:19", + "type": "" + } + ], + "src": "9089:468:19" + }, + { + "body": { + "nativeSrc": "9629:241:19", + "nodeType": "YulBlock", + "src": "9629:241:19", + "statements": [ + { + "body": { + "nativeSrc": "9734:22:19", + "nodeType": "YulBlock", + "src": "9734:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "9736:16:19", + "nodeType": "YulIdentifier", + "src": "9736:16:19" + }, + "nativeSrc": "9736:18:19", + "nodeType": "YulFunctionCall", + "src": "9736:18:19" + }, + "nativeSrc": "9736:18:19", + "nodeType": "YulExpressionStatement", + "src": "9736:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9706:6:19", + "nodeType": "YulIdentifier", + "src": "9706:6:19" + }, + { + "kind": "number", + "nativeSrc": "9714:18:19", + "nodeType": "YulLiteral", + "src": "9714:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9703:2:19", + "nodeType": "YulIdentifier", + "src": "9703:2:19" + }, + "nativeSrc": "9703:30:19", + "nodeType": "YulFunctionCall", + "src": "9703:30:19" + }, + "nativeSrc": "9700:56:19", + "nodeType": "YulIf", + "src": "9700:56:19" + }, + { + "nativeSrc": "9766:37:19", + "nodeType": "YulAssignment", + "src": "9766:37:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9796:6:19", + "nodeType": "YulIdentifier", + "src": "9796:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "9774:21:19", + "nodeType": "YulIdentifier", + "src": "9774:21:19" + }, + "nativeSrc": "9774:29:19", + "nodeType": "YulFunctionCall", + "src": "9774:29:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9766:4:19", + "nodeType": "YulIdentifier", + "src": "9766:4:19" + } + ] + }, + { + "nativeSrc": "9840:23:19", + "nodeType": "YulAssignment", + "src": "9840:23:19", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "9852:4:19", + "nodeType": "YulIdentifier", + "src": "9852:4:19" + }, + { + "kind": "number", + "nativeSrc": "9858:4:19", + "nodeType": "YulLiteral", + "src": "9858:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9848:3:19", + "nodeType": "YulIdentifier", + "src": "9848:3:19" + }, + "nativeSrc": "9848:15:19", + "nodeType": "YulFunctionCall", + "src": "9848:15:19" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "9840:4:19", + "nodeType": "YulIdentifier", + "src": "9840:4:19" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9563:307:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "9613:6:19", + "nodeType": "YulTypedName", + "src": "9613:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "9624:4:19", + "nodeType": "YulTypedName", + "src": "9624:4:19", + "type": "" + } + ], + "src": "9563:307:19" + }, + { + "body": { + "nativeSrc": "9959:340:19", + "nodeType": "YulBlock", + "src": "9959:340:19", + "statements": [ + { + "nativeSrc": "9969:74:19", + "nodeType": "YulAssignment", + "src": "9969:74:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "10035:6:19", + "nodeType": "YulIdentifier", + "src": "10035:6:19" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9994:40:19", + "nodeType": "YulIdentifier", + "src": "9994:40:19" + }, + "nativeSrc": "9994:48:19", + "nodeType": "YulFunctionCall", + "src": "9994:48:19" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9978:15:19", + "nodeType": "YulIdentifier", + "src": "9978:15:19" + }, + "nativeSrc": "9978:65:19", + "nodeType": "YulFunctionCall", + "src": "9978:65:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9969:5:19", + "nodeType": "YulIdentifier", + "src": "9969:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10059:5:19", + "nodeType": "YulIdentifier", + "src": "10059:5:19" + }, + { + "name": "length", + "nativeSrc": "10066:6:19", + "nodeType": "YulIdentifier", + "src": "10066:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10052:6:19", + "nodeType": "YulIdentifier", + "src": "10052:6:19" + }, + "nativeSrc": "10052:21:19", + "nodeType": "YulFunctionCall", + "src": "10052:21:19" + }, + "nativeSrc": "10052:21:19", + "nodeType": "YulExpressionStatement", + "src": "10052:21:19" + }, + { + "nativeSrc": "10082:27:19", + "nodeType": "YulVariableDeclaration", + "src": "10082:27:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "10097:5:19", + "nodeType": "YulIdentifier", + "src": "10097:5:19" + }, + { + "kind": "number", + "nativeSrc": "10104:4:19", + "nodeType": "YulLiteral", + "src": "10104:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10093:3:19", + "nodeType": "YulIdentifier", + "src": "10093:3:19" + }, + "nativeSrc": "10093:16:19", + "nodeType": "YulFunctionCall", + "src": "10093:16:19" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "10086:3:19", + "nodeType": "YulTypedName", + "src": "10086:3:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10147:83:19", + "nodeType": "YulBlock", + "src": "10147:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "10149:77:19", + "nodeType": "YulIdentifier", + "src": "10149:77:19" + }, + "nativeSrc": "10149:79:19", + "nodeType": "YulFunctionCall", + "src": "10149:79:19" + }, + "nativeSrc": "10149:79:19", + "nodeType": "YulExpressionStatement", + "src": "10149:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "10128:3:19", + "nodeType": "YulIdentifier", + "src": "10128:3:19" + }, + { + "name": "length", + "nativeSrc": "10133:6:19", + "nodeType": "YulIdentifier", + "src": "10133:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10124:3:19", + "nodeType": "YulIdentifier", + "src": "10124:3:19" + }, + "nativeSrc": "10124:16:19", + "nodeType": "YulFunctionCall", + "src": "10124:16:19" + }, + { + "name": "end", + "nativeSrc": "10142:3:19", + "nodeType": "YulIdentifier", + "src": "10142:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10121:2:19", + "nodeType": "YulIdentifier", + "src": "10121:2:19" + }, + "nativeSrc": "10121:25:19", + "nodeType": "YulFunctionCall", + "src": "10121:25:19" + }, + "nativeSrc": "10118:112:19", + "nodeType": "YulIf", + "src": "10118:112:19" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "10276:3:19", + "nodeType": "YulIdentifier", + "src": "10276:3:19" + }, + { + "name": "dst", + "nativeSrc": "10281:3:19", + "nodeType": "YulIdentifier", + "src": "10281:3:19" + }, + { + "name": "length", + "nativeSrc": "10286:6:19", + "nodeType": "YulIdentifier", + "src": "10286:6:19" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "10239:36:19", + "nodeType": "YulIdentifier", + "src": "10239:36:19" + }, + "nativeSrc": "10239:54:19", + "nodeType": "YulFunctionCall", + "src": "10239:54:19" + }, + "nativeSrc": "10239:54:19", + "nodeType": "YulExpressionStatement", + "src": "10239:54:19" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9876:423:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "9932:3:19", + "nodeType": "YulTypedName", + "src": "9932:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "9937:6:19", + "nodeType": "YulTypedName", + "src": "9937:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9945:3:19", + "nodeType": "YulTypedName", + "src": "9945:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9953:5:19", + "nodeType": "YulTypedName", + "src": "9953:5:19", + "type": "" + } + ], + "src": "9876:423:19" + }, + { + "body": { + "nativeSrc": "10379:277:19", + "nodeType": "YulBlock", + "src": "10379:277:19", + "statements": [ + { + "body": { + "nativeSrc": "10428:83:19", + "nodeType": "YulBlock", + "src": "10428:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "10430:77:19", + "nodeType": "YulIdentifier", + "src": "10430:77:19" + }, + "nativeSrc": "10430:79:19", + "nodeType": "YulFunctionCall", + "src": "10430:79:19" + }, + "nativeSrc": "10430:79:19", + "nodeType": "YulExpressionStatement", + "src": "10430:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10407:6:19", + "nodeType": "YulIdentifier", + "src": "10407:6:19" + }, + { + "kind": "number", + "nativeSrc": "10415:4:19", + "nodeType": "YulLiteral", + "src": "10415:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10403:3:19", + "nodeType": "YulIdentifier", + "src": "10403:3:19" + }, + "nativeSrc": "10403:17:19", + "nodeType": "YulFunctionCall", + "src": "10403:17:19" + }, + { + "name": "end", + "nativeSrc": "10422:3:19", + "nodeType": "YulIdentifier", + "src": "10422:3:19" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10399:3:19", + "nodeType": "YulIdentifier", + "src": "10399:3:19" + }, + "nativeSrc": "10399:27:19", + "nodeType": "YulFunctionCall", + "src": "10399:27:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "10392:6:19", + "nodeType": "YulIdentifier", + "src": "10392:6:19" + }, + "nativeSrc": "10392:35:19", + "nodeType": "YulFunctionCall", + "src": "10392:35:19" + }, + "nativeSrc": "10389:122:19", + "nodeType": "YulIf", + "src": "10389:122:19" + }, + { + "nativeSrc": "10520:34:19", + "nodeType": "YulVariableDeclaration", + "src": "10520:34:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10547:6:19", + "nodeType": "YulIdentifier", + "src": "10547:6:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10534:12:19", + "nodeType": "YulIdentifier", + "src": "10534:12:19" + }, + "nativeSrc": "10534:20:19", + "nodeType": "YulFunctionCall", + "src": "10534:20:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "10524:6:19", + "nodeType": "YulTypedName", + "src": "10524:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10563:87:19", + "nodeType": "YulAssignment", + "src": "10563:87:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10623:6:19", + "nodeType": "YulIdentifier", + "src": "10623:6:19" + }, + { + "kind": "number", + "nativeSrc": "10631:4:19", + "nodeType": "YulLiteral", + "src": "10631:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10619:3:19", + "nodeType": "YulIdentifier", + "src": "10619:3:19" + }, + "nativeSrc": "10619:17:19", + "nodeType": "YulFunctionCall", + "src": "10619:17:19" + }, + { + "name": "length", + "nativeSrc": "10638:6:19", + "nodeType": "YulIdentifier", + "src": "10638:6:19" + }, + { + "name": "end", + "nativeSrc": "10646:3:19", + "nodeType": "YulIdentifier", + "src": "10646:3:19" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "10572:46:19", + "nodeType": "YulIdentifier", + "src": "10572:46:19" + }, + "nativeSrc": "10572:78:19", + "nodeType": "YulFunctionCall", + "src": "10572:78:19" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "10563:5:19", + "nodeType": "YulIdentifier", + "src": "10563:5:19" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "10318:338:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "10357:6:19", + "nodeType": "YulTypedName", + "src": "10357:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "10365:3:19", + "nodeType": "YulTypedName", + "src": "10365:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "10373:5:19", + "nodeType": "YulTypedName", + "src": "10373:5:19", + "type": "" + } + ], + "src": "10318:338:19" + }, + { + "body": { + "nativeSrc": "10788:817:19", + "nodeType": "YulBlock", + "src": "10788:817:19", + "statements": [ + { + "body": { + "nativeSrc": "10835:83:19", + "nodeType": "YulBlock", + "src": "10835:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "10837:77:19", + "nodeType": "YulIdentifier", + "src": "10837:77:19" + }, + "nativeSrc": "10837:79:19", + "nodeType": "YulFunctionCall", + "src": "10837:79:19" + }, + "nativeSrc": "10837:79:19", + "nodeType": "YulExpressionStatement", + "src": "10837:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10809:7:19", + "nodeType": "YulIdentifier", + "src": "10809:7:19" + }, + { + "name": "headStart", + "nativeSrc": "10818:9:19", + "nodeType": "YulIdentifier", + "src": "10818:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10805:3:19", + "nodeType": "YulIdentifier", + "src": "10805:3:19" + }, + "nativeSrc": "10805:23:19", + "nodeType": "YulFunctionCall", + "src": "10805:23:19" + }, + { + "kind": "number", + "nativeSrc": "10830:3:19", + "nodeType": "YulLiteral", + "src": "10830:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10801:3:19", + "nodeType": "YulIdentifier", + "src": "10801:3:19" + }, + "nativeSrc": "10801:33:19", + "nodeType": "YulFunctionCall", + "src": "10801:33:19" + }, + "nativeSrc": "10798:120:19", + "nodeType": "YulIf", + "src": "10798:120:19" + }, + { + "nativeSrc": "10928:117:19", + "nodeType": "YulBlock", + "src": "10928:117:19", + "statements": [ + { + "nativeSrc": "10943:15:19", + "nodeType": "YulVariableDeclaration", + "src": "10943:15:19", + "value": { + "kind": "number", + "nativeSrc": "10957:1:19", + "nodeType": "YulLiteral", + "src": "10957:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10947:6:19", + "nodeType": "YulTypedName", + "src": "10947:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "10972:63:19", + "nodeType": "YulAssignment", + "src": "10972:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11007:9:19", + "nodeType": "YulIdentifier", + "src": "11007:9:19" + }, + { + "name": "offset", + "nativeSrc": "11018:6:19", + "nodeType": "YulIdentifier", + "src": "11018:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11003:3:19", + "nodeType": "YulIdentifier", + "src": "11003:3:19" + }, + "nativeSrc": "11003:22:19", + "nodeType": "YulFunctionCall", + "src": "11003:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11027:7:19", + "nodeType": "YulIdentifier", + "src": "11027:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10982:20:19", + "nodeType": "YulIdentifier", + "src": "10982:20:19" + }, + "nativeSrc": "10982:53:19", + "nodeType": "YulFunctionCall", + "src": "10982:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10972:6:19", + "nodeType": "YulIdentifier", + "src": "10972:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11055:118:19", + "nodeType": "YulBlock", + "src": "11055:118:19", + "statements": [ + { + "nativeSrc": "11070:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11070:16:19", + "value": { + "kind": "number", + "nativeSrc": "11084:2:19", + "nodeType": "YulLiteral", + "src": "11084:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11074:6:19", + "nodeType": "YulTypedName", + "src": "11074:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11100:63:19", + "nodeType": "YulAssignment", + "src": "11100:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11135:9:19", + "nodeType": "YulIdentifier", + "src": "11135:9:19" + }, + { + "name": "offset", + "nativeSrc": "11146:6:19", + "nodeType": "YulIdentifier", + "src": "11146:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11131:3:19", + "nodeType": "YulIdentifier", + "src": "11131:3:19" + }, + "nativeSrc": "11131:22:19", + "nodeType": "YulFunctionCall", + "src": "11131:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11155:7:19", + "nodeType": "YulIdentifier", + "src": "11155:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11110:20:19", + "nodeType": "YulIdentifier", + "src": "11110:20:19" + }, + "nativeSrc": "11110:53:19", + "nodeType": "YulFunctionCall", + "src": "11110:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11100:6:19", + "nodeType": "YulIdentifier", + "src": "11100:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11183:118:19", + "nodeType": "YulBlock", + "src": "11183:118:19", + "statements": [ + { + "nativeSrc": "11198:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11198:16:19", + "value": { + "kind": "number", + "nativeSrc": "11212:2:19", + "nodeType": "YulLiteral", + "src": "11212:2:19", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11202:6:19", + "nodeType": "YulTypedName", + "src": "11202:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11228:63:19", + "nodeType": "YulAssignment", + "src": "11228:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11263:9:19", + "nodeType": "YulIdentifier", + "src": "11263:9:19" + }, + { + "name": "offset", + "nativeSrc": "11274:6:19", + "nodeType": "YulIdentifier", + "src": "11274:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11259:3:19", + "nodeType": "YulIdentifier", + "src": "11259:3:19" + }, + "nativeSrc": "11259:22:19", + "nodeType": "YulFunctionCall", + "src": "11259:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11283:7:19", + "nodeType": "YulIdentifier", + "src": "11283:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "11238:20:19", + "nodeType": "YulIdentifier", + "src": "11238:20:19" + }, + "nativeSrc": "11238:53:19", + "nodeType": "YulFunctionCall", + "src": "11238:53:19" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11228:6:19", + "nodeType": "YulIdentifier", + "src": "11228:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11311:287:19", + "nodeType": "YulBlock", + "src": "11311:287:19", + "statements": [ + { + "nativeSrc": "11326:46:19", + "nodeType": "YulVariableDeclaration", + "src": "11326:46:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11357:9:19", + "nodeType": "YulIdentifier", + "src": "11357:9:19" + }, + { + "kind": "number", + "nativeSrc": "11368:2:19", + "nodeType": "YulLiteral", + "src": "11368:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11353:3:19", + "nodeType": "YulIdentifier", + "src": "11353:3:19" + }, + "nativeSrc": "11353:18:19", + "nodeType": "YulFunctionCall", + "src": "11353:18:19" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11340:12:19", + "nodeType": "YulIdentifier", + "src": "11340:12:19" + }, + "nativeSrc": "11340:32:19", + "nodeType": "YulFunctionCall", + "src": "11340:32:19" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11330:6:19", + "nodeType": "YulTypedName", + "src": "11330:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11419:83:19", + "nodeType": "YulBlock", + "src": "11419:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "11421:77:19", + "nodeType": "YulIdentifier", + "src": "11421:77:19" + }, + "nativeSrc": "11421:79:19", + "nodeType": "YulFunctionCall", + "src": "11421:79:19" + }, + "nativeSrc": "11421:79:19", + "nodeType": "YulExpressionStatement", + "src": "11421:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11391:6:19", + "nodeType": "YulIdentifier", + "src": "11391:6:19" + }, + { + "kind": "number", + "nativeSrc": "11399:18:19", + "nodeType": "YulLiteral", + "src": "11399:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11388:2:19", + "nodeType": "YulIdentifier", + "src": "11388:2:19" + }, + "nativeSrc": "11388:30:19", + "nodeType": "YulFunctionCall", + "src": "11388:30:19" + }, + "nativeSrc": "11385:117:19", + "nodeType": "YulIf", + "src": "11385:117:19" + }, + { + "nativeSrc": "11516:72:19", + "nodeType": "YulAssignment", + "src": "11516:72:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11560:9:19", + "nodeType": "YulIdentifier", + "src": "11560:9:19" + }, + { + "name": "offset", + "nativeSrc": "11571:6:19", + "nodeType": "YulIdentifier", + "src": "11571:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11556:3:19", + "nodeType": "YulIdentifier", + "src": "11556:3:19" + }, + "nativeSrc": "11556:22:19", + "nodeType": "YulFunctionCall", + "src": "11556:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11580:7:19", + "nodeType": "YulIdentifier", + "src": "11580:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11526:29:19", + "nodeType": "YulIdentifier", + "src": "11526:29:19" + }, + "nativeSrc": "11526:62:19", + "nodeType": "YulFunctionCall", + "src": "11526:62:19" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "11516:6:19", + "nodeType": "YulIdentifier", + "src": "11516:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "10662:943:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10734:9:19", + "nodeType": "YulTypedName", + "src": "10734:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10745:7:19", + "nodeType": "YulTypedName", + "src": "10745:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10757:6:19", + "nodeType": "YulTypedName", + "src": "10757:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10765:6:19", + "nodeType": "YulTypedName", + "src": "10765:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10773:6:19", + "nodeType": "YulTypedName", + "src": "10773:6:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "10781:6:19", + "nodeType": "YulTypedName", + "src": "10781:6:19", + "type": "" + } + ], + "src": "10662:943:19" + }, + { + "body": { + "nativeSrc": "11694:391:19", + "nodeType": "YulBlock", + "src": "11694:391:19", + "statements": [ + { + "body": { + "nativeSrc": "11740:83:19", + "nodeType": "YulBlock", + "src": "11740:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11742:77:19", + "nodeType": "YulIdentifier", + "src": "11742:77:19" + }, + "nativeSrc": "11742:79:19", + "nodeType": "YulFunctionCall", + "src": "11742:79:19" + }, + "nativeSrc": "11742:79:19", + "nodeType": "YulExpressionStatement", + "src": "11742:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11715:7:19", + "nodeType": "YulIdentifier", + "src": "11715:7:19" + }, + { + "name": "headStart", + "nativeSrc": "11724:9:19", + "nodeType": "YulIdentifier", + "src": "11724:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11711:3:19", + "nodeType": "YulIdentifier", + "src": "11711:3:19" + }, + "nativeSrc": "11711:23:19", + "nodeType": "YulFunctionCall", + "src": "11711:23:19" + }, + { + "kind": "number", + "nativeSrc": "11736:2:19", + "nodeType": "YulLiteral", + "src": "11736:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11707:3:19", + "nodeType": "YulIdentifier", + "src": "11707:3:19" + }, + "nativeSrc": "11707:32:19", + "nodeType": "YulFunctionCall", + "src": "11707:32:19" + }, + "nativeSrc": "11704:119:19", + "nodeType": "YulIf", + "src": "11704:119:19" + }, + { + "nativeSrc": "11833:117:19", + "nodeType": "YulBlock", + "src": "11833:117:19", + "statements": [ + { + "nativeSrc": "11848:15:19", + "nodeType": "YulVariableDeclaration", + "src": "11848:15:19", + "value": { + "kind": "number", + "nativeSrc": "11862:1:19", + "nodeType": "YulLiteral", + "src": "11862:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11852:6:19", + "nodeType": "YulTypedName", + "src": "11852:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "11877:63:19", + "nodeType": "YulAssignment", + "src": "11877:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11912:9:19", + "nodeType": "YulIdentifier", + "src": "11912:9:19" + }, + { + "name": "offset", + "nativeSrc": "11923:6:19", + "nodeType": "YulIdentifier", + "src": "11923:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11908:3:19", + "nodeType": "YulIdentifier", + "src": "11908:3:19" + }, + "nativeSrc": "11908:22:19", + "nodeType": "YulFunctionCall", + "src": "11908:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "11932:7:19", + "nodeType": "YulIdentifier", + "src": "11932:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11887:20:19", + "nodeType": "YulIdentifier", + "src": "11887:20:19" + }, + "nativeSrc": "11887:53:19", + "nodeType": "YulFunctionCall", + "src": "11887:53:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11877:6:19", + "nodeType": "YulIdentifier", + "src": "11877:6:19" + } + ] + } + ] + }, + { + "nativeSrc": "11960:118:19", + "nodeType": "YulBlock", + "src": "11960:118:19", + "statements": [ + { + "nativeSrc": "11975:16:19", + "nodeType": "YulVariableDeclaration", + "src": "11975:16:19", + "value": { + "kind": "number", + "nativeSrc": "11989:2:19", + "nodeType": "YulLiteral", + "src": "11989:2:19", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11979:6:19", + "nodeType": "YulTypedName", + "src": "11979:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "12005:63:19", + "nodeType": "YulAssignment", + "src": "12005:63:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12040:9:19", + "nodeType": "YulIdentifier", + "src": "12040:9:19" + }, + { + "name": "offset", + "nativeSrc": "12051:6:19", + "nodeType": "YulIdentifier", + "src": "12051:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12036:3:19", + "nodeType": "YulIdentifier", + "src": "12036:3:19" + }, + "nativeSrc": "12036:22:19", + "nodeType": "YulFunctionCall", + "src": "12036:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "12060:7:19", + "nodeType": "YulIdentifier", + "src": "12060:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12015:20:19", + "nodeType": "YulIdentifier", + "src": "12015:20:19" + }, + "nativeSrc": "12015:53:19", + "nodeType": "YulFunctionCall", + "src": "12015:53:19" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12005:6:19", + "nodeType": "YulIdentifier", + "src": "12005:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "11611:474:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11656:9:19", + "nodeType": "YulTypedName", + "src": "11656:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11667:7:19", + "nodeType": "YulTypedName", + "src": "11667:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11679:6:19", + "nodeType": "YulTypedName", + "src": "11679:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11687:6:19", + "nodeType": "YulTypedName", + "src": "11687:6:19", + "type": "" + } + ], + "src": "11611:474:19" + }, + { + "body": { + "nativeSrc": "12119:152:19", + "nodeType": "YulBlock", + "src": "12119:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12136:1:19", + "nodeType": "YulLiteral", + "src": "12136:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12139:77:19", + "nodeType": "YulLiteral", + "src": "12139:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12129:6:19", + "nodeType": "YulIdentifier", + "src": "12129:6:19" + }, + "nativeSrc": "12129:88:19", + "nodeType": "YulFunctionCall", + "src": "12129:88:19" + }, + "nativeSrc": "12129:88:19", + "nodeType": "YulExpressionStatement", + "src": "12129:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12233:1:19", + "nodeType": "YulLiteral", + "src": "12233:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12236:4:19", + "nodeType": "YulLiteral", + "src": "12236:4:19", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12226:6:19", + "nodeType": "YulIdentifier", + "src": "12226:6:19" + }, + "nativeSrc": "12226:15:19", + "nodeType": "YulFunctionCall", + "src": "12226:15:19" + }, + "nativeSrc": "12226:15:19", + "nodeType": "YulExpressionStatement", + "src": "12226:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12257:1:19", + "nodeType": "YulLiteral", + "src": "12257:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12260:4:19", + "nodeType": "YulLiteral", + "src": "12260:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12250:6:19", + "nodeType": "YulIdentifier", + "src": "12250:6:19" + }, + "nativeSrc": "12250:15:19", + "nodeType": "YulFunctionCall", + "src": "12250:15:19" + }, + "nativeSrc": "12250:15:19", + "nodeType": "YulExpressionStatement", + "src": "12250:15:19" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "12091:180:19", + "nodeType": "YulFunctionDefinition", + "src": "12091:180:19" + }, + { + "body": { + "nativeSrc": "12328:269:19", + "nodeType": "YulBlock", + "src": "12328:269:19", + "statements": [ + { + "nativeSrc": "12338:22:19", + "nodeType": "YulAssignment", + "src": "12338:22:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12352:4:19", + "nodeType": "YulIdentifier", + "src": "12352:4:19" + }, + { + "kind": "number", + "nativeSrc": "12358:1:19", + "nodeType": "YulLiteral", + "src": "12358:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "12348:3:19", + "nodeType": "YulIdentifier", + "src": "12348:3:19" + }, + "nativeSrc": "12348:12:19", + "nodeType": "YulFunctionCall", + "src": "12348:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12338:6:19", + "nodeType": "YulIdentifier", + "src": "12338:6:19" + } + ] + }, + { + "nativeSrc": "12369:38:19", + "nodeType": "YulVariableDeclaration", + "src": "12369:38:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "12399:4:19", + "nodeType": "YulIdentifier", + "src": "12399:4:19" + }, + { + "kind": "number", + "nativeSrc": "12405:1:19", + "nodeType": "YulLiteral", + "src": "12405:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12395:3:19", + "nodeType": "YulIdentifier", + "src": "12395:3:19" + }, + "nativeSrc": "12395:12:19", + "nodeType": "YulFunctionCall", + "src": "12395:12:19" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12373:18:19", + "nodeType": "YulTypedName", + "src": "12373:18:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12446:51:19", + "nodeType": "YulBlock", + "src": "12446:51:19", + "statements": [ + { + "nativeSrc": "12460:27:19", + "nodeType": "YulAssignment", + "src": "12460:27:19", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12474:6:19", + "nodeType": "YulIdentifier", + "src": "12474:6:19" + }, + { + "kind": "number", + "nativeSrc": "12482:4:19", + "nodeType": "YulLiteral", + "src": "12482:4:19", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12470:3:19", + "nodeType": "YulIdentifier", + "src": "12470:3:19" + }, + "nativeSrc": "12470:17:19", + "nodeType": "YulFunctionCall", + "src": "12470:17:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12460:6:19", + "nodeType": "YulIdentifier", + "src": "12460:6:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12426:18:19", + "nodeType": "YulIdentifier", + "src": "12426:18:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12419:6:19", + "nodeType": "YulIdentifier", + "src": "12419:6:19" + }, + "nativeSrc": "12419:26:19", + "nodeType": "YulFunctionCall", + "src": "12419:26:19" + }, + "nativeSrc": "12416:81:19", + "nodeType": "YulIf", + "src": "12416:81:19" + }, + { + "body": { + "nativeSrc": "12549:42:19", + "nodeType": "YulBlock", + "src": "12549:42:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "12563:16:19", + "nodeType": "YulIdentifier", + "src": "12563:16:19" + }, + "nativeSrc": "12563:18:19", + "nodeType": "YulFunctionCall", + "src": "12563:18:19" + }, + "nativeSrc": "12563:18:19", + "nodeType": "YulExpressionStatement", + "src": "12563:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "12513:18:19", + "nodeType": "YulIdentifier", + "src": "12513:18:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12536:6:19", + "nodeType": "YulIdentifier", + "src": "12536:6:19" + }, + { + "kind": "number", + "nativeSrc": "12544:2:19", + "nodeType": "YulLiteral", + "src": "12544:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12533:2:19", + "nodeType": "YulIdentifier", + "src": "12533:2:19" + }, + "nativeSrc": "12533:14:19", + "nodeType": "YulFunctionCall", + "src": "12533:14:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "12510:2:19", + "nodeType": "YulIdentifier", + "src": "12510:2:19" + }, + "nativeSrc": "12510:38:19", + "nodeType": "YulFunctionCall", + "src": "12510:38:19" + }, + "nativeSrc": "12507:84:19", + "nodeType": "YulIf", + "src": "12507:84:19" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "12277:320:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "12312:4:19", + "nodeType": "YulTypedName", + "src": "12312:4:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "12321:6:19", + "nodeType": "YulTypedName", + "src": "12321:6:19", + "type": "" + } + ], + "src": "12277:320:19" + }, + { + "body": { + "nativeSrc": "12709:73:19", + "nodeType": "YulBlock", + "src": "12709:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12731:6:19", + "nodeType": "YulIdentifier", + "src": "12731:6:19" + }, + { + "kind": "number", + "nativeSrc": "12739:1:19", + "nodeType": "YulLiteral", + "src": "12739:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12727:3:19", + "nodeType": "YulIdentifier", + "src": "12727:3:19" + }, + "nativeSrc": "12727:14:19", + "nodeType": "YulFunctionCall", + "src": "12727:14:19" + }, + { + "hexValue": "302e3030303120657468657220726571756972656420746f206d696e74", + "kind": "string", + "nativeSrc": "12743:31:19", + "nodeType": "YulLiteral", + "src": "12743:31:19", + "type": "", + "value": "0.0001 ether required to mint" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12720:6:19", + "nodeType": "YulIdentifier", + "src": "12720:6:19" + }, + "nativeSrc": "12720:55:19", + "nodeType": "YulFunctionCall", + "src": "12720:55:19" + }, + "nativeSrc": "12720:55:19", + "nodeType": "YulExpressionStatement", + "src": "12720:55:19" + } + ] + }, + "name": "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "nativeSrc": "12603:179:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "12701:6:19", + "nodeType": "YulTypedName", + "src": "12701:6:19", + "type": "" + } + ], + "src": "12603:179:19" + }, + { + "body": { + "nativeSrc": "12934:220:19", + "nodeType": "YulBlock", + "src": "12934:220:19", + "statements": [ + { + "nativeSrc": "12944:74:19", + "nodeType": "YulAssignment", + "src": "12944:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13010:3:19", + "nodeType": "YulIdentifier", + "src": "13010:3:19" + }, + { + "kind": "number", + "nativeSrc": "13015:2:19", + "nodeType": "YulLiteral", + "src": "13015:2:19", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "12951:58:19", + "nodeType": "YulIdentifier", + "src": "12951:58:19" + }, + "nativeSrc": "12951:67:19", + "nodeType": "YulFunctionCall", + "src": "12951:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12944:3:19", + "nodeType": "YulIdentifier", + "src": "12944:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13116:3:19", + "nodeType": "YulIdentifier", + "src": "13116:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b", + "nativeSrc": "13027:88:19", + "nodeType": "YulIdentifier", + "src": "13027:88:19" + }, + "nativeSrc": "13027:93:19", + "nodeType": "YulFunctionCall", + "src": "13027:93:19" + }, + "nativeSrc": "13027:93:19", + "nodeType": "YulExpressionStatement", + "src": "13027:93:19" + }, + { + "nativeSrc": "13129:19:19", + "nodeType": "YulAssignment", + "src": "13129:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13140:3:19", + "nodeType": "YulIdentifier", + "src": "13140:3:19" + }, + { + "kind": "number", + "nativeSrc": "13145:2:19", + "nodeType": "YulLiteral", + "src": "13145:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13136:3:19", + "nodeType": "YulIdentifier", + "src": "13136:3:19" + }, + "nativeSrc": "13136:12:19", + "nodeType": "YulFunctionCall", + "src": "13136:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13129:3:19", + "nodeType": "YulIdentifier", + "src": "13129:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12788:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "12922:3:19", + "nodeType": "YulTypedName", + "src": "12922:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "12930:3:19", + "nodeType": "YulTypedName", + "src": "12930:3:19", + "type": "" + } + ], + "src": "12788:366:19" + }, + { + "body": { + "nativeSrc": "13331:248:19", + "nodeType": "YulBlock", + "src": "13331:248:19", + "statements": [ + { + "nativeSrc": "13341:26:19", + "nodeType": "YulAssignment", + "src": "13341:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13353:9:19", + "nodeType": "YulIdentifier", + "src": "13353:9:19" + }, + { + "kind": "number", + "nativeSrc": "13364:2:19", + "nodeType": "YulLiteral", + "src": "13364:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13349:3:19", + "nodeType": "YulIdentifier", + "src": "13349:3:19" + }, + "nativeSrc": "13349:18:19", + "nodeType": "YulFunctionCall", + "src": "13349:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13341:4:19", + "nodeType": "YulIdentifier", + "src": "13341:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13388:9:19", + "nodeType": "YulIdentifier", + "src": "13388:9:19" + }, + { + "kind": "number", + "nativeSrc": "13399:1:19", + "nodeType": "YulLiteral", + "src": "13399:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13384:3:19", + "nodeType": "YulIdentifier", + "src": "13384:3:19" + }, + "nativeSrc": "13384:17:19", + "nodeType": "YulFunctionCall", + "src": "13384:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13407:4:19", + "nodeType": "YulIdentifier", + "src": "13407:4:19" + }, + { + "name": "headStart", + "nativeSrc": "13413:9:19", + "nodeType": "YulIdentifier", + "src": "13413:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13403:3:19", + "nodeType": "YulIdentifier", + "src": "13403:3:19" + }, + "nativeSrc": "13403:20:19", + "nodeType": "YulFunctionCall", + "src": "13403:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13377:6:19", + "nodeType": "YulIdentifier", + "src": "13377:6:19" + }, + "nativeSrc": "13377:47:19", + "nodeType": "YulFunctionCall", + "src": "13377:47:19" + }, + "nativeSrc": "13377:47:19", + "nodeType": "YulExpressionStatement", + "src": "13377:47:19" + }, + { + "nativeSrc": "13433:139:19", + "nodeType": "YulAssignment", + "src": "13433:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13567:4:19", + "nodeType": "YulIdentifier", + "src": "13567:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13441:124:19", + "nodeType": "YulIdentifier", + "src": "13441:124:19" + }, + "nativeSrc": "13441:131:19", + "nodeType": "YulFunctionCall", + "src": "13441:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13433:4:19", + "nodeType": "YulIdentifier", + "src": "13433:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13160:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13311:9:19", + "nodeType": "YulTypedName", + "src": "13311:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13326:4:19", + "nodeType": "YulTypedName", + "src": "13326:4:19", + "type": "" + } + ], + "src": "13160:419:19" + }, + { + "body": { + "nativeSrc": "13613:152:19", + "nodeType": "YulBlock", + "src": "13613:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13630:1:19", + "nodeType": "YulLiteral", + "src": "13630:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13633:77:19", + "nodeType": "YulLiteral", + "src": "13633:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13623:6:19", + "nodeType": "YulIdentifier", + "src": "13623:6:19" + }, + "nativeSrc": "13623:88:19", + "nodeType": "YulFunctionCall", + "src": "13623:88:19" + }, + "nativeSrc": "13623:88:19", + "nodeType": "YulExpressionStatement", + "src": "13623:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13727:1:19", + "nodeType": "YulLiteral", + "src": "13727:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "13730:4:19", + "nodeType": "YulLiteral", + "src": "13730:4:19", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13720:6:19", + "nodeType": "YulIdentifier", + "src": "13720:6:19" + }, + "nativeSrc": "13720:15:19", + "nodeType": "YulFunctionCall", + "src": "13720:15:19" + }, + "nativeSrc": "13720:15:19", + "nodeType": "YulExpressionStatement", + "src": "13720:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13751:1:19", + "nodeType": "YulLiteral", + "src": "13751:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13754:4:19", + "nodeType": "YulLiteral", + "src": "13754:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13744:6:19", + "nodeType": "YulIdentifier", + "src": "13744:6:19" + }, + "nativeSrc": "13744:15:19", + "nodeType": "YulFunctionCall", + "src": "13744:15:19" + }, + "nativeSrc": "13744:15:19", + "nodeType": "YulExpressionStatement", + "src": "13744:15:19" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "13585:180:19", + "nodeType": "YulFunctionDefinition", + "src": "13585:180:19" + }, + { + "body": { + "nativeSrc": "13814:190:19", + "nodeType": "YulBlock", + "src": "13814:190:19", + "statements": [ + { + "nativeSrc": "13824:33:19", + "nodeType": "YulAssignment", + "src": "13824:33:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13851:5:19", + "nodeType": "YulIdentifier", + "src": "13851:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "13833:17:19", + "nodeType": "YulIdentifier", + "src": "13833:17:19" + }, + "nativeSrc": "13833:24:19", + "nodeType": "YulFunctionCall", + "src": "13833:24:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13824:5:19", + "nodeType": "YulIdentifier", + "src": "13824:5:19" + } + ] + }, + { + "body": { + "nativeSrc": "13947:22:19", + "nodeType": "YulBlock", + "src": "13947:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "13949:16:19", + "nodeType": "YulIdentifier", + "src": "13949:16:19" + }, + "nativeSrc": "13949:18:19", + "nodeType": "YulFunctionCall", + "src": "13949:18:19" + }, + "nativeSrc": "13949:18:19", + "nodeType": "YulExpressionStatement", + "src": "13949:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13872:5:19", + "nodeType": "YulIdentifier", + "src": "13872:5:19" + }, + { + "kind": "number", + "nativeSrc": "13879:66:19", + "nodeType": "YulLiteral", + "src": "13879:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "13869:2:19", + "nodeType": "YulIdentifier", + "src": "13869:2:19" + }, + "nativeSrc": "13869:77:19", + "nodeType": "YulFunctionCall", + "src": "13869:77:19" + }, + "nativeSrc": "13866:103:19", + "nodeType": "YulIf", + "src": "13866:103:19" + }, + { + "nativeSrc": "13978:20:19", + "nodeType": "YulAssignment", + "src": "13978:20:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13989:5:19", + "nodeType": "YulIdentifier", + "src": "13989:5:19" + }, + { + "kind": "number", + "nativeSrc": "13996:1:19", + "nodeType": "YulLiteral", + "src": "13996:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13985:3:19", + "nodeType": "YulIdentifier", + "src": "13985:3:19" + }, + "nativeSrc": "13985:13:19", + "nodeType": "YulFunctionCall", + "src": "13985:13:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "13978:3:19", + "nodeType": "YulIdentifier", + "src": "13978:3:19" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "13771:233:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "13800:5:19", + "nodeType": "YulTypedName", + "src": "13800:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "13810:3:19", + "nodeType": "YulTypedName", + "src": "13810:3:19", + "type": "" + } + ], + "src": "13771:233:19" + }, + { + "body": { + "nativeSrc": "14164:288:19", + "nodeType": "YulBlock", + "src": "14164:288:19", + "statements": [ + { + "nativeSrc": "14174:26:19", + "nodeType": "YulAssignment", + "src": "14174:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14186:9:19", + "nodeType": "YulIdentifier", + "src": "14186:9:19" + }, + { + "kind": "number", + "nativeSrc": "14197:2:19", + "nodeType": "YulLiteral", + "src": "14197:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14182:3:19", + "nodeType": "YulIdentifier", + "src": "14182:3:19" + }, + "nativeSrc": "14182:18:19", + "nodeType": "YulFunctionCall", + "src": "14182:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14174:4:19", + "nodeType": "YulIdentifier", + "src": "14174:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14254:6:19", + "nodeType": "YulIdentifier", + "src": "14254:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14267:9:19", + "nodeType": "YulIdentifier", + "src": "14267:9:19" + }, + { + "kind": "number", + "nativeSrc": "14278:1:19", + "nodeType": "YulLiteral", + "src": "14278:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14263:3:19", + "nodeType": "YulIdentifier", + "src": "14263:3:19" + }, + "nativeSrc": "14263:17:19", + "nodeType": "YulFunctionCall", + "src": "14263:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "14210:43:19", + "nodeType": "YulIdentifier", + "src": "14210:43:19" + }, + "nativeSrc": "14210:71:19", + "nodeType": "YulFunctionCall", + "src": "14210:71:19" + }, + "nativeSrc": "14210:71:19", + "nodeType": "YulExpressionStatement", + "src": "14210:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "14335:6:19", + "nodeType": "YulIdentifier", + "src": "14335:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14348:9:19", + "nodeType": "YulIdentifier", + "src": "14348:9:19" + }, + { + "kind": "number", + "nativeSrc": "14359:2:19", + "nodeType": "YulLiteral", + "src": "14359:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14344:3:19", + "nodeType": "YulIdentifier", + "src": "14344:3:19" + }, + "nativeSrc": "14344:18:19", + "nodeType": "YulFunctionCall", + "src": "14344:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "14291:43:19", + "nodeType": "YulIdentifier", + "src": "14291:43:19" + }, + "nativeSrc": "14291:72:19", + "nodeType": "YulFunctionCall", + "src": "14291:72:19" + }, + "nativeSrc": "14291:72:19", + "nodeType": "YulExpressionStatement", + "src": "14291:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "14417:6:19", + "nodeType": "YulIdentifier", + "src": "14417:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14430:9:19", + "nodeType": "YulIdentifier", + "src": "14430:9:19" + }, + { + "kind": "number", + "nativeSrc": "14441:2:19", + "nodeType": "YulLiteral", + "src": "14441:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14426:3:19", + "nodeType": "YulIdentifier", + "src": "14426:3:19" + }, + "nativeSrc": "14426:18:19", + "nodeType": "YulFunctionCall", + "src": "14426:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "14373:43:19", + "nodeType": "YulIdentifier", + "src": "14373:43:19" + }, + "nativeSrc": "14373:72:19", + "nodeType": "YulFunctionCall", + "src": "14373:72:19" + }, + "nativeSrc": "14373:72:19", + "nodeType": "YulExpressionStatement", + "src": "14373:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "14010:442:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14120:9:19", + "nodeType": "YulTypedName", + "src": "14120:9:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "14132:6:19", + "nodeType": "YulTypedName", + "src": "14132:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "14140:6:19", + "nodeType": "YulTypedName", + "src": "14140:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14148:6:19", + "nodeType": "YulTypedName", + "src": "14148:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14159:4:19", + "nodeType": "YulTypedName", + "src": "14159:4:19", + "type": "" + } + ], + "src": "14010:442:19" + }, + { + "body": { + "nativeSrc": "14564:62:19", + "nodeType": "YulBlock", + "src": "14564:62:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14586:6:19", + "nodeType": "YulIdentifier", + "src": "14586:6:19" + }, + { + "kind": "number", + "nativeSrc": "14594:1:19", + "nodeType": "YulLiteral", + "src": "14594:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14582:3:19", + "nodeType": "YulIdentifier", + "src": "14582:3:19" + }, + "nativeSrc": "14582:14:19", + "nodeType": "YulFunctionCall", + "src": "14582:14:19" + }, + { + "hexValue": "4e6f2066756e647320617661696c61626c65", + "kind": "string", + "nativeSrc": "14598:20:19", + "nodeType": "YulLiteral", + "src": "14598:20:19", + "type": "", + "value": "No funds available" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14575:6:19", + "nodeType": "YulIdentifier", + "src": "14575:6:19" + }, + "nativeSrc": "14575:44:19", + "nodeType": "YulFunctionCall", + "src": "14575:44:19" + }, + "nativeSrc": "14575:44:19", + "nodeType": "YulExpressionStatement", + "src": "14575:44:19" + } + ] + }, + "name": "store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "nativeSrc": "14458:168:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "14556:6:19", + "nodeType": "YulTypedName", + "src": "14556:6:19", + "type": "" + } + ], + "src": "14458:168:19" + }, + { + "body": { + "nativeSrc": "14778:220:19", + "nodeType": "YulBlock", + "src": "14778:220:19", + "statements": [ + { + "nativeSrc": "14788:74:19", + "nodeType": "YulAssignment", + "src": "14788:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14854:3:19", + "nodeType": "YulIdentifier", + "src": "14854:3:19" + }, + { + "kind": "number", + "nativeSrc": "14859:2:19", + "nodeType": "YulLiteral", + "src": "14859:2:19", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "14795:58:19", + "nodeType": "YulIdentifier", + "src": "14795:58:19" + }, + "nativeSrc": "14795:67:19", + "nodeType": "YulFunctionCall", + "src": "14795:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14788:3:19", + "nodeType": "YulIdentifier", + "src": "14788:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14960:3:19", + "nodeType": "YulIdentifier", + "src": "14960:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1", + "nativeSrc": "14871:88:19", + "nodeType": "YulIdentifier", + "src": "14871:88:19" + }, + "nativeSrc": "14871:93:19", + "nodeType": "YulFunctionCall", + "src": "14871:93:19" + }, + "nativeSrc": "14871:93:19", + "nodeType": "YulExpressionStatement", + "src": "14871:93:19" + }, + { + "nativeSrc": "14973:19:19", + "nodeType": "YulAssignment", + "src": "14973:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14984:3:19", + "nodeType": "YulIdentifier", + "src": "14984:3:19" + }, + { + "kind": "number", + "nativeSrc": "14989:2:19", + "nodeType": "YulLiteral", + "src": "14989:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14980:3:19", + "nodeType": "YulIdentifier", + "src": "14980:3:19" + }, + "nativeSrc": "14980:12:19", + "nodeType": "YulFunctionCall", + "src": "14980:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14973:3:19", + "nodeType": "YulIdentifier", + "src": "14973:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack", + "nativeSrc": "14632:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14766:3:19", + "nodeType": "YulTypedName", + "src": "14766:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14774:3:19", + "nodeType": "YulTypedName", + "src": "14774:3:19", + "type": "" + } + ], + "src": "14632:366:19" + }, + { + "body": { + "nativeSrc": "15175:248:19", + "nodeType": "YulBlock", + "src": "15175:248:19", + "statements": [ + { + "nativeSrc": "15185:26:19", + "nodeType": "YulAssignment", + "src": "15185:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15197:9:19", + "nodeType": "YulIdentifier", + "src": "15197:9:19" + }, + { + "kind": "number", + "nativeSrc": "15208:2:19", + "nodeType": "YulLiteral", + "src": "15208:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15193:3:19", + "nodeType": "YulIdentifier", + "src": "15193:3:19" + }, + "nativeSrc": "15193:18:19", + "nodeType": "YulFunctionCall", + "src": "15193:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15185:4:19", + "nodeType": "YulIdentifier", + "src": "15185:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15232:9:19", + "nodeType": "YulIdentifier", + "src": "15232:9:19" + }, + { + "kind": "number", + "nativeSrc": "15243:1:19", + "nodeType": "YulLiteral", + "src": "15243:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15228:3:19", + "nodeType": "YulIdentifier", + "src": "15228:3:19" + }, + "nativeSrc": "15228:17:19", + "nodeType": "YulFunctionCall", + "src": "15228:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15251:4:19", + "nodeType": "YulIdentifier", + "src": "15251:4:19" + }, + { + "name": "headStart", + "nativeSrc": "15257:9:19", + "nodeType": "YulIdentifier", + "src": "15257:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15247:3:19", + "nodeType": "YulIdentifier", + "src": "15247:3:19" + }, + "nativeSrc": "15247:20:19", + "nodeType": "YulFunctionCall", + "src": "15247:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15221:6:19", + "nodeType": "YulIdentifier", + "src": "15221:6:19" + }, + "nativeSrc": "15221:47:19", + "nodeType": "YulFunctionCall", + "src": "15221:47:19" + }, + "nativeSrc": "15221:47:19", + "nodeType": "YulExpressionStatement", + "src": "15221:47:19" + }, + { + "nativeSrc": "15277:139:19", + "nodeType": "YulAssignment", + "src": "15277:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15411:4:19", + "nodeType": "YulIdentifier", + "src": "15411:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack", + "nativeSrc": "15285:124:19", + "nodeType": "YulIdentifier", + "src": "15285:124:19" + }, + "nativeSrc": "15285:131:19", + "nodeType": "YulFunctionCall", + "src": "15285:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15277:4:19", + "nodeType": "YulIdentifier", + "src": "15277:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "15004:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15155:9:19", + "nodeType": "YulTypedName", + "src": "15155:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15170:4:19", + "nodeType": "YulTypedName", + "src": "15170:4:19", + "type": "" + } + ], + "src": "15004:419:19" + }, + { + "body": { + "nativeSrc": "15542:34:19", + "nodeType": "YulBlock", + "src": "15542:34:19", + "statements": [ + { + "nativeSrc": "15552:18:19", + "nodeType": "YulAssignment", + "src": "15552:18:19", + "value": { + "name": "pos", + "nativeSrc": "15567:3:19", + "nodeType": "YulIdentifier", + "src": "15567:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "15552:11:19", + "nodeType": "YulIdentifier", + "src": "15552:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15429:147:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15514:3:19", + "nodeType": "YulTypedName", + "src": "15514:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "15519:6:19", + "nodeType": "YulTypedName", + "src": "15519:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "15530:11:19", + "nodeType": "YulTypedName", + "src": "15530:11:19", + "type": "" + } + ], + "src": "15429:147:19" + }, + { + "body": { + "nativeSrc": "15688:8:19", + "nodeType": "YulBlock", + "src": "15688:8:19", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15582:114:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "15680:6:19", + "nodeType": "YulTypedName", + "src": "15680:6:19", + "type": "" + } + ], + "src": "15582:114:19" + }, + { + "body": { + "nativeSrc": "15865:235:19", + "nodeType": "YulBlock", + "src": "15865:235:19", + "statements": [ + { + "nativeSrc": "15875:90:19", + "nodeType": "YulAssignment", + "src": "15875:90:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15958:3:19", + "nodeType": "YulIdentifier", + "src": "15958:3:19" + }, + { + "kind": "number", + "nativeSrc": "15963:1:19", + "nodeType": "YulLiteral", + "src": "15963:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15882:75:19", + "nodeType": "YulIdentifier", + "src": "15882:75:19" + }, + "nativeSrc": "15882:83:19", + "nodeType": "YulFunctionCall", + "src": "15882:83:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15875:3:19", + "nodeType": "YulIdentifier", + "src": "15875:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16063:3:19", + "nodeType": "YulIdentifier", + "src": "16063:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15974:88:19", + "nodeType": "YulIdentifier", + "src": "15974:88:19" + }, + "nativeSrc": "15974:93:19", + "nodeType": "YulFunctionCall", + "src": "15974:93:19" + }, + "nativeSrc": "15974:93:19", + "nodeType": "YulExpressionStatement", + "src": "15974:93:19" + }, + { + "nativeSrc": "16076:18:19", + "nodeType": "YulAssignment", + "src": "16076:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16087:3:19", + "nodeType": "YulIdentifier", + "src": "16087:3:19" + }, + { + "kind": "number", + "nativeSrc": "16092:1:19", + "nodeType": "YulLiteral", + "src": "16092:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16083:3:19", + "nodeType": "YulIdentifier", + "src": "16083:3:19" + }, + "nativeSrc": "16083:11:19", + "nodeType": "YulFunctionCall", + "src": "16083:11:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16076:3:19", + "nodeType": "YulIdentifier", + "src": "16076:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15702:398:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15853:3:19", + "nodeType": "YulTypedName", + "src": "15853:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15861:3:19", + "nodeType": "YulTypedName", + "src": "15861:3:19", + "type": "" + } + ], + "src": "15702:398:19" + }, + { + "body": { + "nativeSrc": "16294:191:19", + "nodeType": "YulBlock", + "src": "16294:191:19", + "statements": [ + { + "nativeSrc": "16305:154:19", + "nodeType": "YulAssignment", + "src": "16305:154:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16455:3:19", + "nodeType": "YulIdentifier", + "src": "16455:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "16312:141:19", + "nodeType": "YulIdentifier", + "src": "16312:141:19" + }, + "nativeSrc": "16312:147:19", + "nodeType": "YulFunctionCall", + "src": "16312:147:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16305:3:19", + "nodeType": "YulIdentifier", + "src": "16305:3:19" + } + ] + }, + { + "nativeSrc": "16469:10:19", + "nodeType": "YulAssignment", + "src": "16469:10:19", + "value": { + "name": "pos", + "nativeSrc": "16476:3:19", + "nodeType": "YulIdentifier", + "src": "16476:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16469:3:19", + "nodeType": "YulIdentifier", + "src": "16469:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "16106:379:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16281:3:19", + "nodeType": "YulTypedName", + "src": "16281:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16290:3:19", + "nodeType": "YulTypedName", + "src": "16290:3:19", + "type": "" + } + ], + "src": "16106:379:19" + }, + { + "body": { + "nativeSrc": "16597:61:19", + "nodeType": "YulBlock", + "src": "16597:61:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16619:6:19", + "nodeType": "YulIdentifier", + "src": "16619:6:19" + }, + { + "kind": "number", + "nativeSrc": "16627:1:19", + "nodeType": "YulLiteral", + "src": "16627:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16615:3:19", + "nodeType": "YulIdentifier", + "src": "16615:3:19" + }, + "nativeSrc": "16615:14:19", + "nodeType": "YulFunctionCall", + "src": "16615:14:19" + }, + { + "hexValue": "5769746864726177616c206661696c6564", + "kind": "string", + "nativeSrc": "16631:19:19", + "nodeType": "YulLiteral", + "src": "16631:19:19", + "type": "", + "value": "Withdrawal failed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16608:6:19", + "nodeType": "YulIdentifier", + "src": "16608:6:19" + }, + "nativeSrc": "16608:43:19", + "nodeType": "YulFunctionCall", + "src": "16608:43:19" + }, + "nativeSrc": "16608:43:19", + "nodeType": "YulExpressionStatement", + "src": "16608:43:19" + } + ] + }, + "name": "store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "nativeSrc": "16491:167:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "16589:6:19", + "nodeType": "YulTypedName", + "src": "16589:6:19", + "type": "" + } + ], + "src": "16491:167:19" + }, + { + "body": { + "nativeSrc": "16810:220:19", + "nodeType": "YulBlock", + "src": "16810:220:19", + "statements": [ + { + "nativeSrc": "16820:74:19", + "nodeType": "YulAssignment", + "src": "16820:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16886:3:19", + "nodeType": "YulIdentifier", + "src": "16886:3:19" + }, + { + "kind": "number", + "nativeSrc": "16891:2:19", + "nodeType": "YulLiteral", + "src": "16891:2:19", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "16827:58:19", + "nodeType": "YulIdentifier", + "src": "16827:58:19" + }, + "nativeSrc": "16827:67:19", + "nodeType": "YulFunctionCall", + "src": "16827:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16820:3:19", + "nodeType": "YulIdentifier", + "src": "16820:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16992:3:19", + "nodeType": "YulIdentifier", + "src": "16992:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88", + "nativeSrc": "16903:88:19", + "nodeType": "YulIdentifier", + "src": "16903:88:19" + }, + "nativeSrc": "16903:93:19", + "nodeType": "YulFunctionCall", + "src": "16903:93:19" + }, + "nativeSrc": "16903:93:19", + "nodeType": "YulExpressionStatement", + "src": "16903:93:19" + }, + { + "nativeSrc": "17005:19:19", + "nodeType": "YulAssignment", + "src": "17005:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17016:3:19", + "nodeType": "YulIdentifier", + "src": "17016:3:19" + }, + { + "kind": "number", + "nativeSrc": "17021:2:19", + "nodeType": "YulLiteral", + "src": "17021:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17012:3:19", + "nodeType": "YulIdentifier", + "src": "17012:3:19" + }, + "nativeSrc": "17012:12:19", + "nodeType": "YulFunctionCall", + "src": "17012:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "17005:3:19", + "nodeType": "YulIdentifier", + "src": "17005:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack", + "nativeSrc": "16664:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16798:3:19", + "nodeType": "YulTypedName", + "src": "16798:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16806:3:19", + "nodeType": "YulTypedName", + "src": "16806:3:19", + "type": "" + } + ], + "src": "16664:366:19" + }, + { + "body": { + "nativeSrc": "17207:248:19", + "nodeType": "YulBlock", + "src": "17207:248:19", + "statements": [ + { + "nativeSrc": "17217:26:19", + "nodeType": "YulAssignment", + "src": "17217:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17229:9:19", + "nodeType": "YulIdentifier", + "src": "17229:9:19" + }, + { + "kind": "number", + "nativeSrc": "17240:2:19", + "nodeType": "YulLiteral", + "src": "17240:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17225:3:19", + "nodeType": "YulIdentifier", + "src": "17225:3:19" + }, + "nativeSrc": "17225:18:19", + "nodeType": "YulFunctionCall", + "src": "17225:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17217:4:19", + "nodeType": "YulIdentifier", + "src": "17217:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17264:9:19", + "nodeType": "YulIdentifier", + "src": "17264:9:19" + }, + { + "kind": "number", + "nativeSrc": "17275:1:19", + "nodeType": "YulLiteral", + "src": "17275:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17260:3:19", + "nodeType": "YulIdentifier", + "src": "17260:3:19" + }, + "nativeSrc": "17260:17:19", + "nodeType": "YulFunctionCall", + "src": "17260:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17283:4:19", + "nodeType": "YulIdentifier", + "src": "17283:4:19" + }, + { + "name": "headStart", + "nativeSrc": "17289:9:19", + "nodeType": "YulIdentifier", + "src": "17289:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "17279:3:19", + "nodeType": "YulIdentifier", + "src": "17279:3:19" + }, + "nativeSrc": "17279:20:19", + "nodeType": "YulFunctionCall", + "src": "17279:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17253:6:19", + "nodeType": "YulIdentifier", + "src": "17253:6:19" + }, + "nativeSrc": "17253:47:19", + "nodeType": "YulFunctionCall", + "src": "17253:47:19" + }, + "nativeSrc": "17253:47:19", + "nodeType": "YulExpressionStatement", + "src": "17253:47:19" + }, + { + "nativeSrc": "17309:139:19", + "nodeType": "YulAssignment", + "src": "17309:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17443:4:19", + "nodeType": "YulIdentifier", + "src": "17443:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack", + "nativeSrc": "17317:124:19", + "nodeType": "YulIdentifier", + "src": "17317:124:19" + }, + "nativeSrc": "17317:131:19", + "nodeType": "YulFunctionCall", + "src": "17317:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17309:4:19", + "nodeType": "YulIdentifier", + "src": "17309:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "17036:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17187:9:19", + "nodeType": "YulTypedName", + "src": "17187:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "17202:4:19", + "nodeType": "YulTypedName", + "src": "17202:4:19", + "type": "" + } + ], + "src": "17036:419:19" + }, + { + "body": { + "nativeSrc": "17575:34:19", + "nodeType": "YulBlock", + "src": "17575:34:19", + "statements": [ + { + "nativeSrc": "17585:18:19", + "nodeType": "YulAssignment", + "src": "17585:18:19", + "value": { + "name": "pos", + "nativeSrc": "17600:3:19", + "nodeType": "YulIdentifier", + "src": "17600:3:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "17585:11:19", + "nodeType": "YulIdentifier", + "src": "17585:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "17461:148:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "17547:3:19", + "nodeType": "YulTypedName", + "src": "17547:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "17552:6:19", + "nodeType": "YulTypedName", + "src": "17552:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "17563:11:19", + "nodeType": "YulTypedName", + "src": "17563:11:19", + "type": "" + } + ], + "src": "17461:148:19" + }, + { + "body": { + "nativeSrc": "17725:280:19", + "nodeType": "YulBlock", + "src": "17725:280:19", + "statements": [ + { + "nativeSrc": "17735:53:19", + "nodeType": "YulVariableDeclaration", + "src": "17735:53:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17782:5:19", + "nodeType": "YulIdentifier", + "src": "17782:5:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "17749:32:19", + "nodeType": "YulIdentifier", + "src": "17749:32:19" + }, + "nativeSrc": "17749:39:19", + "nodeType": "YulFunctionCall", + "src": "17749:39:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "17739:6:19", + "nodeType": "YulTypedName", + "src": "17739:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "17797:96:19", + "nodeType": "YulAssignment", + "src": "17797:96:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17881:3:19", + "nodeType": "YulIdentifier", + "src": "17881:3:19" + }, + { + "name": "length", + "nativeSrc": "17886:6:19", + "nodeType": "YulIdentifier", + "src": "17886:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "17804:76:19", + "nodeType": "YulIdentifier", + "src": "17804:76:19" + }, + "nativeSrc": "17804:89:19", + "nodeType": "YulFunctionCall", + "src": "17804:89:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "17797:3:19", + "nodeType": "YulIdentifier", + "src": "17797:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17941:5:19", + "nodeType": "YulIdentifier", + "src": "17941:5:19" + }, + { + "kind": "number", + "nativeSrc": "17948:4:19", + "nodeType": "YulLiteral", + "src": "17948:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17937:3:19", + "nodeType": "YulIdentifier", + "src": "17937:3:19" + }, + "nativeSrc": "17937:16:19", + "nodeType": "YulFunctionCall", + "src": "17937:16:19" + }, + { + "name": "pos", + "nativeSrc": "17955:3:19", + "nodeType": "YulIdentifier", + "src": "17955:3:19" + }, + { + "name": "length", + "nativeSrc": "17960:6:19", + "nodeType": "YulIdentifier", + "src": "17960:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "17902:34:19", + "nodeType": "YulIdentifier", + "src": "17902:34:19" + }, + "nativeSrc": "17902:65:19", + "nodeType": "YulFunctionCall", + "src": "17902:65:19" + }, + "nativeSrc": "17902:65:19", + "nodeType": "YulExpressionStatement", + "src": "17902:65:19" + }, + { + "nativeSrc": "17976:23:19", + "nodeType": "YulAssignment", + "src": "17976:23:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17987:3:19", + "nodeType": "YulIdentifier", + "src": "17987:3:19" + }, + { + "name": "length", + "nativeSrc": "17992:6:19", + "nodeType": "YulIdentifier", + "src": "17992:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17983:3:19", + "nodeType": "YulIdentifier", + "src": "17983:3:19" + }, + "nativeSrc": "17983:16:19", + "nodeType": "YulFunctionCall", + "src": "17983:16:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "17976:3:19", + "nodeType": "YulIdentifier", + "src": "17976:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "17615:390:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "17706:5:19", + "nodeType": "YulTypedName", + "src": "17706:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "17713:3:19", + "nodeType": "YulTypedName", + "src": "17713:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "17721:3:19", + "nodeType": "YulTypedName", + "src": "17721:3:19", + "type": "" + } + ], + "src": "17615:390:19" + }, + { + "body": { + "nativeSrc": "18195:251:19", + "nodeType": "YulBlock", + "src": "18195:251:19", + "statements": [ + { + "nativeSrc": "18206:102:19", + "nodeType": "YulAssignment", + "src": "18206:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "18295:6:19", + "nodeType": "YulIdentifier", + "src": "18295:6:19" + }, + { + "name": "pos", + "nativeSrc": "18304:3:19", + "nodeType": "YulIdentifier", + "src": "18304:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "18213:81:19", + "nodeType": "YulIdentifier", + "src": "18213:81:19" + }, + "nativeSrc": "18213:95:19", + "nodeType": "YulFunctionCall", + "src": "18213:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "18206:3:19", + "nodeType": "YulIdentifier", + "src": "18206:3:19" + } + ] + }, + { + "nativeSrc": "18318:102:19", + "nodeType": "YulAssignment", + "src": "18318:102:19", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "18407:6:19", + "nodeType": "YulIdentifier", + "src": "18407:6:19" + }, + { + "name": "pos", + "nativeSrc": "18416:3:19", + "nodeType": "YulIdentifier", + "src": "18416:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "18325:81:19", + "nodeType": "YulIdentifier", + "src": "18325:81:19" + }, + "nativeSrc": "18325:95:19", + "nodeType": "YulFunctionCall", + "src": "18325:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "18318:3:19", + "nodeType": "YulIdentifier", + "src": "18318:3:19" + } + ] + }, + { + "nativeSrc": "18430:10:19", + "nodeType": "YulAssignment", + "src": "18430:10:19", + "value": { + "name": "pos", + "nativeSrc": "18437:3:19", + "nodeType": "YulIdentifier", + "src": "18437:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "18430:3:19", + "nodeType": "YulIdentifier", + "src": "18430:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "18011:435:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "18166:3:19", + "nodeType": "YulTypedName", + "src": "18166:3:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "18172:6:19", + "nodeType": "YulTypedName", + "src": "18172:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "18180:6:19", + "nodeType": "YulTypedName", + "src": "18180:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "18191:3:19", + "nodeType": "YulTypedName", + "src": "18191:3:19", + "type": "" + } + ], + "src": "18011:435:19" + }, + { + "body": { + "nativeSrc": "18558:379:19", + "nodeType": "YulBlock", + "src": "18558:379:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "18580:6:19", + "nodeType": "YulIdentifier", + "src": "18580:6:19" + }, + { + "kind": "number", + "nativeSrc": "18588:1:19", + "nodeType": "YulLiteral", + "src": "18588:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18576:3:19", + "nodeType": "YulIdentifier", + "src": "18576:3:19" + }, + "nativeSrc": "18576:14:19", + "nodeType": "YulFunctionCall", + "src": "18576:14:19" + }, + { + "kind": "number", + "nativeSrc": "18592:66:19", + "nodeType": "YulLiteral", + "src": "18592:66:19", + "type": "", + "value": "0x7b226e616d65223a2022466c756666792046757279222c202264657363726970" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18569:6:19", + "nodeType": "YulIdentifier", + "src": "18569:6:19" + }, + "nativeSrc": "18569:90:19", + "nodeType": "YulFunctionCall", + "src": "18569:90:19" + }, + "nativeSrc": "18569:90:19", + "nodeType": "YulExpressionStatement", + "src": "18569:90:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "18680:6:19", + "nodeType": "YulIdentifier", + "src": "18680:6:19" + }, + { + "kind": "number", + "nativeSrc": "18688:2:19", + "nodeType": "YulLiteral", + "src": "18688:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18676:3:19", + "nodeType": "YulIdentifier", + "src": "18676:3:19" + }, + "nativeSrc": "18676:15:19", + "nodeType": "YulFunctionCall", + "src": "18676:15:19" + }, + { + "kind": "number", + "nativeSrc": "18693:66:19", + "nodeType": "YulLiteral", + "src": "18693:66:19", + "type": "", + "value": "0x74696f6e223a2022596f75722061636365737320696e746f20616e7920657665" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18669:6:19", + "nodeType": "YulIdentifier", + "src": "18669:6:19" + }, + "nativeSrc": "18669:91:19", + "nodeType": "YulFunctionCall", + "src": "18669:91:19" + }, + "nativeSrc": "18669:91:19", + "nodeType": "YulExpressionStatement", + "src": "18669:91:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "18781:6:19", + "nodeType": "YulIdentifier", + "src": "18781:6:19" + }, + { + "kind": "number", + "nativeSrc": "18789:2:19", + "nodeType": "YulLiteral", + "src": "18789:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18777:3:19", + "nodeType": "YulIdentifier", + "src": "18777:3:19" + }, + "nativeSrc": "18777:15:19", + "nodeType": "YulFunctionCall", + "src": "18777:15:19" + }, + { + "hexValue": "6e742063726561746564207573696e67207468697320746f6b656e2061646472", + "kind": "string", + "nativeSrc": "18794:34:19", + "nodeType": "YulLiteral", + "src": "18794:34:19", + "type": "", + "value": "nt created using this token addr" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18770:6:19", + "nodeType": "YulIdentifier", + "src": "18770:6:19" + }, + "nativeSrc": "18770:59:19", + "nodeType": "YulFunctionCall", + "src": "18770:59:19" + }, + "nativeSrc": "18770:59:19", + "nodeType": "YulExpressionStatement", + "src": "18770:59:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "18850:6:19", + "nodeType": "YulIdentifier", + "src": "18850:6:19" + }, + { + "kind": "number", + "nativeSrc": "18858:2:19", + "nodeType": "YulLiteral", + "src": "18858:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18846:3:19", + "nodeType": "YulIdentifier", + "src": "18846:3:19" + }, + "nativeSrc": "18846:15:19", + "nodeType": "YulFunctionCall", + "src": "18846:15:19" + }, + { + "kind": "number", + "nativeSrc": "18863:66:19", + "nodeType": "YulLiteral", + "src": "18863:66:19", + "type": "", + "value": "0x657373222c2022696d616765223a220000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18839:6:19", + "nodeType": "YulIdentifier", + "src": "18839:6:19" + }, + "nativeSrc": "18839:91:19", + "nodeType": "YulFunctionCall", + "src": "18839:91:19" + }, + "nativeSrc": "18839:91:19", + "nodeType": "YulExpressionStatement", + "src": "18839:91:19" + } + ] + }, + "name": "store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "nativeSrc": "18452:485:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "18550:6:19", + "nodeType": "YulTypedName", + "src": "18550:6:19", + "type": "" + } + ], + "src": "18452:485:19" + }, + { + "body": { + "nativeSrc": "19107:240:19", + "nodeType": "YulBlock", + "src": "19107:240:19", + "statements": [ + { + "nativeSrc": "19117:93:19", + "nodeType": "YulAssignment", + "src": "19117:93:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19201:3:19", + "nodeType": "YulIdentifier", + "src": "19201:3:19" + }, + { + "kind": "number", + "nativeSrc": "19206:3:19", + "nodeType": "YulLiteral", + "src": "19206:3:19", + "type": "", + "value": "111" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "19124:76:19", + "nodeType": "YulIdentifier", + "src": "19124:76:19" + }, + "nativeSrc": "19124:86:19", + "nodeType": "YulFunctionCall", + "src": "19124:86:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "19117:3:19", + "nodeType": "YulIdentifier", + "src": "19117:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19308:3:19", + "nodeType": "YulIdentifier", + "src": "19308:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d", + "nativeSrc": "19219:88:19", + "nodeType": "YulIdentifier", + "src": "19219:88:19" + }, + "nativeSrc": "19219:93:19", + "nodeType": "YulFunctionCall", + "src": "19219:93:19" + }, + "nativeSrc": "19219:93:19", + "nodeType": "YulExpressionStatement", + "src": "19219:93:19" + }, + { + "nativeSrc": "19321:20:19", + "nodeType": "YulAssignment", + "src": "19321:20:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19332:3:19", + "nodeType": "YulIdentifier", + "src": "19332:3:19" + }, + { + "kind": "number", + "nativeSrc": "19337:3:19", + "nodeType": "YulLiteral", + "src": "19337:3:19", + "type": "", + "value": "111" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19328:3:19", + "nodeType": "YulIdentifier", + "src": "19328:3:19" + }, + "nativeSrc": "19328:13:19", + "nodeType": "YulFunctionCall", + "src": "19328:13:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "19321:3:19", + "nodeType": "YulIdentifier", + "src": "19321:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "18943:404:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "19095:3:19", + "nodeType": "YulTypedName", + "src": "19095:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "19103:3:19", + "nodeType": "YulTypedName", + "src": "19103:3:19", + "type": "" + } + ], + "src": "18943:404:19" + }, + { + "body": { + "nativeSrc": "19459:108:19", + "nodeType": "YulBlock", + "src": "19459:108:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "19481:6:19", + "nodeType": "YulIdentifier", + "src": "19481:6:19" + }, + { + "kind": "number", + "nativeSrc": "19489:1:19", + "nodeType": "YulLiteral", + "src": "19489:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19477:3:19", + "nodeType": "YulIdentifier", + "src": "19477:3:19" + }, + "nativeSrc": "19477:14:19", + "nodeType": "YulFunctionCall", + "src": "19477:14:19" + }, + { + "kind": "number", + "nativeSrc": "19493:66:19", + "nodeType": "YulLiteral", + "src": "19493:66:19", + "type": "", + "value": "0x227d000000000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19470:6:19", + "nodeType": "YulIdentifier", + "src": "19470:6:19" + }, + "nativeSrc": "19470:90:19", + "nodeType": "YulFunctionCall", + "src": "19470:90:19" + }, + "nativeSrc": "19470:90:19", + "nodeType": "YulExpressionStatement", + "src": "19470:90:19" + } + ] + }, + "name": "store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "nativeSrc": "19353:214:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "19451:6:19", + "nodeType": "YulTypedName", + "src": "19451:6:19", + "type": "" + } + ], + "src": "19353:214:19" + }, + { + "body": { + "nativeSrc": "19737:236:19", + "nodeType": "YulBlock", + "src": "19737:236:19", + "statements": [ + { + "nativeSrc": "19747:91:19", + "nodeType": "YulAssignment", + "src": "19747:91:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19831:3:19", + "nodeType": "YulIdentifier", + "src": "19831:3:19" + }, + { + "kind": "number", + "nativeSrc": "19836:1:19", + "nodeType": "YulLiteral", + "src": "19836:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "19754:76:19", + "nodeType": "YulIdentifier", + "src": "19754:76:19" + }, + "nativeSrc": "19754:84:19", + "nodeType": "YulFunctionCall", + "src": "19754:84:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "19747:3:19", + "nodeType": "YulIdentifier", + "src": "19747:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19936:3:19", + "nodeType": "YulIdentifier", + "src": "19936:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "nativeSrc": "19847:88:19", + "nodeType": "YulIdentifier", + "src": "19847:88:19" + }, + "nativeSrc": "19847:93:19", + "nodeType": "YulFunctionCall", + "src": "19847:93:19" + }, + "nativeSrc": "19847:93:19", + "nodeType": "YulExpressionStatement", + "src": "19847:93:19" + }, + { + "nativeSrc": "19949:18:19", + "nodeType": "YulAssignment", + "src": "19949:18:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19960:3:19", + "nodeType": "YulIdentifier", + "src": "19960:3:19" + }, + { + "kind": "number", + "nativeSrc": "19965:1:19", + "nodeType": "YulLiteral", + "src": "19965:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19956:3:19", + "nodeType": "YulIdentifier", + "src": "19956:3:19" + }, + "nativeSrc": "19956:11:19", + "nodeType": "YulFunctionCall", + "src": "19956:11:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "19949:3:19", + "nodeType": "YulIdentifier", + "src": "19949:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "19573:400:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "19725:3:19", + "nodeType": "YulTypedName", + "src": "19725:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "19733:3:19", + "nodeType": "YulTypedName", + "src": "19733:3:19", + "type": "" + } + ], + "src": "19573:400:19" + }, + { + "body": { + "nativeSrc": "20317:469:19", + "nodeType": "YulBlock", + "src": "20317:469:19", + "statements": [ + { + "nativeSrc": "20328:155:19", + "nodeType": "YulAssignment", + "src": "20328:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20479:3:19", + "nodeType": "YulIdentifier", + "src": "20479:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20335:142:19", + "nodeType": "YulIdentifier", + "src": "20335:142:19" + }, + "nativeSrc": "20335:148:19", + "nodeType": "YulFunctionCall", + "src": "20335:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20328:3:19", + "nodeType": "YulIdentifier", + "src": "20328:3:19" + } + ] + }, + { + "nativeSrc": "20493:102:19", + "nodeType": "YulAssignment", + "src": "20493:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "20582:6:19", + "nodeType": "YulIdentifier", + "src": "20582:6:19" + }, + { + "name": "pos", + "nativeSrc": "20591:3:19", + "nodeType": "YulIdentifier", + "src": "20591:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20500:81:19", + "nodeType": "YulIdentifier", + "src": "20500:81:19" + }, + "nativeSrc": "20500:95:19", + "nodeType": "YulFunctionCall", + "src": "20500:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20493:3:19", + "nodeType": "YulIdentifier", + "src": "20493:3:19" + } + ] + }, + { + "nativeSrc": "20605:155:19", + "nodeType": "YulAssignment", + "src": "20605:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20756:3:19", + "nodeType": "YulIdentifier", + "src": "20756:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20612:142:19", + "nodeType": "YulIdentifier", + "src": "20612:142:19" + }, + "nativeSrc": "20612:148:19", + "nodeType": "YulFunctionCall", + "src": "20612:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20605:3:19", + "nodeType": "YulIdentifier", + "src": "20605:3:19" + } + ] + }, + { + "nativeSrc": "20770:10:19", + "nodeType": "YulAssignment", + "src": "20770:10:19", + "value": { + "name": "pos", + "nativeSrc": "20777:3:19", + "nodeType": "YulIdentifier", + "src": "20777:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "20770:3:19", + "nodeType": "YulIdentifier", + "src": "20770:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "19979:807:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "20296:3:19", + "nodeType": "YulTypedName", + "src": "20296:3:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20302:6:19", + "nodeType": "YulTypedName", + "src": "20302:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "20313:3:19", + "nodeType": "YulTypedName", + "src": "20313:3:19", + "type": "" + } + ], + "src": "19979:807:19" + }, + { + "body": { + "nativeSrc": "20898:73:19", + "nodeType": "YulBlock", + "src": "20898:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "20920:6:19", + "nodeType": "YulIdentifier", + "src": "20920:6:19" + }, + { + "kind": "number", + "nativeSrc": "20928:1:19", + "nodeType": "YulLiteral", + "src": "20928:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20916:3:19", + "nodeType": "YulIdentifier", + "src": "20916:3:19" + }, + "nativeSrc": "20916:14:19", + "nodeType": "YulFunctionCall", + "src": "20916:14:19" + }, + { + "hexValue": "646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c", + "kind": "string", + "nativeSrc": "20932:31:19", + "nodeType": "YulLiteral", + "src": "20932:31:19", + "type": "", + "value": "data:application/json;base64," + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20909:6:19", + "nodeType": "YulIdentifier", + "src": "20909:6:19" + }, + "nativeSrc": "20909:55:19", + "nodeType": "YulFunctionCall", + "src": "20909:55:19" + }, + "nativeSrc": "20909:55:19", + "nodeType": "YulExpressionStatement", + "src": "20909:55:19" + } + ] + }, + "name": "store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "nativeSrc": "20792:179:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "20890:6:19", + "nodeType": "YulTypedName", + "src": "20890:6:19", + "type": "" + } + ], + "src": "20792:179:19" + }, + { + "body": { + "nativeSrc": "21141:238:19", + "nodeType": "YulBlock", + "src": "21141:238:19", + "statements": [ + { + "nativeSrc": "21151:92:19", + "nodeType": "YulAssignment", + "src": "21151:92:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21235:3:19", + "nodeType": "YulIdentifier", + "src": "21235:3:19" + }, + { + "kind": "number", + "nativeSrc": "21240:2:19", + "nodeType": "YulLiteral", + "src": "21240:2:19", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "21158:76:19", + "nodeType": "YulIdentifier", + "src": "21158:76:19" + }, + "nativeSrc": "21158:85:19", + "nodeType": "YulFunctionCall", + "src": "21158:85:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21151:3:19", + "nodeType": "YulIdentifier", + "src": "21151:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21341:3:19", + "nodeType": "YulIdentifier", + "src": "21341:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", + "nativeSrc": "21252:88:19", + "nodeType": "YulIdentifier", + "src": "21252:88:19" + }, + "nativeSrc": "21252:93:19", + "nodeType": "YulFunctionCall", + "src": "21252:93:19" + }, + "nativeSrc": "21252:93:19", + "nodeType": "YulExpressionStatement", + "src": "21252:93:19" + }, + { + "nativeSrc": "21354:19:19", + "nodeType": "YulAssignment", + "src": "21354:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21365:3:19", + "nodeType": "YulIdentifier", + "src": "21365:3:19" + }, + { + "kind": "number", + "nativeSrc": "21370:2:19", + "nodeType": "YulLiteral", + "src": "21370:2:19", + "type": "", + "value": "29" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21361:3:19", + "nodeType": "YulIdentifier", + "src": "21361:3:19" + }, + "nativeSrc": "21361:12:19", + "nodeType": "YulFunctionCall", + "src": "21361:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21354:3:19", + "nodeType": "YulIdentifier", + "src": "21354:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "20977:402:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "21129:3:19", + "nodeType": "YulTypedName", + "src": "21129:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "21137:3:19", + "nodeType": "YulTypedName", + "src": "21137:3:19", + "type": "" + } + ], + "src": "20977:402:19" + }, + { + "body": { + "nativeSrc": "21622:304:19", + "nodeType": "YulBlock", + "src": "21622:304:19", + "statements": [ + { + "nativeSrc": "21633:155:19", + "nodeType": "YulAssignment", + "src": "21633:155:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21784:3:19", + "nodeType": "YulIdentifier", + "src": "21784:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "21640:142:19", + "nodeType": "YulIdentifier", + "src": "21640:142:19" + }, + "nativeSrc": "21640:148:19", + "nodeType": "YulFunctionCall", + "src": "21640:148:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21633:3:19", + "nodeType": "YulIdentifier", + "src": "21633:3:19" + } + ] + }, + { + "nativeSrc": "21798:102:19", + "nodeType": "YulAssignment", + "src": "21798:102:19", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "21887:6:19", + "nodeType": "YulIdentifier", + "src": "21887:6:19" + }, + { + "name": "pos", + "nativeSrc": "21896:3:19", + "nodeType": "YulIdentifier", + "src": "21896:3:19" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "21805:81:19", + "nodeType": "YulIdentifier", + "src": "21805:81:19" + }, + "nativeSrc": "21805:95:19", + "nodeType": "YulFunctionCall", + "src": "21805:95:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21798:3:19", + "nodeType": "YulIdentifier", + "src": "21798:3:19" + } + ] + }, + { + "nativeSrc": "21910:10:19", + "nodeType": "YulAssignment", + "src": "21910:10:19", + "value": { + "name": "pos", + "nativeSrc": "21917:3:19", + "nodeType": "YulIdentifier", + "src": "21917:3:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21910:3:19", + "nodeType": "YulIdentifier", + "src": "21910:3:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "21385:541:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "21601:3:19", + "nodeType": "YulTypedName", + "src": "21601:3:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21607:6:19", + "nodeType": "YulTypedName", + "src": "21607:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "21618:3:19", + "nodeType": "YulTypedName", + "src": "21618:3:19", + "type": "" + } + ], + "src": "21385:541:19" + }, + { + "body": { + "nativeSrc": "22038:68:19", + "nodeType": "YulBlock", + "src": "22038:68:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "22060:6:19", + "nodeType": "YulIdentifier", + "src": "22060:6:19" + }, + { + "kind": "number", + "nativeSrc": "22068:1:19", + "nodeType": "YulLiteral", + "src": "22068:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22056:3:19", + "nodeType": "YulIdentifier", + "src": "22056:3:19" + }, + "nativeSrc": "22056:14:19", + "nodeType": "YulFunctionCall", + "src": "22056:14:19" + }, + { + "hexValue": "53564720646174612063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "22072:26:19", + "nodeType": "YulLiteral", + "src": "22072:26:19", + "type": "", + "value": "SVG data cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22049:6:19", + "nodeType": "YulIdentifier", + "src": "22049:6:19" + }, + "nativeSrc": "22049:50:19", + "nodeType": "YulFunctionCall", + "src": "22049:50:19" + }, + "nativeSrc": "22049:50:19", + "nodeType": "YulExpressionStatement", + "src": "22049:50:19" + } + ] + }, + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "21932:174:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "22030:6:19", + "nodeType": "YulTypedName", + "src": "22030:6:19", + "type": "" + } + ], + "src": "21932:174:19" + }, + { + "body": { + "nativeSrc": "22258:220:19", + "nodeType": "YulBlock", + "src": "22258:220:19", + "statements": [ + { + "nativeSrc": "22268:74:19", + "nodeType": "YulAssignment", + "src": "22268:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22334:3:19", + "nodeType": "YulIdentifier", + "src": "22334:3:19" + }, + { + "kind": "number", + "nativeSrc": "22339:2:19", + "nodeType": "YulLiteral", + "src": "22339:2:19", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "22275:58:19", + "nodeType": "YulIdentifier", + "src": "22275:58:19" + }, + "nativeSrc": "22275:67:19", + "nodeType": "YulFunctionCall", + "src": "22275:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "22268:3:19", + "nodeType": "YulIdentifier", + "src": "22268:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22440:3:19", + "nodeType": "YulIdentifier", + "src": "22440:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d", + "nativeSrc": "22351:88:19", + "nodeType": "YulIdentifier", + "src": "22351:88:19" + }, + "nativeSrc": "22351:93:19", + "nodeType": "YulFunctionCall", + "src": "22351:93:19" + }, + "nativeSrc": "22351:93:19", + "nodeType": "YulExpressionStatement", + "src": "22351:93:19" + }, + { + "nativeSrc": "22453:19:19", + "nodeType": "YulAssignment", + "src": "22453:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22464:3:19", + "nodeType": "YulIdentifier", + "src": "22464:3:19" + }, + { + "kind": "number", + "nativeSrc": "22469:2:19", + "nodeType": "YulLiteral", + "src": "22469:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22460:3:19", + "nodeType": "YulIdentifier", + "src": "22460:3:19" + }, + "nativeSrc": "22460:12:19", + "nodeType": "YulFunctionCall", + "src": "22460:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "22453:3:19", + "nodeType": "YulIdentifier", + "src": "22453:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22112:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "22246:3:19", + "nodeType": "YulTypedName", + "src": "22246:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "22254:3:19", + "nodeType": "YulTypedName", + "src": "22254:3:19", + "type": "" + } + ], + "src": "22112:366:19" + }, + { + "body": { + "nativeSrc": "22655:248:19", + "nodeType": "YulBlock", + "src": "22655:248:19", + "statements": [ + { + "nativeSrc": "22665:26:19", + "nodeType": "YulAssignment", + "src": "22665:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22677:9:19", + "nodeType": "YulIdentifier", + "src": "22677:9:19" + }, + { + "kind": "number", + "nativeSrc": "22688:2:19", + "nodeType": "YulLiteral", + "src": "22688:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22673:3:19", + "nodeType": "YulIdentifier", + "src": "22673:3:19" + }, + "nativeSrc": "22673:18:19", + "nodeType": "YulFunctionCall", + "src": "22673:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22665:4:19", + "nodeType": "YulIdentifier", + "src": "22665:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22712:9:19", + "nodeType": "YulIdentifier", + "src": "22712:9:19" + }, + { + "kind": "number", + "nativeSrc": "22723:1:19", + "nodeType": "YulLiteral", + "src": "22723:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22708:3:19", + "nodeType": "YulIdentifier", + "src": "22708:3:19" + }, + "nativeSrc": "22708:17:19", + "nodeType": "YulFunctionCall", + "src": "22708:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22731:4:19", + "nodeType": "YulIdentifier", + "src": "22731:4:19" + }, + { + "name": "headStart", + "nativeSrc": "22737:9:19", + "nodeType": "YulIdentifier", + "src": "22737:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22727:3:19", + "nodeType": "YulIdentifier", + "src": "22727:3:19" + }, + "nativeSrc": "22727:20:19", + "nodeType": "YulFunctionCall", + "src": "22727:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22701:6:19", + "nodeType": "YulIdentifier", + "src": "22701:6:19" + }, + "nativeSrc": "22701:47:19", + "nodeType": "YulFunctionCall", + "src": "22701:47:19" + }, + "nativeSrc": "22701:47:19", + "nodeType": "YulExpressionStatement", + "src": "22701:47:19" + }, + { + "nativeSrc": "22757:139:19", + "nodeType": "YulAssignment", + "src": "22757:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22891:4:19", + "nodeType": "YulIdentifier", + "src": "22891:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22765:124:19", + "nodeType": "YulIdentifier", + "src": "22765:124:19" + }, + "nativeSrc": "22765:131:19", + "nodeType": "YulFunctionCall", + "src": "22765:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22757:4:19", + "nodeType": "YulIdentifier", + "src": "22757:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "22484:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22635:9:19", + "nodeType": "YulTypedName", + "src": "22635:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22650:4:19", + "nodeType": "YulTypedName", + "src": "22650:4:19", + "type": "" + } + ], + "src": "22484:419:19" + }, + { + "body": { + "nativeSrc": "23015:62:19", + "nodeType": "YulBlock", + "src": "23015:62:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23037:6:19", + "nodeType": "YulIdentifier", + "src": "23037:6:19" + }, + { + "kind": "number", + "nativeSrc": "23045:1:19", + "nodeType": "YulLiteral", + "src": "23045:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23033:3:19", + "nodeType": "YulIdentifier", + "src": "23033:3:19" + }, + "nativeSrc": "23033:14:19", + "nodeType": "YulFunctionCall", + "src": "23033:14:19" + }, + { + "hexValue": "535647206461746120746f6f206c61726765", + "kind": "string", + "nativeSrc": "23049:20:19", + "nodeType": "YulLiteral", + "src": "23049:20:19", + "type": "", + "value": "SVG data too large" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23026:6:19", + "nodeType": "YulIdentifier", + "src": "23026:6:19" + }, + "nativeSrc": "23026:44:19", + "nodeType": "YulFunctionCall", + "src": "23026:44:19" + }, + "nativeSrc": "23026:44:19", + "nodeType": "YulExpressionStatement", + "src": "23026:44:19" + } + ] + }, + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "22909:168:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "23007:6:19", + "nodeType": "YulTypedName", + "src": "23007:6:19", + "type": "" + } + ], + "src": "22909:168:19" + }, + { + "body": { + "nativeSrc": "23229:220:19", + "nodeType": "YulBlock", + "src": "23229:220:19", + "statements": [ + { + "nativeSrc": "23239:74:19", + "nodeType": "YulAssignment", + "src": "23239:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23305:3:19", + "nodeType": "YulIdentifier", + "src": "23305:3:19" + }, + { + "kind": "number", + "nativeSrc": "23310:2:19", + "nodeType": "YulLiteral", + "src": "23310:2:19", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "23246:58:19", + "nodeType": "YulIdentifier", + "src": "23246:58:19" + }, + "nativeSrc": "23246:67:19", + "nodeType": "YulFunctionCall", + "src": "23246:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "23239:3:19", + "nodeType": "YulIdentifier", + "src": "23239:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23411:3:19", + "nodeType": "YulIdentifier", + "src": "23411:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244", + "nativeSrc": "23322:88:19", + "nodeType": "YulIdentifier", + "src": "23322:88:19" + }, + "nativeSrc": "23322:93:19", + "nodeType": "YulFunctionCall", + "src": "23322:93:19" + }, + "nativeSrc": "23322:93:19", + "nodeType": "YulExpressionStatement", + "src": "23322:93:19" + }, + { + "nativeSrc": "23424:19:19", + "nodeType": "YulAssignment", + "src": "23424:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23435:3:19", + "nodeType": "YulIdentifier", + "src": "23435:3:19" + }, + { + "kind": "number", + "nativeSrc": "23440:2:19", + "nodeType": "YulLiteral", + "src": "23440:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23431:3:19", + "nodeType": "YulIdentifier", + "src": "23431:3:19" + }, + "nativeSrc": "23431:12:19", + "nodeType": "YulFunctionCall", + "src": "23431:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "23424:3:19", + "nodeType": "YulIdentifier", + "src": "23424:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23083:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23217:3:19", + "nodeType": "YulTypedName", + "src": "23217:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23225:3:19", + "nodeType": "YulTypedName", + "src": "23225:3:19", + "type": "" + } + ], + "src": "23083:366:19" + }, + { + "body": { + "nativeSrc": "23626:248:19", + "nodeType": "YulBlock", + "src": "23626:248:19", + "statements": [ + { + "nativeSrc": "23636:26:19", + "nodeType": "YulAssignment", + "src": "23636:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23648:9:19", + "nodeType": "YulIdentifier", + "src": "23648:9:19" + }, + { + "kind": "number", + "nativeSrc": "23659:2:19", + "nodeType": "YulLiteral", + "src": "23659:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23644:3:19", + "nodeType": "YulIdentifier", + "src": "23644:3:19" + }, + "nativeSrc": "23644:18:19", + "nodeType": "YulFunctionCall", + "src": "23644:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23636:4:19", + "nodeType": "YulIdentifier", + "src": "23636:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23683:9:19", + "nodeType": "YulIdentifier", + "src": "23683:9:19" + }, + { + "kind": "number", + "nativeSrc": "23694:1:19", + "nodeType": "YulLiteral", + "src": "23694:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23679:3:19", + "nodeType": "YulIdentifier", + "src": "23679:3:19" + }, + "nativeSrc": "23679:17:19", + "nodeType": "YulFunctionCall", + "src": "23679:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23702:4:19", + "nodeType": "YulIdentifier", + "src": "23702:4:19" + }, + { + "name": "headStart", + "nativeSrc": "23708:9:19", + "nodeType": "YulIdentifier", + "src": "23708:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23698:3:19", + "nodeType": "YulIdentifier", + "src": "23698:3:19" + }, + "nativeSrc": "23698:20:19", + "nodeType": "YulFunctionCall", + "src": "23698:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23672:6:19", + "nodeType": "YulIdentifier", + "src": "23672:6:19" + }, + "nativeSrc": "23672:47:19", + "nodeType": "YulFunctionCall", + "src": "23672:47:19" + }, + "nativeSrc": "23672:47:19", + "nodeType": "YulExpressionStatement", + "src": "23672:47:19" + }, + { + "nativeSrc": "23728:139:19", + "nodeType": "YulAssignment", + "src": "23728:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23862:4:19", + "nodeType": "YulIdentifier", + "src": "23862:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23736:124:19", + "nodeType": "YulIdentifier", + "src": "23736:124:19" + }, + "nativeSrc": "23736:131:19", + "nodeType": "YulFunctionCall", + "src": "23736:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23728:4:19", + "nodeType": "YulIdentifier", + "src": "23728:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "23455:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23606:9:19", + "nodeType": "YulTypedName", + "src": "23606:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23621:4:19", + "nodeType": "YulTypedName", + "src": "23621:4:19", + "type": "" + } + ], + "src": "23455:419:19" + }, + { + "body": { + "nativeSrc": "23934:87:19", + "nodeType": "YulBlock", + "src": "23934:87:19", + "statements": [ + { + "nativeSrc": "23944:11:19", + "nodeType": "YulAssignment", + "src": "23944:11:19", + "value": { + "name": "ptr", + "nativeSrc": "23952:3:19", + "nodeType": "YulIdentifier", + "src": "23952:3:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "23944:4:19", + "nodeType": "YulIdentifier", + "src": "23944:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23972:1:19", + "nodeType": "YulLiteral", + "src": "23972:1:19", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "23975:3:19", + "nodeType": "YulIdentifier", + "src": "23975:3:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23965:6:19", + "nodeType": "YulIdentifier", + "src": "23965:6:19" + }, + "nativeSrc": "23965:14:19", + "nodeType": "YulFunctionCall", + "src": "23965:14:19" + }, + "nativeSrc": "23965:14:19", + "nodeType": "YulExpressionStatement", + "src": "23965:14:19" + }, + { + "nativeSrc": "23988:26:19", + "nodeType": "YulAssignment", + "src": "23988:26:19", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24006:1:19", + "nodeType": "YulLiteral", + "src": "24006:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24009:4:19", + "nodeType": "YulLiteral", + "src": "24009:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "23996:9:19", + "nodeType": "YulIdentifier", + "src": "23996:9:19" + }, + "nativeSrc": "23996:18:19", + "nodeType": "YulFunctionCall", + "src": "23996:18:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "23988:4:19", + "nodeType": "YulIdentifier", + "src": "23988:4:19" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "23880:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "23921:3:19", + "nodeType": "YulTypedName", + "src": "23921:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "23929:4:19", + "nodeType": "YulTypedName", + "src": "23929:4:19", + "type": "" + } + ], + "src": "23880:141:19" + }, + { + "body": { + "nativeSrc": "24071:49:19", + "nodeType": "YulBlock", + "src": "24071:49:19", + "statements": [ + { + "nativeSrc": "24081:33:19", + "nodeType": "YulAssignment", + "src": "24081:33:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24099:5:19", + "nodeType": "YulIdentifier", + "src": "24099:5:19" + }, + { + "kind": "number", + "nativeSrc": "24106:2:19", + "nodeType": "YulLiteral", + "src": "24106:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24095:3:19", + "nodeType": "YulIdentifier", + "src": "24095:3:19" + }, + "nativeSrc": "24095:14:19", + "nodeType": "YulFunctionCall", + "src": "24095:14:19" + }, + { + "kind": "number", + "nativeSrc": "24111:2:19", + "nodeType": "YulLiteral", + "src": "24111:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "24091:3:19", + "nodeType": "YulIdentifier", + "src": "24091:3:19" + }, + "nativeSrc": "24091:23:19", + "nodeType": "YulFunctionCall", + "src": "24091:23:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "24081:6:19", + "nodeType": "YulIdentifier", + "src": "24081:6:19" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "24027:93:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24054:5:19", + "nodeType": "YulTypedName", + "src": "24054:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "24064:6:19", + "nodeType": "YulTypedName", + "src": "24064:6:19", + "type": "" + } + ], + "src": "24027:93:19" + }, + { + "body": { + "nativeSrc": "24179:54:19", + "nodeType": "YulBlock", + "src": "24179:54:19", + "statements": [ + { + "nativeSrc": "24189:37:19", + "nodeType": "YulAssignment", + "src": "24189:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "24214:4:19", + "nodeType": "YulIdentifier", + "src": "24214:4:19" + }, + { + "name": "value", + "nativeSrc": "24220:5:19", + "nodeType": "YulIdentifier", + "src": "24220:5:19" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24210:3:19", + "nodeType": "YulIdentifier", + "src": "24210:3:19" + }, + "nativeSrc": "24210:16:19", + "nodeType": "YulFunctionCall", + "src": "24210:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "24189:8:19", + "nodeType": "YulIdentifier", + "src": "24189:8:19" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "24126:107:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "24154:4:19", + "nodeType": "YulTypedName", + "src": "24154:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "24160:5:19", + "nodeType": "YulTypedName", + "src": "24160:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "24170:8:19", + "nodeType": "YulTypedName", + "src": "24170:8:19", + "type": "" + } + ], + "src": "24126:107:19" + }, + { + "body": { + "nativeSrc": "24315:317:19", + "nodeType": "YulBlock", + "src": "24315:317:19", + "statements": [ + { + "nativeSrc": "24325:35:19", + "nodeType": "YulVariableDeclaration", + "src": "24325:35:19", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "24346:10:19", + "nodeType": "YulIdentifier", + "src": "24346:10:19" + }, + { + "kind": "number", + "nativeSrc": "24358:1:19", + "nodeType": "YulLiteral", + "src": "24358:1:19", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "24342:3:19", + "nodeType": "YulIdentifier", + "src": "24342:3:19" + }, + "nativeSrc": "24342:18:19", + "nodeType": "YulFunctionCall", + "src": "24342:18:19" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "24329:9:19", + "nodeType": "YulTypedName", + "src": "24329:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "24369:109:19", + "nodeType": "YulVariableDeclaration", + "src": "24369:109:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "24400:9:19", + "nodeType": "YulIdentifier", + "src": "24400:9:19" + }, + { + "kind": "number", + "nativeSrc": "24411:66:19", + "nodeType": "YulLiteral", + "src": "24411:66:19", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "24381:18:19", + "nodeType": "YulIdentifier", + "src": "24381:18:19" + }, + "nativeSrc": "24381:97:19", + "nodeType": "YulFunctionCall", + "src": "24381:97:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "24373:4:19", + "nodeType": "YulTypedName", + "src": "24373:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "24487:51:19", + "nodeType": "YulAssignment", + "src": "24487:51:19", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "24518:9:19", + "nodeType": "YulIdentifier", + "src": "24518:9:19" + }, + { + "name": "toInsert", + "nativeSrc": "24529:8:19", + "nodeType": "YulIdentifier", + "src": "24529:8:19" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "24499:18:19", + "nodeType": "YulIdentifier", + "src": "24499:18:19" + }, + "nativeSrc": "24499:39:19", + "nodeType": "YulFunctionCall", + "src": "24499:39:19" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "24487:8:19", + "nodeType": "YulIdentifier", + "src": "24487:8:19" + } + ] + }, + { + "nativeSrc": "24547:30:19", + "nodeType": "YulAssignment", + "src": "24547:30:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24560:5:19", + "nodeType": "YulIdentifier", + "src": "24560:5:19" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "24571:4:19", + "nodeType": "YulIdentifier", + "src": "24571:4:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "24567:3:19", + "nodeType": "YulIdentifier", + "src": "24567:3:19" + }, + "nativeSrc": "24567:9:19", + "nodeType": "YulFunctionCall", + "src": "24567:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "24556:3:19", + "nodeType": "YulIdentifier", + "src": "24556:3:19" + }, + "nativeSrc": "24556:21:19", + "nodeType": "YulFunctionCall", + "src": "24556:21:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24547:5:19", + "nodeType": "YulIdentifier", + "src": "24547:5:19" + } + ] + }, + { + "nativeSrc": "24586:40:19", + "nodeType": "YulAssignment", + "src": "24586:40:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24599:5:19", + "nodeType": "YulIdentifier", + "src": "24599:5:19" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "24610:8:19", + "nodeType": "YulIdentifier", + "src": "24610:8:19" + }, + { + "name": "mask", + "nativeSrc": "24620:4:19", + "nodeType": "YulIdentifier", + "src": "24620:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "24606:3:19", + "nodeType": "YulIdentifier", + "src": "24606:3:19" + }, + "nativeSrc": "24606:19:19", + "nodeType": "YulFunctionCall", + "src": "24606:19:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "24596:2:19", + "nodeType": "YulIdentifier", + "src": "24596:2:19" + }, + "nativeSrc": "24596:30:19", + "nodeType": "YulFunctionCall", + "src": "24596:30:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "24586:6:19", + "nodeType": "YulIdentifier", + "src": "24586:6:19" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "24239:393:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24276:5:19", + "nodeType": "YulTypedName", + "src": "24276:5:19", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "24283:10:19", + "nodeType": "YulTypedName", + "src": "24283:10:19", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "24295:8:19", + "nodeType": "YulTypedName", + "src": "24295:8:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "24308:6:19", + "nodeType": "YulTypedName", + "src": "24308:6:19", + "type": "" + } + ], + "src": "24239:393:19" + }, + { + "body": { + "nativeSrc": "24670:28:19", + "nodeType": "YulBlock", + "src": "24670:28:19", + "statements": [ + { + "nativeSrc": "24680:12:19", + "nodeType": "YulAssignment", + "src": "24680:12:19", + "value": { + "name": "value", + "nativeSrc": "24687:5:19", + "nodeType": "YulIdentifier", + "src": "24687:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "24680:3:19", + "nodeType": "YulIdentifier", + "src": "24680:3:19" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "24638:60:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24656:5:19", + "nodeType": "YulTypedName", + "src": "24656:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24666:3:19", + "nodeType": "YulTypedName", + "src": "24666:3:19", + "type": "" + } + ], + "src": "24638:60:19" + }, + { + "body": { + "nativeSrc": "24764:82:19", + "nodeType": "YulBlock", + "src": "24764:82:19", + "statements": [ + { + "nativeSrc": "24774:66:19", + "nodeType": "YulAssignment", + "src": "24774:66:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24832:5:19", + "nodeType": "YulIdentifier", + "src": "24832:5:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24814:17:19", + "nodeType": "YulIdentifier", + "src": "24814:17:19" + }, + "nativeSrc": "24814:24:19", + "nodeType": "YulFunctionCall", + "src": "24814:24:19" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "24805:8:19", + "nodeType": "YulIdentifier", + "src": "24805:8:19" + }, + "nativeSrc": "24805:34:19", + "nodeType": "YulFunctionCall", + "src": "24805:34:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24787:17:19", + "nodeType": "YulIdentifier", + "src": "24787:17:19" + }, + "nativeSrc": "24787:53:19", + "nodeType": "YulFunctionCall", + "src": "24787:53:19" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "24774:9:19", + "nodeType": "YulIdentifier", + "src": "24774:9:19" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "24704:142:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24744:5:19", + "nodeType": "YulTypedName", + "src": "24744:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "24754:9:19", + "nodeType": "YulTypedName", + "src": "24754:9:19", + "type": "" + } + ], + "src": "24704:142:19" + }, + { + "body": { + "nativeSrc": "24899:28:19", + "nodeType": "YulBlock", + "src": "24899:28:19", + "statements": [ + { + "nativeSrc": "24909:12:19", + "nodeType": "YulAssignment", + "src": "24909:12:19", + "value": { + "name": "value", + "nativeSrc": "24916:5:19", + "nodeType": "YulIdentifier", + "src": "24916:5:19" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "24909:3:19", + "nodeType": "YulIdentifier", + "src": "24909:3:19" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "24852:75:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24885:5:19", + "nodeType": "YulTypedName", + "src": "24885:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24895:3:19", + "nodeType": "YulTypedName", + "src": "24895:3:19", + "type": "" + } + ], + "src": "24852:75:19" + }, + { + "body": { + "nativeSrc": "25009:193:19", + "nodeType": "YulBlock", + "src": "25009:193:19", + "statements": [ + { + "nativeSrc": "25019:63:19", + "nodeType": "YulVariableDeclaration", + "src": "25019:63:19", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "25074:7:19", + "nodeType": "YulIdentifier", + "src": "25074:7:19" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "25043:30:19", + "nodeType": "YulIdentifier", + "src": "25043:30:19" + }, + "nativeSrc": "25043:39:19", + "nodeType": "YulFunctionCall", + "src": "25043:39:19" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "25023:16:19", + "nodeType": "YulTypedName", + "src": "25023:16:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "25098:4:19", + "nodeType": "YulIdentifier", + "src": "25098:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "25138:4:19", + "nodeType": "YulIdentifier", + "src": "25138:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "25132:5:19", + "nodeType": "YulIdentifier", + "src": "25132:5:19" + }, + "nativeSrc": "25132:11:19", + "nodeType": "YulFunctionCall", + "src": "25132:11:19" + }, + { + "name": "offset", + "nativeSrc": "25145:6:19", + "nodeType": "YulIdentifier", + "src": "25145:6:19" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "25177:16:19", + "nodeType": "YulIdentifier", + "src": "25177:16:19" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "25153:23:19", + "nodeType": "YulIdentifier", + "src": "25153:23:19" + }, + "nativeSrc": "25153:41:19", + "nodeType": "YulFunctionCall", + "src": "25153:41:19" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "25104:27:19", + "nodeType": "YulIdentifier", + "src": "25104:27:19" + }, + "nativeSrc": "25104:91:19", + "nodeType": "YulFunctionCall", + "src": "25104:91:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "25091:6:19", + "nodeType": "YulIdentifier", + "src": "25091:6:19" + }, + "nativeSrc": "25091:105:19", + "nodeType": "YulFunctionCall", + "src": "25091:105:19" + }, + "nativeSrc": "25091:105:19", + "nodeType": "YulExpressionStatement", + "src": "25091:105:19" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "24933:269:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "24986:4:19", + "nodeType": "YulTypedName", + "src": "24986:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "24992:6:19", + "nodeType": "YulTypedName", + "src": "24992:6:19", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "25000:7:19", + "nodeType": "YulTypedName", + "src": "25000:7:19", + "type": "" + } + ], + "src": "24933:269:19" + }, + { + "body": { + "nativeSrc": "25257:24:19", + "nodeType": "YulBlock", + "src": "25257:24:19", + "statements": [ + { + "nativeSrc": "25267:8:19", + "nodeType": "YulAssignment", + "src": "25267:8:19", + "value": { + "kind": "number", + "nativeSrc": "25274:1:19", + "nodeType": "YulLiteral", + "src": "25274:1:19", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "25267:3:19", + "nodeType": "YulIdentifier", + "src": "25267:3:19" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "25208:73:19", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "25253:3:19", + "nodeType": "YulTypedName", + "src": "25253:3:19", + "type": "" + } + ], + "src": "25208:73:19" + }, + { + "body": { + "nativeSrc": "25340:136:19", + "nodeType": "YulBlock", + "src": "25340:136:19", + "statements": [ + { + "nativeSrc": "25350:46:19", + "nodeType": "YulVariableDeclaration", + "src": "25350:46:19", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "25364:30:19", + "nodeType": "YulIdentifier", + "src": "25364:30:19" + }, + "nativeSrc": "25364:32:19", + "nodeType": "YulFunctionCall", + "src": "25364:32:19" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "25354:6:19", + "nodeType": "YulTypedName", + "src": "25354:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "25449:4:19", + "nodeType": "YulIdentifier", + "src": "25449:4:19" + }, + { + "name": "offset", + "nativeSrc": "25455:6:19", + "nodeType": "YulIdentifier", + "src": "25455:6:19" + }, + { + "name": "zero_0", + "nativeSrc": "25463:6:19", + "nodeType": "YulIdentifier", + "src": "25463:6:19" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "25405:43:19", + "nodeType": "YulIdentifier", + "src": "25405:43:19" + }, + "nativeSrc": "25405:65:19", + "nodeType": "YulFunctionCall", + "src": "25405:65:19" + }, + "nativeSrc": "25405:65:19", + "nodeType": "YulExpressionStatement", + "src": "25405:65:19" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "25287:189:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "25326:4:19", + "nodeType": "YulTypedName", + "src": "25326:4:19", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "25332:6:19", + "nodeType": "YulTypedName", + "src": "25332:6:19", + "type": "" + } + ], + "src": "25287:189:19" + }, + { + "body": { + "nativeSrc": "25532:136:19", + "nodeType": "YulBlock", + "src": "25532:136:19", + "statements": [ + { + "body": { + "nativeSrc": "25599:63:19", + "nodeType": "YulBlock", + "src": "25599:63:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "25643:5:19", + "nodeType": "YulIdentifier", + "src": "25643:5:19" + }, + { + "kind": "number", + "nativeSrc": "25650:1:19", + "nodeType": "YulLiteral", + "src": "25650:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "25613:29:19", + "nodeType": "YulIdentifier", + "src": "25613:29:19" + }, + "nativeSrc": "25613:39:19", + "nodeType": "YulFunctionCall", + "src": "25613:39:19" + }, + "nativeSrc": "25613:39:19", + "nodeType": "YulExpressionStatement", + "src": "25613:39:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "25552:5:19", + "nodeType": "YulIdentifier", + "src": "25552:5:19" + }, + { + "name": "end", + "nativeSrc": "25559:3:19", + "nodeType": "YulIdentifier", + "src": "25559:3:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "25549:2:19", + "nodeType": "YulIdentifier", + "src": "25549:2:19" + }, + "nativeSrc": "25549:14:19", + "nodeType": "YulFunctionCall", + "src": "25549:14:19" + }, + "nativeSrc": "25542:120:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "25564:26:19", + "nodeType": "YulBlock", + "src": "25564:26:19", + "statements": [ + { + "nativeSrc": "25566:22:19", + "nodeType": "YulAssignment", + "src": "25566:22:19", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "25579:5:19", + "nodeType": "YulIdentifier", + "src": "25579:5:19" + }, + { + "kind": "number", + "nativeSrc": "25586:1:19", + "nodeType": "YulLiteral", + "src": "25586:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25575:3:19", + "nodeType": "YulIdentifier", + "src": "25575:3:19" + }, + "nativeSrc": "25575:13:19", + "nodeType": "YulFunctionCall", + "src": "25575:13:19" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "25566:5:19", + "nodeType": "YulIdentifier", + "src": "25566:5:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "25546:2:19", + "nodeType": "YulBlock", + "src": "25546:2:19", + "statements": [] + }, + "src": "25542:120:19" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "25482:186:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "25520:5:19", + "nodeType": "YulTypedName", + "src": "25520:5:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "25527:3:19", + "nodeType": "YulTypedName", + "src": "25527:3:19", + "type": "" + } + ], + "src": "25482:186:19" + }, + { + "body": { + "nativeSrc": "25753:464:19", + "nodeType": "YulBlock", + "src": "25753:464:19", + "statements": [ + { + "body": { + "nativeSrc": "25779:431:19", + "nodeType": "YulBlock", + "src": "25779:431:19", + "statements": [ + { + "nativeSrc": "25793:54:19", + "nodeType": "YulVariableDeclaration", + "src": "25793:54:19", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "25841:5:19", + "nodeType": "YulIdentifier", + "src": "25841:5:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "25809:31:19", + "nodeType": "YulIdentifier", + "src": "25809:31:19" + }, + "nativeSrc": "25809:38:19", + "nodeType": "YulFunctionCall", + "src": "25809:38:19" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "25797:8:19", + "nodeType": "YulTypedName", + "src": "25797:8:19", + "type": "" + } + ] + }, + { + "nativeSrc": "25860:63:19", + "nodeType": "YulVariableDeclaration", + "src": "25860:63:19", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "25883:8:19", + "nodeType": "YulIdentifier", + "src": "25883:8:19" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "25911:10:19", + "nodeType": "YulIdentifier", + "src": "25911:10:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "25893:17:19", + "nodeType": "YulIdentifier", + "src": "25893:17:19" + }, + "nativeSrc": "25893:29:19", + "nodeType": "YulFunctionCall", + "src": "25893:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25879:3:19", + "nodeType": "YulIdentifier", + "src": "25879:3:19" + }, + "nativeSrc": "25879:44:19", + "nodeType": "YulFunctionCall", + "src": "25879:44:19" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "25864:11:19", + "nodeType": "YulTypedName", + "src": "25864:11:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "26080:27:19", + "nodeType": "YulBlock", + "src": "26080:27:19", + "statements": [ + { + "nativeSrc": "26082:23:19", + "nodeType": "YulAssignment", + "src": "26082:23:19", + "value": { + "name": "dataArea", + "nativeSrc": "26097:8:19", + "nodeType": "YulIdentifier", + "src": "26097:8:19" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "26082:11:19", + "nodeType": "YulIdentifier", + "src": "26082:11:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "26064:10:19", + "nodeType": "YulIdentifier", + "src": "26064:10:19" + }, + { + "kind": "number", + "nativeSrc": "26076:2:19", + "nodeType": "YulLiteral", + "src": "26076:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "26061:2:19", + "nodeType": "YulIdentifier", + "src": "26061:2:19" + }, + "nativeSrc": "26061:18:19", + "nodeType": "YulFunctionCall", + "src": "26061:18:19" + }, + "nativeSrc": "26058:49:19", + "nodeType": "YulIf", + "src": "26058:49:19" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "26149:11:19", + "nodeType": "YulIdentifier", + "src": "26149:11:19" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "26166:8:19", + "nodeType": "YulIdentifier", + "src": "26166:8:19" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "26194:3:19", + "nodeType": "YulIdentifier", + "src": "26194:3:19" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "26176:17:19", + "nodeType": "YulIdentifier", + "src": "26176:17:19" + }, + "nativeSrc": "26176:22:19", + "nodeType": "YulFunctionCall", + "src": "26176:22:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26162:3:19", + "nodeType": "YulIdentifier", + "src": "26162:3:19" + }, + "nativeSrc": "26162:37:19", + "nodeType": "YulFunctionCall", + "src": "26162:37:19" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "26120:28:19", + "nodeType": "YulIdentifier", + "src": "26120:28:19" + }, + "nativeSrc": "26120:80:19", + "nodeType": "YulFunctionCall", + "src": "26120:80:19" + }, + "nativeSrc": "26120:80:19", + "nodeType": "YulExpressionStatement", + "src": "26120:80:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "25770:3:19", + "nodeType": "YulIdentifier", + "src": "25770:3:19" + }, + { + "kind": "number", + "nativeSrc": "25775:2:19", + "nodeType": "YulLiteral", + "src": "25775:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "25767:2:19", + "nodeType": "YulIdentifier", + "src": "25767:2:19" + }, + "nativeSrc": "25767:11:19", + "nodeType": "YulFunctionCall", + "src": "25767:11:19" + }, + "nativeSrc": "25764:446:19", + "nodeType": "YulIf", + "src": "25764:446:19" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "25674:543:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "25729:5:19", + "nodeType": "YulTypedName", + "src": "25729:5:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "25736:3:19", + "nodeType": "YulTypedName", + "src": "25736:3:19", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "25741:10:19", + "nodeType": "YulTypedName", + "src": "25741:10:19", + "type": "" + } + ], + "src": "25674:543:19" + }, + { + "body": { + "nativeSrc": "26286:54:19", + "nodeType": "YulBlock", + "src": "26286:54:19", + "statements": [ + { + "nativeSrc": "26296:37:19", + "nodeType": "YulAssignment", + "src": "26296:37:19", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "26321:4:19", + "nodeType": "YulIdentifier", + "src": "26321:4:19" + }, + { + "name": "value", + "nativeSrc": "26327:5:19", + "nodeType": "YulIdentifier", + "src": "26327:5:19" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "26317:3:19", + "nodeType": "YulIdentifier", + "src": "26317:3:19" + }, + "nativeSrc": "26317:16:19", + "nodeType": "YulFunctionCall", + "src": "26317:16:19" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "26296:8:19", + "nodeType": "YulIdentifier", + "src": "26296:8:19" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "26223:117:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "26261:4:19", + "nodeType": "YulTypedName", + "src": "26261:4:19", + "type": "" + }, + { + "name": "value", + "nativeSrc": "26267:5:19", + "nodeType": "YulTypedName", + "src": "26267:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "26277:8:19", + "nodeType": "YulTypedName", + "src": "26277:8:19", + "type": "" + } + ], + "src": "26223:117:19" + }, + { + "body": { + "nativeSrc": "26397:118:19", + "nodeType": "YulBlock", + "src": "26397:118:19", + "statements": [ + { + "nativeSrc": "26407:68:19", + "nodeType": "YulVariableDeclaration", + "src": "26407:68:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26456:1:19", + "nodeType": "YulLiteral", + "src": "26456:1:19", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "26459:5:19", + "nodeType": "YulIdentifier", + "src": "26459:5:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "26452:3:19", + "nodeType": "YulIdentifier", + "src": "26452:3:19" + }, + "nativeSrc": "26452:13:19", + "nodeType": "YulFunctionCall", + "src": "26452:13:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26471:1:19", + "nodeType": "YulLiteral", + "src": "26471:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26467:3:19", + "nodeType": "YulIdentifier", + "src": "26467:3:19" + }, + "nativeSrc": "26467:6:19", + "nodeType": "YulFunctionCall", + "src": "26467:6:19" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "26423:28:19", + "nodeType": "YulIdentifier", + "src": "26423:28:19" + }, + "nativeSrc": "26423:51:19", + "nodeType": "YulFunctionCall", + "src": "26423:51:19" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26419:3:19", + "nodeType": "YulIdentifier", + "src": "26419:3:19" + }, + "nativeSrc": "26419:56:19", + "nodeType": "YulFunctionCall", + "src": "26419:56:19" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "26411:4:19", + "nodeType": "YulTypedName", + "src": "26411:4:19", + "type": "" + } + ] + }, + { + "nativeSrc": "26484:25:19", + "nodeType": "YulAssignment", + "src": "26484:25:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "26498:4:19", + "nodeType": "YulIdentifier", + "src": "26498:4:19" + }, + { + "name": "mask", + "nativeSrc": "26504:4:19", + "nodeType": "YulIdentifier", + "src": "26504:4:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26494:3:19", + "nodeType": "YulIdentifier", + "src": "26494:3:19" + }, + "nativeSrc": "26494:15:19", + "nodeType": "YulFunctionCall", + "src": "26494:15:19" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "26484:6:19", + "nodeType": "YulIdentifier", + "src": "26484:6:19" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "26346:169:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "26374:4:19", + "nodeType": "YulTypedName", + "src": "26374:4:19", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "26380:5:19", + "nodeType": "YulTypedName", + "src": "26380:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "26390:6:19", + "nodeType": "YulTypedName", + "src": "26390:6:19", + "type": "" + } + ], + "src": "26346:169:19" + }, + { + "body": { + "nativeSrc": "26601:214:19", + "nodeType": "YulBlock", + "src": "26601:214:19", + "statements": [ + { + "nativeSrc": "26734:37:19", + "nodeType": "YulAssignment", + "src": "26734:37:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "26761:4:19", + "nodeType": "YulIdentifier", + "src": "26761:4:19" + }, + { + "name": "len", + "nativeSrc": "26767:3:19", + "nodeType": "YulIdentifier", + "src": "26767:3:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "26742:18:19", + "nodeType": "YulIdentifier", + "src": "26742:18:19" + }, + "nativeSrc": "26742:29:19", + "nodeType": "YulFunctionCall", + "src": "26742:29:19" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "26734:4:19", + "nodeType": "YulIdentifier", + "src": "26734:4:19" + } + ] + }, + { + "nativeSrc": "26780:29:19", + "nodeType": "YulAssignment", + "src": "26780:29:19", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "26791:4:19", + "nodeType": "YulIdentifier", + "src": "26791:4:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26801:1:19", + "nodeType": "YulLiteral", + "src": "26801:1:19", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "26804:3:19", + "nodeType": "YulIdentifier", + "src": "26804:3:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "26797:3:19", + "nodeType": "YulIdentifier", + "src": "26797:3:19" + }, + "nativeSrc": "26797:11:19", + "nodeType": "YulFunctionCall", + "src": "26797:11:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "26788:2:19", + "nodeType": "YulIdentifier", + "src": "26788:2:19" + }, + "nativeSrc": "26788:21:19", + "nodeType": "YulFunctionCall", + "src": "26788:21:19" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "26780:4:19", + "nodeType": "YulIdentifier", + "src": "26780:4:19" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "26520:295:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "26582:4:19", + "nodeType": "YulTypedName", + "src": "26582:4:19", + "type": "" + }, + { + "name": "len", + "nativeSrc": "26588:3:19", + "nodeType": "YulTypedName", + "src": "26588:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "26596:4:19", + "nodeType": "YulTypedName", + "src": "26596:4:19", + "type": "" + } + ], + "src": "26520:295:19" + }, + { + "body": { + "nativeSrc": "26912:1303:19", + "nodeType": "YulBlock", + "src": "26912:1303:19", + "statements": [ + { + "nativeSrc": "26923:51:19", + "nodeType": "YulVariableDeclaration", + "src": "26923:51:19", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "26970:3:19", + "nodeType": "YulIdentifier", + "src": "26970:3:19" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "26937:32:19", + "nodeType": "YulIdentifier", + "src": "26937:32:19" + }, + "nativeSrc": "26937:37:19", + "nodeType": "YulFunctionCall", + "src": "26937:37:19" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "26927:6:19", + "nodeType": "YulTypedName", + "src": "26927:6:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "27059:22:19", + "nodeType": "YulBlock", + "src": "27059:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "27061:16:19", + "nodeType": "YulIdentifier", + "src": "27061:16:19" + }, + "nativeSrc": "27061:18:19", + "nodeType": "YulFunctionCall", + "src": "27061:18:19" + }, + "nativeSrc": "27061:18:19", + "nodeType": "YulExpressionStatement", + "src": "27061:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "27031:6:19", + "nodeType": "YulIdentifier", + "src": "27031:6:19" + }, + { + "kind": "number", + "nativeSrc": "27039:18:19", + "nodeType": "YulLiteral", + "src": "27039:18:19", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "27028:2:19", + "nodeType": "YulIdentifier", + "src": "27028:2:19" + }, + "nativeSrc": "27028:30:19", + "nodeType": "YulFunctionCall", + "src": "27028:30:19" + }, + "nativeSrc": "27025:56:19", + "nodeType": "YulIf", + "src": "27025:56:19" + }, + { + "nativeSrc": "27091:52:19", + "nodeType": "YulVariableDeclaration", + "src": "27091:52:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "27137:4:19", + "nodeType": "YulIdentifier", + "src": "27137:4:19" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "27131:5:19", + "nodeType": "YulIdentifier", + "src": "27131:5:19" + }, + "nativeSrc": "27131:11:19", + "nodeType": "YulFunctionCall", + "src": "27131:11:19" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "27105:25:19", + "nodeType": "YulIdentifier", + "src": "27105:25:19" + }, + "nativeSrc": "27105:38:19", + "nodeType": "YulFunctionCall", + "src": "27105:38:19" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "27095:6:19", + "nodeType": "YulTypedName", + "src": "27095:6:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "27236:4:19", + "nodeType": "YulIdentifier", + "src": "27236:4:19" + }, + { + "name": "oldLen", + "nativeSrc": "27242:6:19", + "nodeType": "YulIdentifier", + "src": "27242:6:19" + }, + { + "name": "newLen", + "nativeSrc": "27250:6:19", + "nodeType": "YulIdentifier", + "src": "27250:6:19" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "27190:45:19", + "nodeType": "YulIdentifier", + "src": "27190:45:19" + }, + "nativeSrc": "27190:67:19", + "nodeType": "YulFunctionCall", + "src": "27190:67:19" + }, + "nativeSrc": "27190:67:19", + "nodeType": "YulExpressionStatement", + "src": "27190:67:19" + }, + { + "nativeSrc": "27267:18:19", + "nodeType": "YulVariableDeclaration", + "src": "27267:18:19", + "value": { + "kind": "number", + "nativeSrc": "27284:1:19", + "nodeType": "YulLiteral", + "src": "27284:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "27271:9:19", + "nodeType": "YulTypedName", + "src": "27271:9:19", + "type": "" + } + ] + }, + { + "nativeSrc": "27295:17:19", + "nodeType": "YulAssignment", + "src": "27295:17:19", + "value": { + "kind": "number", + "nativeSrc": "27308:4:19", + "nodeType": "YulLiteral", + "src": "27308:4:19", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "27295:9:19", + "nodeType": "YulIdentifier", + "src": "27295:9:19" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "27359:611:19", + "nodeType": "YulBlock", + "src": "27359:611:19", + "statements": [ + { + "nativeSrc": "27373:37:19", + "nodeType": "YulVariableDeclaration", + "src": "27373:37:19", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "27392:6:19", + "nodeType": "YulIdentifier", + "src": "27392:6:19" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27404:4:19", + "nodeType": "YulLiteral", + "src": "27404:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "27400:3:19", + "nodeType": "YulIdentifier", + "src": "27400:3:19" + }, + "nativeSrc": "27400:9:19", + "nodeType": "YulFunctionCall", + "src": "27400:9:19" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "27388:3:19", + "nodeType": "YulIdentifier", + "src": "27388:3:19" + }, + "nativeSrc": "27388:22:19", + "nodeType": "YulFunctionCall", + "src": "27388:22:19" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "27377:7:19", + "nodeType": "YulTypedName", + "src": "27377:7:19", + "type": "" + } + ] + }, + { + "nativeSrc": "27424:51:19", + "nodeType": "YulVariableDeclaration", + "src": "27424:51:19", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "27470:4:19", + "nodeType": "YulIdentifier", + "src": "27470:4:19" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "27438:31:19", + "nodeType": "YulIdentifier", + "src": "27438:31:19" + }, + "nativeSrc": "27438:37:19", + "nodeType": "YulFunctionCall", + "src": "27438:37:19" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "27428:6:19", + "nodeType": "YulTypedName", + "src": "27428:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "27488:10:19", + "nodeType": "YulVariableDeclaration", + "src": "27488:10:19", + "value": { + "kind": "number", + "nativeSrc": "27497:1:19", + "nodeType": "YulLiteral", + "src": "27497:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "27492:1:19", + "nodeType": "YulTypedName", + "src": "27492:1:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "27556:163:19", + "nodeType": "YulBlock", + "src": "27556:163:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "27581:6:19", + "nodeType": "YulIdentifier", + "src": "27581:6:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "27599:3:19", + "nodeType": "YulIdentifier", + "src": "27599:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "27604:9:19", + "nodeType": "YulIdentifier", + "src": "27604:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27595:3:19", + "nodeType": "YulIdentifier", + "src": "27595:3:19" + }, + "nativeSrc": "27595:19:19", + "nodeType": "YulFunctionCall", + "src": "27595:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "27589:5:19", + "nodeType": "YulIdentifier", + "src": "27589:5:19" + }, + "nativeSrc": "27589:26:19", + "nodeType": "YulFunctionCall", + "src": "27589:26:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "27574:6:19", + "nodeType": "YulIdentifier", + "src": "27574:6:19" + }, + "nativeSrc": "27574:42:19", + "nodeType": "YulFunctionCall", + "src": "27574:42:19" + }, + "nativeSrc": "27574:42:19", + "nodeType": "YulExpressionStatement", + "src": "27574:42:19" + }, + { + "nativeSrc": "27633:24:19", + "nodeType": "YulAssignment", + "src": "27633:24:19", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "27647:6:19", + "nodeType": "YulIdentifier", + "src": "27647:6:19" + }, + { + "kind": "number", + "nativeSrc": "27655:1:19", + "nodeType": "YulLiteral", + "src": "27655:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27643:3:19", + "nodeType": "YulIdentifier", + "src": "27643:3:19" + }, + "nativeSrc": "27643:14:19", + "nodeType": "YulFunctionCall", + "src": "27643:14:19" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "27633:6:19", + "nodeType": "YulIdentifier", + "src": "27633:6:19" + } + ] + }, + { + "nativeSrc": "27674:31:19", + "nodeType": "YulAssignment", + "src": "27674:31:19", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "27691:9:19", + "nodeType": "YulIdentifier", + "src": "27691:9:19" + }, + { + "kind": "number", + "nativeSrc": "27702:2:19", + "nodeType": "YulLiteral", + "src": "27702:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27687:3:19", + "nodeType": "YulIdentifier", + "src": "27687:3:19" + }, + "nativeSrc": "27687:18:19", + "nodeType": "YulFunctionCall", + "src": "27687:18:19" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "27674:9:19", + "nodeType": "YulIdentifier", + "src": "27674:9:19" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "27522:1:19", + "nodeType": "YulIdentifier", + "src": "27522:1:19" + }, + { + "name": "loopEnd", + "nativeSrc": "27525:7:19", + "nodeType": "YulIdentifier", + "src": "27525:7:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "27519:2:19", + "nodeType": "YulIdentifier", + "src": "27519:2:19" + }, + "nativeSrc": "27519:14:19", + "nodeType": "YulFunctionCall", + "src": "27519:14:19" + }, + "nativeSrc": "27511:208:19", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "27534:21:19", + "nodeType": "YulBlock", + "src": "27534:21:19", + "statements": [ + { + "nativeSrc": "27536:17:19", + "nodeType": "YulAssignment", + "src": "27536:17:19", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "27545:1:19", + "nodeType": "YulIdentifier", + "src": "27545:1:19" + }, + { + "kind": "number", + "nativeSrc": "27548:4:19", + "nodeType": "YulLiteral", + "src": "27548:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27541:3:19", + "nodeType": "YulIdentifier", + "src": "27541:3:19" + }, + "nativeSrc": "27541:12:19", + "nodeType": "YulFunctionCall", + "src": "27541:12:19" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "27536:1:19", + "nodeType": "YulIdentifier", + "src": "27536:1:19" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "27515:3:19", + "nodeType": "YulBlock", + "src": "27515:3:19", + "statements": [] + }, + "src": "27511:208:19" + }, + { + "body": { + "nativeSrc": "27755:156:19", + "nodeType": "YulBlock", + "src": "27755:156:19", + "statements": [ + { + "nativeSrc": "27773:43:19", + "nodeType": "YulVariableDeclaration", + "src": "27773:43:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "27800:3:19", + "nodeType": "YulIdentifier", + "src": "27800:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "27805:9:19", + "nodeType": "YulIdentifier", + "src": "27805:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27796:3:19", + "nodeType": "YulIdentifier", + "src": "27796:3:19" + }, + "nativeSrc": "27796:19:19", + "nodeType": "YulFunctionCall", + "src": "27796:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "27790:5:19", + "nodeType": "YulIdentifier", + "src": "27790:5:19" + }, + "nativeSrc": "27790:26:19", + "nodeType": "YulFunctionCall", + "src": "27790:26:19" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "27777:9:19", + "nodeType": "YulTypedName", + "src": "27777:9:19", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "27840:6:19", + "nodeType": "YulIdentifier", + "src": "27840:6:19" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "27867:9:19", + "nodeType": "YulIdentifier", + "src": "27867:9:19" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "27882:6:19", + "nodeType": "YulIdentifier", + "src": "27882:6:19" + }, + { + "kind": "number", + "nativeSrc": "27890:4:19", + "nodeType": "YulLiteral", + "src": "27890:4:19", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "27878:3:19", + "nodeType": "YulIdentifier", + "src": "27878:3:19" + }, + "nativeSrc": "27878:17:19", + "nodeType": "YulFunctionCall", + "src": "27878:17:19" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "27848:18:19", + "nodeType": "YulIdentifier", + "src": "27848:18:19" + }, + "nativeSrc": "27848:48:19", + "nodeType": "YulFunctionCall", + "src": "27848:48:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "27833:6:19", + "nodeType": "YulIdentifier", + "src": "27833:6:19" + }, + "nativeSrc": "27833:64:19", + "nodeType": "YulFunctionCall", + "src": "27833:64:19" + }, + "nativeSrc": "27833:64:19", + "nodeType": "YulExpressionStatement", + "src": "27833:64:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "27738:7:19", + "nodeType": "YulIdentifier", + "src": "27738:7:19" + }, + { + "name": "newLen", + "nativeSrc": "27747:6:19", + "nodeType": "YulIdentifier", + "src": "27747:6:19" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "27735:2:19", + "nodeType": "YulIdentifier", + "src": "27735:2:19" + }, + "nativeSrc": "27735:19:19", + "nodeType": "YulFunctionCall", + "src": "27735:19:19" + }, + "nativeSrc": "27732:179:19", + "nodeType": "YulIf", + "src": "27732:179:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "27931:4:19", + "nodeType": "YulIdentifier", + "src": "27931:4:19" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "27945:6:19", + "nodeType": "YulIdentifier", + "src": "27945:6:19" + }, + { + "kind": "number", + "nativeSrc": "27953:1:19", + "nodeType": "YulLiteral", + "src": "27953:1:19", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "27941:3:19", + "nodeType": "YulIdentifier", + "src": "27941:3:19" + }, + "nativeSrc": "27941:14:19", + "nodeType": "YulFunctionCall", + "src": "27941:14:19" + }, + { + "kind": "number", + "nativeSrc": "27957:1:19", + "nodeType": "YulLiteral", + "src": "27957:1:19", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27937:3:19", + "nodeType": "YulIdentifier", + "src": "27937:3:19" + }, + "nativeSrc": "27937:22:19", + "nodeType": "YulFunctionCall", + "src": "27937:22:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "27924:6:19", + "nodeType": "YulIdentifier", + "src": "27924:6:19" + }, + "nativeSrc": "27924:36:19", + "nodeType": "YulFunctionCall", + "src": "27924:36:19" + }, + "nativeSrc": "27924:36:19", + "nodeType": "YulExpressionStatement", + "src": "27924:36:19" + } + ] + }, + "nativeSrc": "27352:618:19", + "nodeType": "YulCase", + "src": "27352:618:19", + "value": { + "kind": "number", + "nativeSrc": "27357:1:19", + "nodeType": "YulLiteral", + "src": "27357:1:19", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "27987:222:19", + "nodeType": "YulBlock", + "src": "27987:222:19", + "statements": [ + { + "nativeSrc": "28001:14:19", + "nodeType": "YulVariableDeclaration", + "src": "28001:14:19", + "value": { + "kind": "number", + "nativeSrc": "28014:1:19", + "nodeType": "YulLiteral", + "src": "28014:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "28005:5:19", + "nodeType": "YulTypedName", + "src": "28005:5:19", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "28038:67:19", + "nodeType": "YulBlock", + "src": "28038:67:19", + "statements": [ + { + "nativeSrc": "28056:35:19", + "nodeType": "YulAssignment", + "src": "28056:35:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "28075:3:19", + "nodeType": "YulIdentifier", + "src": "28075:3:19" + }, + { + "name": "srcOffset", + "nativeSrc": "28080:9:19", + "nodeType": "YulIdentifier", + "src": "28080:9:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28071:3:19", + "nodeType": "YulIdentifier", + "src": "28071:3:19" + }, + "nativeSrc": "28071:19:19", + "nodeType": "YulFunctionCall", + "src": "28071:19:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28065:5:19", + "nodeType": "YulIdentifier", + "src": "28065:5:19" + }, + "nativeSrc": "28065:26:19", + "nodeType": "YulFunctionCall", + "src": "28065:26:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "28056:5:19", + "nodeType": "YulIdentifier", + "src": "28056:5:19" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "28031:6:19", + "nodeType": "YulIdentifier", + "src": "28031:6:19" + }, + "nativeSrc": "28028:77:19", + "nodeType": "YulIf", + "src": "28028:77:19" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "28125:4:19", + "nodeType": "YulIdentifier", + "src": "28125:4:19" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28184:5:19", + "nodeType": "YulIdentifier", + "src": "28184:5:19" + }, + { + "name": "newLen", + "nativeSrc": "28191:6:19", + "nodeType": "YulIdentifier", + "src": "28191:6:19" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "28131:52:19", + "nodeType": "YulIdentifier", + "src": "28131:52:19" + }, + "nativeSrc": "28131:67:19", + "nodeType": "YulFunctionCall", + "src": "28131:67:19" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "28118:6:19", + "nodeType": "YulIdentifier", + "src": "28118:6:19" + }, + "nativeSrc": "28118:81:19", + "nodeType": "YulFunctionCall", + "src": "28118:81:19" + }, + "nativeSrc": "28118:81:19", + "nodeType": "YulExpressionStatement", + "src": "28118:81:19" + } + ] + }, + "nativeSrc": "27979:230:19", + "nodeType": "YulCase", + "src": "27979:230:19", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "27332:6:19", + "nodeType": "YulIdentifier", + "src": "27332:6:19" + }, + { + "kind": "number", + "nativeSrc": "27340:2:19", + "nodeType": "YulLiteral", + "src": "27340:2:19", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "27329:2:19", + "nodeType": "YulIdentifier", + "src": "27329:2:19" + }, + "nativeSrc": "27329:14:19", + "nodeType": "YulFunctionCall", + "src": "27329:14:19" + }, + "nativeSrc": "27322:887:19", + "nodeType": "YulSwitch", + "src": "27322:887:19" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "26820:1395:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "26901:4:19", + "nodeType": "YulTypedName", + "src": "26901:4:19", + "type": "" + }, + { + "name": "src", + "nativeSrc": "26907:3:19", + "nodeType": "YulTypedName", + "src": "26907:3:19", + "type": "" + } + ], + "src": "26820:1395:19" + }, + { + "body": { + "nativeSrc": "28327:117:19", + "nodeType": "YulBlock", + "src": "28327:117:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "28349:6:19", + "nodeType": "YulIdentifier", + "src": "28349:6:19" + }, + { + "kind": "number", + "nativeSrc": "28357:1:19", + "nodeType": "YulLiteral", + "src": "28357:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28345:3:19", + "nodeType": "YulIdentifier", + "src": "28345:3:19" + }, + "nativeSrc": "28345:14:19", + "nodeType": "YulFunctionCall", + "src": "28345:14:19" + }, + { + "hexValue": "4e6577206f776e65722063616e6e6f7420626520746865207a65726f20616464", + "kind": "string", + "nativeSrc": "28361:34:19", + "nodeType": "YulLiteral", + "src": "28361:34:19", + "type": "", + "value": "New owner cannot be the zero add" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28338:6:19", + "nodeType": "YulIdentifier", + "src": "28338:6:19" + }, + "nativeSrc": "28338:58:19", + "nodeType": "YulFunctionCall", + "src": "28338:58:19" + }, + "nativeSrc": "28338:58:19", + "nodeType": "YulExpressionStatement", + "src": "28338:58:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "28417:6:19", + "nodeType": "YulIdentifier", + "src": "28417:6:19" + }, + { + "kind": "number", + "nativeSrc": "28425:2:19", + "nodeType": "YulLiteral", + "src": "28425:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28413:3:19", + "nodeType": "YulIdentifier", + "src": "28413:3:19" + }, + "nativeSrc": "28413:15:19", + "nodeType": "YulFunctionCall", + "src": "28413:15:19" + }, + { + "hexValue": "72657373", + "kind": "string", + "nativeSrc": "28430:6:19", + "nodeType": "YulLiteral", + "src": "28430:6:19", + "type": "", + "value": "ress" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28406:6:19", + "nodeType": "YulIdentifier", + "src": "28406:6:19" + }, + "nativeSrc": "28406:31:19", + "nodeType": "YulFunctionCall", + "src": "28406:31:19" + }, + "nativeSrc": "28406:31:19", + "nodeType": "YulExpressionStatement", + "src": "28406:31:19" + } + ] + }, + "name": "store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "nativeSrc": "28221:223:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "28319:6:19", + "nodeType": "YulTypedName", + "src": "28319:6:19", + "type": "" + } + ], + "src": "28221:223:19" + }, + { + "body": { + "nativeSrc": "28596:220:19", + "nodeType": "YulBlock", + "src": "28596:220:19", + "statements": [ + { + "nativeSrc": "28606:74:19", + "nodeType": "YulAssignment", + "src": "28606:74:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28672:3:19", + "nodeType": "YulIdentifier", + "src": "28672:3:19" + }, + { + "kind": "number", + "nativeSrc": "28677:2:19", + "nodeType": "YulLiteral", + "src": "28677:2:19", + "type": "", + "value": "36" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "28613:58:19", + "nodeType": "YulIdentifier", + "src": "28613:58:19" + }, + "nativeSrc": "28613:67:19", + "nodeType": "YulFunctionCall", + "src": "28613:67:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28606:3:19", + "nodeType": "YulIdentifier", + "src": "28606:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28778:3:19", + "nodeType": "YulIdentifier", + "src": "28778:3:19" + } + ], + "functionName": { + "name": "store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422", + "nativeSrc": "28689:88:19", + "nodeType": "YulIdentifier", + "src": "28689:88:19" + }, + "nativeSrc": "28689:93:19", + "nodeType": "YulFunctionCall", + "src": "28689:93:19" + }, + "nativeSrc": "28689:93:19", + "nodeType": "YulExpressionStatement", + "src": "28689:93:19" + }, + { + "nativeSrc": "28791:19:19", + "nodeType": "YulAssignment", + "src": "28791:19:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28802:3:19", + "nodeType": "YulIdentifier", + "src": "28802:3:19" + }, + { + "kind": "number", + "nativeSrc": "28807:2:19", + "nodeType": "YulLiteral", + "src": "28807:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28798:3:19", + "nodeType": "YulIdentifier", + "src": "28798:3:19" + }, + "nativeSrc": "28798:12:19", + "nodeType": "YulFunctionCall", + "src": "28798:12:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28791:3:19", + "nodeType": "YulIdentifier", + "src": "28791:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack", + "nativeSrc": "28450:366:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "28584:3:19", + "nodeType": "YulTypedName", + "src": "28584:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28592:3:19", + "nodeType": "YulTypedName", + "src": "28592:3:19", + "type": "" + } + ], + "src": "28450:366:19" + }, + { + "body": { + "nativeSrc": "28993:248:19", + "nodeType": "YulBlock", + "src": "28993:248:19", + "statements": [ + { + "nativeSrc": "29003:26:19", + "nodeType": "YulAssignment", + "src": "29003:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "29015:9:19", + "nodeType": "YulIdentifier", + "src": "29015:9:19" + }, + { + "kind": "number", + "nativeSrc": "29026:2:19", + "nodeType": "YulLiteral", + "src": "29026:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29011:3:19", + "nodeType": "YulIdentifier", + "src": "29011:3:19" + }, + "nativeSrc": "29011:18:19", + "nodeType": "YulFunctionCall", + "src": "29011:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "29003:4:19", + "nodeType": "YulIdentifier", + "src": "29003:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "29050:9:19", + "nodeType": "YulIdentifier", + "src": "29050:9:19" + }, + { + "kind": "number", + "nativeSrc": "29061:1:19", + "nodeType": "YulLiteral", + "src": "29061:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29046:3:19", + "nodeType": "YulIdentifier", + "src": "29046:3:19" + }, + "nativeSrc": "29046:17:19", + "nodeType": "YulFunctionCall", + "src": "29046:17:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "29069:4:19", + "nodeType": "YulIdentifier", + "src": "29069:4:19" + }, + { + "name": "headStart", + "nativeSrc": "29075:9:19", + "nodeType": "YulIdentifier", + "src": "29075:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29065:3:19", + "nodeType": "YulIdentifier", + "src": "29065:3:19" + }, + "nativeSrc": "29065:20:19", + "nodeType": "YulFunctionCall", + "src": "29065:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29039:6:19", + "nodeType": "YulIdentifier", + "src": "29039:6:19" + }, + "nativeSrc": "29039:47:19", + "nodeType": "YulFunctionCall", + "src": "29039:47:19" + }, + "nativeSrc": "29039:47:19", + "nodeType": "YulExpressionStatement", + "src": "29039:47:19" + }, + { + "nativeSrc": "29095:139:19", + "nodeType": "YulAssignment", + "src": "29095:139:19", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "29229:4:19", + "nodeType": "YulIdentifier", + "src": "29229:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack", + "nativeSrc": "29103:124:19", + "nodeType": "YulIdentifier", + "src": "29103:124:19" + }, + "nativeSrc": "29103:131:19", + "nodeType": "YulFunctionCall", + "src": "29103:131:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "29095:4:19", + "nodeType": "YulIdentifier", + "src": "29095:4:19" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "28822:419:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "28973:9:19", + "nodeType": "YulTypedName", + "src": "28973:9:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "28988:4:19", + "nodeType": "YulTypedName", + "src": "28988:4:19", + "type": "" + } + ], + "src": "28822:419:19" + }, + { + "body": { + "nativeSrc": "29305:40:19", + "nodeType": "YulBlock", + "src": "29305:40:19", + "statements": [ + { + "nativeSrc": "29316:22:19", + "nodeType": "YulAssignment", + "src": "29316:22:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "29332:5:19", + "nodeType": "YulIdentifier", + "src": "29332:5:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29326:5:19", + "nodeType": "YulIdentifier", + "src": "29326:5:19" + }, + "nativeSrc": "29326:12:19", + "nodeType": "YulFunctionCall", + "src": "29326:12:19" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "29316:6:19", + "nodeType": "YulIdentifier", + "src": "29316:6:19" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "29247:98:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "29288:5:19", + "nodeType": "YulTypedName", + "src": "29288:5:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "29298:6:19", + "nodeType": "YulTypedName", + "src": "29298:6:19", + "type": "" + } + ], + "src": "29247:98:19" + }, + { + "body": { + "nativeSrc": "29446:73:19", + "nodeType": "YulBlock", + "src": "29446:73:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29463:3:19", + "nodeType": "YulIdentifier", + "src": "29463:3:19" + }, + { + "name": "length", + "nativeSrc": "29468:6:19", + "nodeType": "YulIdentifier", + "src": "29468:6:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29456:6:19", + "nodeType": "YulIdentifier", + "src": "29456:6:19" + }, + "nativeSrc": "29456:19:19", + "nodeType": "YulFunctionCall", + "src": "29456:19:19" + }, + "nativeSrc": "29456:19:19", + "nodeType": "YulExpressionStatement", + "src": "29456:19:19" + }, + { + "nativeSrc": "29484:29:19", + "nodeType": "YulAssignment", + "src": "29484:29:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29503:3:19", + "nodeType": "YulIdentifier", + "src": "29503:3:19" + }, + { + "kind": "number", + "nativeSrc": "29508:4:19", + "nodeType": "YulLiteral", + "src": "29508:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29499:3:19", + "nodeType": "YulIdentifier", + "src": "29499:3:19" + }, + "nativeSrc": "29499:14:19", + "nodeType": "YulFunctionCall", + "src": "29499:14:19" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "29484:11:19", + "nodeType": "YulIdentifier", + "src": "29484:11:19" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "29351:168:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "29418:3:19", + "nodeType": "YulTypedName", + "src": "29418:3:19", + "type": "" + }, + { + "name": "length", + "nativeSrc": "29423:6:19", + "nodeType": "YulTypedName", + "src": "29423:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "29434:11:19", + "nodeType": "YulTypedName", + "src": "29434:11:19", + "type": "" + } + ], + "src": "29351:168:19" + }, + { + "body": { + "nativeSrc": "29615:283:19", + "nodeType": "YulBlock", + "src": "29615:283:19", + "statements": [ + { + "nativeSrc": "29625:52:19", + "nodeType": "YulVariableDeclaration", + "src": "29625:52:19", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "29671:5:19", + "nodeType": "YulIdentifier", + "src": "29671:5:19" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "29639:31:19", + "nodeType": "YulIdentifier", + "src": "29639:31:19" + }, + "nativeSrc": "29639:38:19", + "nodeType": "YulFunctionCall", + "src": "29639:38:19" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "29629:6:19", + "nodeType": "YulTypedName", + "src": "29629:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "29686:77:19", + "nodeType": "YulAssignment", + "src": "29686:77:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29751:3:19", + "nodeType": "YulIdentifier", + "src": "29751:3:19" + }, + { + "name": "length", + "nativeSrc": "29756:6:19", + "nodeType": "YulIdentifier", + "src": "29756:6:19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "29693:57:19", + "nodeType": "YulIdentifier", + "src": "29693:57:19" + }, + "nativeSrc": "29693:70:19", + "nodeType": "YulFunctionCall", + "src": "29693:70:19" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29686:3:19", + "nodeType": "YulIdentifier", + "src": "29686:3:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29811:5:19", + "nodeType": "YulIdentifier", + "src": "29811:5:19" + }, + { + "kind": "number", + "nativeSrc": "29818:4:19", + "nodeType": "YulLiteral", + "src": "29818:4:19", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29807:3:19", + "nodeType": "YulIdentifier", + "src": "29807:3:19" + }, + "nativeSrc": "29807:16:19", + "nodeType": "YulFunctionCall", + "src": "29807:16:19" + }, + { + "name": "pos", + "nativeSrc": "29825:3:19", + "nodeType": "YulIdentifier", + "src": "29825:3:19" + }, + { + "name": "length", + "nativeSrc": "29830:6:19", + "nodeType": "YulIdentifier", + "src": "29830:6:19" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "29772:34:19", + "nodeType": "YulIdentifier", + "src": "29772:34:19" + }, + "nativeSrc": "29772:65:19", + "nodeType": "YulFunctionCall", + "src": "29772:65:19" + }, + "nativeSrc": "29772:65:19", + "nodeType": "YulExpressionStatement", + "src": "29772:65:19" + }, + { + "nativeSrc": "29846:46:19", + "nodeType": "YulAssignment", + "src": "29846:46:19", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29857:3:19", + "nodeType": "YulIdentifier", + "src": "29857:3:19" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "29884:6:19", + "nodeType": "YulIdentifier", + "src": "29884:6:19" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "29862:21:19", + "nodeType": "YulIdentifier", + "src": "29862:21:19" + }, + "nativeSrc": "29862:29:19", + "nodeType": "YulFunctionCall", + "src": "29862:29:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29853:3:19", + "nodeType": "YulIdentifier", + "src": "29853:3:19" + }, + "nativeSrc": "29853:39:19", + "nodeType": "YulFunctionCall", + "src": "29853:39:19" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "29846:3:19", + "nodeType": "YulIdentifier", + "src": "29846:3:19" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "29525:373:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "29596:5:19", + "nodeType": "YulTypedName", + "src": "29596:5:19", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "29603:3:19", + "nodeType": "YulTypedName", + "src": "29603:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "29611:3:19", + "nodeType": "YulTypedName", + "src": "29611:3:19", + "type": "" + } + ], + "src": "29525:373:19" + }, + { + "body": { + "nativeSrc": "30104:440:19", + "nodeType": "YulBlock", + "src": "30104:440:19", + "statements": [ + { + "nativeSrc": "30114:27:19", + "nodeType": "YulAssignment", + "src": "30114:27:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30126:9:19", + "nodeType": "YulIdentifier", + "src": "30126:9:19" + }, + { + "kind": "number", + "nativeSrc": "30137:3:19", + "nodeType": "YulLiteral", + "src": "30137:3:19", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30122:3:19", + "nodeType": "YulIdentifier", + "src": "30122:3:19" + }, + "nativeSrc": "30122:19:19", + "nodeType": "YulFunctionCall", + "src": "30122:19:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30114:4:19", + "nodeType": "YulIdentifier", + "src": "30114:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "30195:6:19", + "nodeType": "YulIdentifier", + "src": "30195:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30208:9:19", + "nodeType": "YulIdentifier", + "src": "30208:9:19" + }, + { + "kind": "number", + "nativeSrc": "30219:1:19", + "nodeType": "YulLiteral", + "src": "30219:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30204:3:19", + "nodeType": "YulIdentifier", + "src": "30204:3:19" + }, + "nativeSrc": "30204:17:19", + "nodeType": "YulFunctionCall", + "src": "30204:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "30151:43:19", + "nodeType": "YulIdentifier", + "src": "30151:43:19" + }, + "nativeSrc": "30151:71:19", + "nodeType": "YulFunctionCall", + "src": "30151:71:19" + }, + "nativeSrc": "30151:71:19", + "nodeType": "YulExpressionStatement", + "src": "30151:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "30276:6:19", + "nodeType": "YulIdentifier", + "src": "30276:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30289:9:19", + "nodeType": "YulIdentifier", + "src": "30289:9:19" + }, + { + "kind": "number", + "nativeSrc": "30300:2:19", + "nodeType": "YulLiteral", + "src": "30300:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30285:3:19", + "nodeType": "YulIdentifier", + "src": "30285:3:19" + }, + "nativeSrc": "30285:18:19", + "nodeType": "YulFunctionCall", + "src": "30285:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "30232:43:19", + "nodeType": "YulIdentifier", + "src": "30232:43:19" + }, + "nativeSrc": "30232:72:19", + "nodeType": "YulFunctionCall", + "src": "30232:72:19" + }, + "nativeSrc": "30232:72:19", + "nodeType": "YulExpressionStatement", + "src": "30232:72:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "30358:6:19", + "nodeType": "YulIdentifier", + "src": "30358:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30371:9:19", + "nodeType": "YulIdentifier", + "src": "30371:9:19" + }, + { + "kind": "number", + "nativeSrc": "30382:2:19", + "nodeType": "YulLiteral", + "src": "30382:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30367:3:19", + "nodeType": "YulIdentifier", + "src": "30367:3:19" + }, + "nativeSrc": "30367:18:19", + "nodeType": "YulFunctionCall", + "src": "30367:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "30314:43:19", + "nodeType": "YulIdentifier", + "src": "30314:43:19" + }, + "nativeSrc": "30314:72:19", + "nodeType": "YulFunctionCall", + "src": "30314:72:19" + }, + "nativeSrc": "30314:72:19", + "nodeType": "YulExpressionStatement", + "src": "30314:72:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30407:9:19", + "nodeType": "YulIdentifier", + "src": "30407:9:19" + }, + { + "kind": "number", + "nativeSrc": "30418:2:19", + "nodeType": "YulLiteral", + "src": "30418:2:19", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30403:3:19", + "nodeType": "YulIdentifier", + "src": "30403:3:19" + }, + "nativeSrc": "30403:18:19", + "nodeType": "YulFunctionCall", + "src": "30403:18:19" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "30427:4:19", + "nodeType": "YulIdentifier", + "src": "30427:4:19" + }, + { + "name": "headStart", + "nativeSrc": "30433:9:19", + "nodeType": "YulIdentifier", + "src": "30433:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30423:3:19", + "nodeType": "YulIdentifier", + "src": "30423:3:19" + }, + "nativeSrc": "30423:20:19", + "nodeType": "YulFunctionCall", + "src": "30423:20:19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30396:6:19", + "nodeType": "YulIdentifier", + "src": "30396:6:19" + }, + "nativeSrc": "30396:48:19", + "nodeType": "YulFunctionCall", + "src": "30396:48:19" + }, + "nativeSrc": "30396:48:19", + "nodeType": "YulExpressionStatement", + "src": "30396:48:19" + }, + { + "nativeSrc": "30453:84:19", + "nodeType": "YulAssignment", + "src": "30453:84:19", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "30523:6:19", + "nodeType": "YulIdentifier", + "src": "30523:6:19" + }, + { + "name": "tail", + "nativeSrc": "30532:4:19", + "nodeType": "YulIdentifier", + "src": "30532:4:19" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "30461:61:19", + "nodeType": "YulIdentifier", + "src": "30461:61:19" + }, + "nativeSrc": "30461:76:19", + "nodeType": "YulFunctionCall", + "src": "30461:76:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30453:4:19", + "nodeType": "YulIdentifier", + "src": "30453:4:19" + } + ] + } + ] + }, + "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", + "nativeSrc": "29904:640:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30052:9:19", + "nodeType": "YulTypedName", + "src": "30052:9:19", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "30064:6:19", + "nodeType": "YulTypedName", + "src": "30064:6:19", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "30072:6:19", + "nodeType": "YulTypedName", + "src": "30072:6:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "30080:6:19", + "nodeType": "YulTypedName", + "src": "30080:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "30088:6:19", + "nodeType": "YulTypedName", + "src": "30088:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "30099:4:19", + "nodeType": "YulTypedName", + "src": "30099:4:19", + "type": "" + } + ], + "src": "29904:640:19" + }, + { + "body": { + "nativeSrc": "30612:79:19", + "nodeType": "YulBlock", + "src": "30612:79:19", + "statements": [ + { + "nativeSrc": "30622:22:19", + "nodeType": "YulAssignment", + "src": "30622:22:19", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "30637:6:19", + "nodeType": "YulIdentifier", + "src": "30637:6:19" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "30631:5:19", + "nodeType": "YulIdentifier", + "src": "30631:5:19" + }, + "nativeSrc": "30631:13:19", + "nodeType": "YulFunctionCall", + "src": "30631:13:19" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "30622:5:19", + "nodeType": "YulIdentifier", + "src": "30622:5:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30679:5:19", + "nodeType": "YulIdentifier", + "src": "30679:5:19" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "30653:25:19", + "nodeType": "YulIdentifier", + "src": "30653:25:19" + }, + "nativeSrc": "30653:32:19", + "nodeType": "YulFunctionCall", + "src": "30653:32:19" + }, + "nativeSrc": "30653:32:19", + "nodeType": "YulExpressionStatement", + "src": "30653:32:19" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "30550:141:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "30590:6:19", + "nodeType": "YulTypedName", + "src": "30590:6:19", + "type": "" + }, + { + "name": "end", + "nativeSrc": "30598:3:19", + "nodeType": "YulTypedName", + "src": "30598:3:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "30606:5:19", + "nodeType": "YulTypedName", + "src": "30606:5:19", + "type": "" + } + ], + "src": "30550:141:19" + }, + { + "body": { + "nativeSrc": "30773:273:19", + "nodeType": "YulBlock", + "src": "30773:273:19", + "statements": [ + { + "body": { + "nativeSrc": "30819:83:19", + "nodeType": "YulBlock", + "src": "30819:83:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "30821:77:19", + "nodeType": "YulIdentifier", + "src": "30821:77:19" + }, + "nativeSrc": "30821:79:19", + "nodeType": "YulFunctionCall", + "src": "30821:79:19" + }, + "nativeSrc": "30821:79:19", + "nodeType": "YulExpressionStatement", + "src": "30821:79:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "30794:7:19", + "nodeType": "YulIdentifier", + "src": "30794:7:19" + }, + { + "name": "headStart", + "nativeSrc": "30803:9:19", + "nodeType": "YulIdentifier", + "src": "30803:9:19" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30790:3:19", + "nodeType": "YulIdentifier", + "src": "30790:3:19" + }, + "nativeSrc": "30790:23:19", + "nodeType": "YulFunctionCall", + "src": "30790:23:19" + }, + { + "kind": "number", + "nativeSrc": "30815:2:19", + "nodeType": "YulLiteral", + "src": "30815:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "30786:3:19", + "nodeType": "YulIdentifier", + "src": "30786:3:19" + }, + "nativeSrc": "30786:32:19", + "nodeType": "YulFunctionCall", + "src": "30786:32:19" + }, + "nativeSrc": "30783:119:19", + "nodeType": "YulIf", + "src": "30783:119:19" + }, + { + "nativeSrc": "30912:127:19", + "nodeType": "YulBlock", + "src": "30912:127:19", + "statements": [ + { + "nativeSrc": "30927:15:19", + "nodeType": "YulVariableDeclaration", + "src": "30927:15:19", + "value": { + "kind": "number", + "nativeSrc": "30941:1:19", + "nodeType": "YulLiteral", + "src": "30941:1:19", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "30931:6:19", + "nodeType": "YulTypedName", + "src": "30931:6:19", + "type": "" + } + ] + }, + { + "nativeSrc": "30956:73:19", + "nodeType": "YulAssignment", + "src": "30956:73:19", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31001:9:19", + "nodeType": "YulIdentifier", + "src": "31001:9:19" + }, + { + "name": "offset", + "nativeSrc": "31012:6:19", + "nodeType": "YulIdentifier", + "src": "31012:6:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30997:3:19", + "nodeType": "YulIdentifier", + "src": "30997:3:19" + }, + "nativeSrc": "30997:22:19", + "nodeType": "YulFunctionCall", + "src": "30997:22:19" + }, + { + "name": "dataEnd", + "nativeSrc": "31021:7:19", + "nodeType": "YulIdentifier", + "src": "31021:7:19" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "30966:30:19", + "nodeType": "YulIdentifier", + "src": "30966:30:19" + }, + "nativeSrc": "30966:63:19", + "nodeType": "YulFunctionCall", + "src": "30966:63:19" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "30956:6:19", + "nodeType": "YulIdentifier", + "src": "30956:6:19" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "30697:349:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30743:9:19", + "nodeType": "YulTypedName", + "src": "30743:9:19", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "30754:7:19", + "nodeType": "YulTypedName", + "src": "30754:7:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "30766:6:19", + "nodeType": "YulTypedName", + "src": "30766:6:19", + "type": "" + } + ], + "src": "30697:349:19" + }, + { + "body": { + "nativeSrc": "31178:206:19", + "nodeType": "YulBlock", + "src": "31178:206:19", + "statements": [ + { + "nativeSrc": "31188:26:19", + "nodeType": "YulAssignment", + "src": "31188:26:19", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31200:9:19", + "nodeType": "YulIdentifier", + "src": "31200:9:19" + }, + { + "kind": "number", + "nativeSrc": "31211:2:19", + "nodeType": "YulLiteral", + "src": "31211:2:19", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31196:3:19", + "nodeType": "YulIdentifier", + "src": "31196:3:19" + }, + "nativeSrc": "31196:18:19", + "nodeType": "YulFunctionCall", + "src": "31196:18:19" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31188:4:19", + "nodeType": "YulIdentifier", + "src": "31188:4:19" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "31268:6:19", + "nodeType": "YulIdentifier", + "src": "31268:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31281:9:19", + "nodeType": "YulIdentifier", + "src": "31281:9:19" + }, + { + "kind": "number", + "nativeSrc": "31292:1:19", + "nodeType": "YulLiteral", + "src": "31292:1:19", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31277:3:19", + "nodeType": "YulIdentifier", + "src": "31277:3:19" + }, + "nativeSrc": "31277:17:19", + "nodeType": "YulFunctionCall", + "src": "31277:17:19" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "31224:43:19", + "nodeType": "YulIdentifier", + "src": "31224:43:19" + }, + "nativeSrc": "31224:71:19", + "nodeType": "YulFunctionCall", + "src": "31224:71:19" + }, + "nativeSrc": "31224:71:19", + "nodeType": "YulExpressionStatement", + "src": "31224:71:19" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "31349:6:19", + "nodeType": "YulIdentifier", + "src": "31349:6:19" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31362:9:19", + "nodeType": "YulIdentifier", + "src": "31362:9:19" + }, + { + "kind": "number", + "nativeSrc": "31373:2:19", + "nodeType": "YulLiteral", + "src": "31373:2:19", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31358:3:19", + "nodeType": "YulIdentifier", + "src": "31358:3:19" + }, + "nativeSrc": "31358:18:19", + "nodeType": "YulFunctionCall", + "src": "31358:18:19" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "31305:43:19", + "nodeType": "YulIdentifier", + "src": "31305:43:19" + }, + "nativeSrc": "31305:72:19", + "nodeType": "YulFunctionCall", + "src": "31305:72:19" + }, + "nativeSrc": "31305:72:19", + "nodeType": "YulExpressionStatement", + "src": "31305:72:19" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "31052:332:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31142:9:19", + "nodeType": "YulTypedName", + "src": "31142:9:19", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31154:6:19", + "nodeType": "YulTypedName", + "src": "31154:6:19", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31162:6:19", + "nodeType": "YulTypedName", + "src": "31162:6:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31173:4:19", + "nodeType": "YulTypedName", + "src": "31173:4:19", + "type": "" + } + ], + "src": "31052:332:19" + }, + { + "body": { + "nativeSrc": "31438:362:19", + "nodeType": "YulBlock", + "src": "31438:362:19", + "statements": [ + { + "nativeSrc": "31448:25:19", + "nodeType": "YulAssignment", + "src": "31448:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31471:1:19", + "nodeType": "YulIdentifier", + "src": "31471:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31453:17:19", + "nodeType": "YulIdentifier", + "src": "31453:17:19" + }, + "nativeSrc": "31453:20:19", + "nodeType": "YulFunctionCall", + "src": "31453:20:19" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "31448:1:19", + "nodeType": "YulIdentifier", + "src": "31448:1:19" + } + ] + }, + { + "nativeSrc": "31482:25:19", + "nodeType": "YulAssignment", + "src": "31482:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "31505:1:19", + "nodeType": "YulIdentifier", + "src": "31505:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31487:17:19", + "nodeType": "YulIdentifier", + "src": "31487:17:19" + }, + "nativeSrc": "31487:20:19", + "nodeType": "YulFunctionCall", + "src": "31487:20:19" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "31482:1:19", + "nodeType": "YulIdentifier", + "src": "31482:1:19" + } + ] + }, + { + "nativeSrc": "31516:28:19", + "nodeType": "YulVariableDeclaration", + "src": "31516:28:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31539:1:19", + "nodeType": "YulIdentifier", + "src": "31539:1:19" + }, + { + "name": "y", + "nativeSrc": "31542:1:19", + "nodeType": "YulIdentifier", + "src": "31542:1:19" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "31535:3:19", + "nodeType": "YulIdentifier", + "src": "31535:3:19" + }, + "nativeSrc": "31535:9:19", + "nodeType": "YulFunctionCall", + "src": "31535:9:19" + }, + "variables": [ + { + "name": "product_raw", + "nativeSrc": "31520:11:19", + "nodeType": "YulTypedName", + "src": "31520:11:19", + "type": "" + } + ] + }, + { + "nativeSrc": "31553:41:19", + "nodeType": "YulAssignment", + "src": "31553:41:19", + "value": { + "arguments": [ + { + "name": "product_raw", + "nativeSrc": "31582:11:19", + "nodeType": "YulIdentifier", + "src": "31582:11:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31564:17:19", + "nodeType": "YulIdentifier", + "src": "31564:17:19" + }, + "nativeSrc": "31564:30:19", + "nodeType": "YulFunctionCall", + "src": "31564:30:19" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "31553:7:19", + "nodeType": "YulIdentifier", + "src": "31553:7:19" + } + ] + }, + { + "body": { + "nativeSrc": "31771:22:19", + "nodeType": "YulBlock", + "src": "31771:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "31773:16:19", + "nodeType": "YulIdentifier", + "src": "31773:16:19" + }, + "nativeSrc": "31773:18:19", + "nodeType": "YulFunctionCall", + "src": "31773:18:19" + }, + "nativeSrc": "31773:18:19", + "nodeType": "YulExpressionStatement", + "src": "31773:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "31704:1:19", + "nodeType": "YulIdentifier", + "src": "31704:1:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "31697:6:19", + "nodeType": "YulIdentifier", + "src": "31697:6:19" + }, + "nativeSrc": "31697:9:19", + "nodeType": "YulFunctionCall", + "src": "31697:9:19" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "31727:1:19", + "nodeType": "YulIdentifier", + "src": "31727:1:19" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "31734:7:19", + "nodeType": "YulIdentifier", + "src": "31734:7:19" + }, + { + "name": "x", + "nativeSrc": "31743:1:19", + "nodeType": "YulIdentifier", + "src": "31743:1:19" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "31730:3:19", + "nodeType": "YulIdentifier", + "src": "31730:3:19" + }, + "nativeSrc": "31730:15:19", + "nodeType": "YulFunctionCall", + "src": "31730:15:19" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "31724:2:19", + "nodeType": "YulIdentifier", + "src": "31724:2:19" + }, + "nativeSrc": "31724:22:19", + "nodeType": "YulFunctionCall", + "src": "31724:22:19" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "31677:2:19", + "nodeType": "YulIdentifier", + "src": "31677:2:19" + }, + "nativeSrc": "31677:83:19", + "nodeType": "YulFunctionCall", + "src": "31677:83:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "31657:6:19", + "nodeType": "YulIdentifier", + "src": "31657:6:19" + }, + "nativeSrc": "31657:113:19", + "nodeType": "YulFunctionCall", + "src": "31657:113:19" + }, + "nativeSrc": "31654:139:19", + "nodeType": "YulIf", + "src": "31654:139:19" + } + ] + }, + "name": "checked_mul_t_uint256", + "nativeSrc": "31390:410:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "31421:1:19", + "nodeType": "YulTypedName", + "src": "31421:1:19", + "type": "" + }, + { + "name": "y", + "nativeSrc": "31424:1:19", + "nodeType": "YulTypedName", + "src": "31424:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "31430:7:19", + "nodeType": "YulTypedName", + "src": "31430:7:19", + "type": "" + } + ], + "src": "31390:410:19" + }, + { + "body": { + "nativeSrc": "31850:147:19", + "nodeType": "YulBlock", + "src": "31850:147:19", + "statements": [ + { + "nativeSrc": "31860:25:19", + "nodeType": "YulAssignment", + "src": "31860:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31883:1:19", + "nodeType": "YulIdentifier", + "src": "31883:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31865:17:19", + "nodeType": "YulIdentifier", + "src": "31865:17:19" + }, + "nativeSrc": "31865:20:19", + "nodeType": "YulFunctionCall", + "src": "31865:20:19" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "31860:1:19", + "nodeType": "YulIdentifier", + "src": "31860:1:19" + } + ] + }, + { + "nativeSrc": "31894:25:19", + "nodeType": "YulAssignment", + "src": "31894:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "31917:1:19", + "nodeType": "YulIdentifier", + "src": "31917:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "31899:17:19", + "nodeType": "YulIdentifier", + "src": "31899:17:19" + }, + "nativeSrc": "31899:20:19", + "nodeType": "YulFunctionCall", + "src": "31899:20:19" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "31894:1:19", + "nodeType": "YulIdentifier", + "src": "31894:1:19" + } + ] + }, + { + "nativeSrc": "31928:16:19", + "nodeType": "YulAssignment", + "src": "31928:16:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31939:1:19", + "nodeType": "YulIdentifier", + "src": "31939:1:19" + }, + { + "name": "y", + "nativeSrc": "31942:1:19", + "nodeType": "YulIdentifier", + "src": "31942:1:19" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31935:3:19", + "nodeType": "YulIdentifier", + "src": "31935:3:19" + }, + "nativeSrc": "31935:9:19", + "nodeType": "YulFunctionCall", + "src": "31935:9:19" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "31928:3:19", + "nodeType": "YulIdentifier", + "src": "31928:3:19" + } + ] + }, + { + "body": { + "nativeSrc": "31968:22:19", + "nodeType": "YulBlock", + "src": "31968:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "31970:16:19", + "nodeType": "YulIdentifier", + "src": "31970:16:19" + }, + "nativeSrc": "31970:18:19", + "nodeType": "YulFunctionCall", + "src": "31970:18:19" + }, + "nativeSrc": "31970:18:19", + "nodeType": "YulExpressionStatement", + "src": "31970:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "31960:1:19", + "nodeType": "YulIdentifier", + "src": "31960:1:19" + }, + { + "name": "sum", + "nativeSrc": "31963:3:19", + "nodeType": "YulIdentifier", + "src": "31963:3:19" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "31957:2:19", + "nodeType": "YulIdentifier", + "src": "31957:2:19" + }, + "nativeSrc": "31957:10:19", + "nodeType": "YulFunctionCall", + "src": "31957:10:19" + }, + "nativeSrc": "31954:36:19", + "nodeType": "YulIf", + "src": "31954:36:19" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "31806:191:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "31837:1:19", + "nodeType": "YulTypedName", + "src": "31837:1:19", + "type": "" + }, + { + "name": "y", + "nativeSrc": "31840:1:19", + "nodeType": "YulTypedName", + "src": "31840:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "31846:3:19", + "nodeType": "YulTypedName", + "src": "31846:3:19", + "type": "" + } + ], + "src": "31806:191:19" + }, + { + "body": { + "nativeSrc": "32031:152:19", + "nodeType": "YulBlock", + "src": "32031:152:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32048:1:19", + "nodeType": "YulLiteral", + "src": "32048:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "32051:77:19", + "nodeType": "YulLiteral", + "src": "32051:77:19", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32041:6:19", + "nodeType": "YulIdentifier", + "src": "32041:6:19" + }, + "nativeSrc": "32041:88:19", + "nodeType": "YulFunctionCall", + "src": "32041:88:19" + }, + "nativeSrc": "32041:88:19", + "nodeType": "YulExpressionStatement", + "src": "32041:88:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32145:1:19", + "nodeType": "YulLiteral", + "src": "32145:1:19", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "32148:4:19", + "nodeType": "YulLiteral", + "src": "32148:4:19", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32138:6:19", + "nodeType": "YulIdentifier", + "src": "32138:6:19" + }, + "nativeSrc": "32138:15:19", + "nodeType": "YulFunctionCall", + "src": "32138:15:19" + }, + "nativeSrc": "32138:15:19", + "nodeType": "YulExpressionStatement", + "src": "32138:15:19" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32169:1:19", + "nodeType": "YulLiteral", + "src": "32169:1:19", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "32172:4:19", + "nodeType": "YulLiteral", + "src": "32172:4:19", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "32162:6:19", + "nodeType": "YulIdentifier", + "src": "32162:6:19" + }, + "nativeSrc": "32162:15:19", + "nodeType": "YulFunctionCall", + "src": "32162:15:19" + }, + "nativeSrc": "32162:15:19", + "nodeType": "YulExpressionStatement", + "src": "32162:15:19" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "32003:180:19", + "nodeType": "YulFunctionDefinition", + "src": "32003:180:19" + }, + { + "body": { + "nativeSrc": "32231:143:19", + "nodeType": "YulBlock", + "src": "32231:143:19", + "statements": [ + { + "nativeSrc": "32241:25:19", + "nodeType": "YulAssignment", + "src": "32241:25:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "32264:1:19", + "nodeType": "YulIdentifier", + "src": "32264:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32246:17:19", + "nodeType": "YulIdentifier", + "src": "32246:17:19" + }, + "nativeSrc": "32246:20:19", + "nodeType": "YulFunctionCall", + "src": "32246:20:19" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "32241:1:19", + "nodeType": "YulIdentifier", + "src": "32241:1:19" + } + ] + }, + { + "nativeSrc": "32275:25:19", + "nodeType": "YulAssignment", + "src": "32275:25:19", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "32298:1:19", + "nodeType": "YulIdentifier", + "src": "32298:1:19" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32280:17:19", + "nodeType": "YulIdentifier", + "src": "32280:17:19" + }, + "nativeSrc": "32280:20:19", + "nodeType": "YulFunctionCall", + "src": "32280:20:19" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "32275:1:19", + "nodeType": "YulIdentifier", + "src": "32275:1:19" + } + ] + }, + { + "body": { + "nativeSrc": "32322:22:19", + "nodeType": "YulBlock", + "src": "32322:22:19", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nativeSrc": "32324:16:19", + "nodeType": "YulIdentifier", + "src": "32324:16:19" + }, + "nativeSrc": "32324:18:19", + "nodeType": "YulFunctionCall", + "src": "32324:18:19" + }, + "nativeSrc": "32324:18:19", + "nodeType": "YulExpressionStatement", + "src": "32324:18:19" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nativeSrc": "32319:1:19", + "nodeType": "YulIdentifier", + "src": "32319:1:19" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "32312:6:19", + "nodeType": "YulIdentifier", + "src": "32312:6:19" + }, + "nativeSrc": "32312:9:19", + "nodeType": "YulFunctionCall", + "src": "32312:9:19" + }, + "nativeSrc": "32309:35:19", + "nodeType": "YulIf", + "src": "32309:35:19" + }, + { + "nativeSrc": "32354:14:19", + "nodeType": "YulAssignment", + "src": "32354:14:19", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "32363:1:19", + "nodeType": "YulIdentifier", + "src": "32363:1:19" + }, + { + "name": "y", + "nativeSrc": "32366:1:19", + "nodeType": "YulIdentifier", + "src": "32366:1:19" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "32359:3:19", + "nodeType": "YulIdentifier", + "src": "32359:3:19" + }, + "nativeSrc": "32359:9:19", + "nodeType": "YulFunctionCall", + "src": "32359:9:19" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "32354:1:19", + "nodeType": "YulIdentifier", + "src": "32354:1:19" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nativeSrc": "32189:185:19", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "32220:1:19", + "nodeType": "YulTypedName", + "src": "32220:1:19", + "type": "" + }, + { + "name": "y", + "nativeSrc": "32223:1:19", + "nodeType": "YulTypedName", + "src": "32223:1:19", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nativeSrc": "32229:1:19", + "nodeType": "YulTypedName", + "src": "32229:1:19", + "type": "" + } + ], + "src": "32189:185:19" + } + ] + }, + "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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function 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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_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_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(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 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_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 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 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_with_cleanup(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 panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b(memPtr) {\n\n mstore(add(memPtr, 0), \"0.0001 ether required to mint\")\n\n }\n\n function abi_encode_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b__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_d759215c4a9162c9985f76f21d92f47795c441f142e0a00a63354c87f14bd49b_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 increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1(memPtr) {\n\n mstore(add(memPtr, 0), \"No funds available\")\n\n }\n\n function abi_encode_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1__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_1864f6ba8e67520bd13921f2bc328aff378bb8aa77729a9ff30bb6681c7eb9b1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88(memPtr) {\n\n mstore(add(memPtr, 0), \"Withdrawal failed\")\n\n }\n\n function abi_encode_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88__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_ec24209b271cd4d65181d9e8c6d9d718c94d28a7972011b1be42ea8d094a1a88_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d(memPtr) {\n\n mstore(add(memPtr, 0), 0x7b226e616d65223a2022466c756666792046757279222c202264657363726970)\n\n mstore(add(memPtr, 32), 0x74696f6e223a2022596f75722061636365737320696e746f20616e7920657665)\n\n mstore(add(memPtr, 64), \"nt created using this token addr\")\n\n mstore(add(memPtr, 96), 0x657373222c2022696d616765223a220000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 111)\n store_literal_in_memory_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d(pos)\n end := add(pos, 111)\n }\n\n function store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475(memPtr) {\n\n mstore(add(memPtr, 0), 0x227d000000000000000000000000000000000000000000000000000000000000)\n\n }\n\n function abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 2)\n store_literal_in_memory_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475(pos)\n end := add(pos, 2)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_3e079565a6ed9319453ae1b05c5c347cff57c5f34dd6f0044af66447c176f60d_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa(memPtr) {\n\n mstore(add(memPtr, 0), \"data:application/json;base64,\")\n\n }\n\n function abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 29)\n store_literal_in_memory_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa(pos)\n end := add(pos, 29)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d__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_2ee4be0219ba2ee2aab40233cc94dabafd837144ead897374037d84714acc28d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(memPtr) {\n\n mstore(add(memPtr, 0), \"SVG data too large\")\n\n }\n\n function abi_encode_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244__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_e25e75b59be218cf0e3a396d80fa22523e116b1d9f1f4791990fc82a7235c244_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422(memPtr) {\n\n mstore(add(memPtr, 0), \"New owner cannot be the zero add\")\n\n mstore(add(memPtr, 32), \"ress\")\n\n }\n\n function abi_encode_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n store_literal_in_memory_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422__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_fa71ef4c1fdf1e34de72d05db09cce7beb630160c908930ad641e3534e5b4422_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 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_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_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 function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n}\n", + "id": 19, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106101445760003560e01c806370a08231116100b6578063a31e06da1161006f578063a31e06da14610446578063a52db60d14610471578063b88d4fde1461049a578063c87b56dd146104c3578063e985e9c514610500578063f2fde38b1461053d5761014b565b806370a0823114610336578063715018a61461037357806371aee1931461038a5780638da5cb5b146103c757806395d89b41146103f2578063a22cb4651461041d5761014b565b806323b872dd1161010857806323b872dd1461022857806324600fc31461025157806330d871c61461026857806342842e0e146102a55780636352211e146102ce5780636817c76c1461030b5761014b565b806301ffc9a71461015057806306fdde031461018d578063081812fc146101b8578063095ea7b3146101f55780631249c58b1461021e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101776004803603810190610172919061229d565b610566565b60405161018491906122e5565b60405180910390f35b34801561019957600080fd5b506101a26105c7565b6040516101af9190612390565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da91906123e8565b610659565b6040516101ec9190612456565b60405180910390f35b34801561020157600080fd5b5061021c6004803603810190610217919061249d565b610675565b005b61022661068b565b005b34801561023457600080fd5b5061024f600480360381019061024a91906124dd565b6107e2565b005b34801561025d57600080fd5b506102666108e4565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612665565b6109eb565b60405161029c9190612390565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906124dd565b610a5f565b005b3480156102da57600080fd5b506102f560048036038101906102f091906123e8565b610a7f565b6040516103029190612456565b60405180910390f35b34801561031757600080fd5b50610320610a91565b60405161032d91906126bd565b60405180910390f35b34801561034257600080fd5b5061035d600480360381019061035891906126d8565b610a97565b60405161036a91906126bd565b60405180910390f35b34801561037f57600080fd5b50610388610b51565b005b34801561039657600080fd5b506103b160048036038101906103ac9190612665565b610b65565b6040516103be9190612390565b60405180910390f35b3480156103d357600080fd5b506103dc610bb5565b6040516103e99190612456565b60405180910390f35b3480156103fe57600080fd5b50610407610bdf565b6040516104149190612390565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612731565b610c71565b005b34801561045257600080fd5b5061045b610c87565b6040516104689190612390565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612665565b610d15565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612812565b610dba565b005b3480156104cf57600080fd5b506104ea60048036038101906104e591906123e8565b610dd7565b6040516104f79190612390565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612895565b610eea565b60405161053491906122e5565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906126d8565b610f7e565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c057506105bf82611001565b5b9050919050565b6060600080546105d690612904565b80601f016020809104026020016040519081016040528092919081815260200182805461060290612904565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050905090565b6000610664826110e3565b5061066e8261116b565b9050919050565b61068782826106826111a8565b6111b0565b5050565b60095434146106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690612981565b60405180910390fd5b6000610764600a80546106e190612904565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90612904565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b50505050506109eb565b9050600061077182610b65565b905060086000815480929190610786906129d0565b91905055506000600854905061079c33826111c2565b6107a681836111e0565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a816040516107d591906126bd565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108545760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161084b9190612456565b60405180910390fd5b600061086883836108636111a8565b61123c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108de578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108d593929190612a18565b60405180910390fd5b50505050565b6108ec611456565b600047905060008111610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612a9b565b60405180910390fd5b600061093e610bb5565b73ffffffffffffffffffffffffffffffffffffffff168260405161096190612aec565b60006040518083038185875af1925050503d806000811461099e576040519150601f19603f3d011682016040523d82523d6000602084013e6109a3565b606091505b50509050806109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612b4d565b60405180910390fd5b5050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000081525090506000610a32846114dd565b90508181604051602001610a47929190612ba9565b60405160208183030381529060405292505050919050565b610a7a83838360405180602001604052806000815250610dba565b505050565b6000610a8a826110e3565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b0a5760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b019190612456565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b59611456565b610b63600061150a565b565b6060610b8f82604051602001610b7b9190612cd7565b6040516020818303038152906040526114dd565b604051602001610b9f9190612d50565b6040516020818303038152906040529050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610bee90612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90612904565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b610c83610c7c6111a8565b83836115d0565b5050565b600a8054610c9490612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090612904565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b505050505081565b610d1d611456565b6000815111610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612dbe565b60405180910390fd5b61138881511115610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612e2a565b60405180910390fd5b80600a9081610db69190612ff6565b5050565b610dc58484846107e2565b610dd18484848461173f565b50505050565b6060610de2826110e3565b506000600660008481526020019081526020016000208054610e0390612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2f90612904565b8015610e7c5780601f10610e5157610100808354040283529160200191610e7c565b820191906000526020600020905b815481529060010190602001808311610e5f57829003601f168201915b505050505090506000610e8d6118f6565b90506000815103610ea2578192505050610ee5565b600082511115610ed7578082604051602001610ebf929190612ba9565b60405160208183030381529060405292505050610ee5565b610ee08461190d565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f86611456565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec9061313a565b60405180910390fd5b610ffe8161150a565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806110dc57506110db82611976565b5b9050919050565b6000806110ef836119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116257826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161115991906126bd565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6111bd8383836001611a1d565b505050565b6111dc828260405180602001604052806000815250611be2565b5050565b806006600084815260200190815260200160002090816112009190612ff6565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161123091906126bd565b60405180910390a15050565b600080611248846119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461128a57611289818486611bfe565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461131b576112cc600085600080611a1d565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461139e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61145e6111a8565b73ffffffffffffffffffffffffffffffffffffffff1661147c610bb5565b73ffffffffffffffffffffffffffffffffffffffff16146114db5761149f6111a8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114d29190612456565b60405180910390fd5b565b60606115038260405180606001604052806040815260200161333d604091396001611cc2565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164157816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116389190612456565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161173291906122e5565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156118f0578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117836111a8565b8685856040518563ffffffff1660e01b81526004016117a594939291906131af565b6020604051808303816000875af19250505080156117e157506040513d601f19601f820116820180604052508101906117de9190613210565b60015b611865573d8060008114611811576040519150601f19603f3d011682016040523d82523d6000602084013e611816565b606091505b50600081510361185d57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118549190612456565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146118ee57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118e59190612456565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b6060611918826110e3565b5060006119236118f6565b90506000815111611943576040518060200160405280600081525061196e565b8061194d84611e56565b60405160200161195e929190612ba9565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611a565750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b8a576000611a66846110e3565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ad157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae45750611ae28184610eea565b155b15611b2657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611b1d9190612456565b60405180910390fd5b8115611b8857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611bec8383611f24565b611bf9600084848461173f565b505050565b611c0983838361201d565b611cbd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7e57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611c7591906126bd565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611cb492919061323d565b60405180910390fd5b505050565b60606000845103611ce457604051806020016040528060008152509050611e4f565b600082611d16576003600286516004611cfd9190613266565b611d0791906132a8565b611d11919061330b565b611d3d565b600360028651611d2691906132a8565b611d30919061330b565b6004611d3c9190613266565b5b905060008167ffffffffffffffff811115611d5b57611d5a61253a565b5b6040519080825280601f01601f191660200182016040528015611d8d5781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b82841015611e03576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611da8565b8082528915611e435760038c510660018114611e265760028114611e3957611e41565b603d6001870353603d6002870353611e41565b603d60018703535b505b50505050505080925050505b9392505050565b606060006001611e65846120de565b01905060008167ffffffffffffffff811115611e8457611e8361253a565b5b6040519080825280601f01601f191660200182016040528015611eb65781602001600182028036833780820191505090505b509050600082602001820190505b600115611f19578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f0d57611f0c6132dc565b5b04945060008503611ec4575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f965760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8d9190612456565b60405180910390fd5b6000611fa48383600061123c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120185760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161200f9190612456565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120d557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061209657506120958484610eea565b5b806120d457508273ffffffffffffffffffffffffffffffffffffffff166120bc8361116b565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061213c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612132576121316132dc565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612179576d04ee2d6d415b85acef8100000000838161216f5761216e6132dc565b5b0492506020810190505b662386f26fc1000083106121a857662386f26fc10000838161219e5761219d6132dc565b5b0492506010810190505b6305f5e10083106121d1576305f5e10083816121c7576121c66132dc565b5b0492506008810190505b61271083106121f65761271083816121ec576121eb6132dc565b5b0492506004810190505b60648310612219576064838161220f5761220e6132dc565b5b0492506002810190505b600a8310612228576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61227a81612245565b811461228557600080fd5b50565b60008135905061229781612271565b92915050565b6000602082840312156122b3576122b261223b565b5b60006122c184828501612288565b91505092915050565b60008115159050919050565b6122df816122ca565b82525050565b60006020820190506122fa60008301846122d6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233a57808201518184015260208101905061231f565b60008484015250505050565b6000601f19601f8301169050919050565b600061236282612300565b61236c818561230b565b935061237c81856020860161231c565b61238581612346565b840191505092915050565b600060208201905081810360008301526123aa8184612357565b905092915050565b6000819050919050565b6123c5816123b2565b81146123d057600080fd5b50565b6000813590506123e2816123bc565b92915050565b6000602082840312156123fe576123fd61223b565b5b600061240c848285016123d3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244082612415565b9050919050565b61245081612435565b82525050565b600060208201905061246b6000830184612447565b92915050565b61247a81612435565b811461248557600080fd5b50565b60008135905061249781612471565b92915050565b600080604083850312156124b4576124b361223b565b5b60006124c285828601612488565b92505060206124d3858286016123d3565b9150509250929050565b6000806000606084860312156124f6576124f561223b565b5b600061250486828701612488565b935050602061251586828701612488565b9250506040612526868287016123d3565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61257282612346565b810181811067ffffffffffffffff821117156125915761259061253a565b5b80604052505050565b60006125a4612231565b90506125b08282612569565b919050565b600067ffffffffffffffff8211156125d0576125cf61253a565b5b6125d982612346565b9050602081019050919050565b82818337600083830152505050565b6000612608612603846125b5565b61259a565b90508281526020810184848401111561262457612623612535565b5b61262f8482856125e6565b509392505050565b600082601f83011261264c5761264b612530565b5b813561265c8482602086016125f5565b91505092915050565b60006020828403121561267b5761267a61223b565b5b600082013567ffffffffffffffff81111561269957612698612240565b5b6126a584828501612637565b91505092915050565b6126b7816123b2565b82525050565b60006020820190506126d260008301846126ae565b92915050565b6000602082840312156126ee576126ed61223b565b5b60006126fc84828501612488565b91505092915050565b61270e816122ca565b811461271957600080fd5b50565b60008135905061272b81612705565b92915050565b600080604083850312156127485761274761223b565b5b600061275685828601612488565b92505060206127678582860161271c565b9150509250929050565b600067ffffffffffffffff82111561278c5761278b61253a565b5b61279582612346565b9050602081019050919050565b60006127b56127b084612771565b61259a565b9050828152602081018484840111156127d1576127d0612535565b5b6127dc8482856125e6565b509392505050565b600082601f8301126127f9576127f8612530565b5b81356128098482602086016127a2565b91505092915050565b6000806000806080858703121561282c5761282b61223b565b5b600061283a87828801612488565b945050602061284b87828801612488565b935050604061285c878288016123d3565b925050606085013567ffffffffffffffff81111561287d5761287c612240565b5b612889878288016127e4565b91505092959194509250565b600080604083850312156128ac576128ab61223b565b5b60006128ba85828601612488565b92505060206128cb85828601612488565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061291c57607f821691505b60208210810361292f5761292e6128d5565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061296b601d8361230b565b915061297682612935565b602082019050919050565b6000602082019050818103600083015261299a8161295e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129db826123b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a0d57612a0c6129a1565b5b600182019050919050565b6000606082019050612a2d6000830186612447565b612a3a60208301856126ae565b612a476040830184612447565b949350505050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b6000612a8560128361230b565b9150612a9082612a4f565b602082019050919050565b60006020820190508181036000830152612ab481612a78565b9050919050565b600081905092915050565b50565b6000612ad6600083612abb565b9150612ae182612ac6565b600082019050919050565b6000612af782612ac9565b9150819050919050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612b3760118361230b565b9150612b4282612b01565b602082019050919050565b60006020820190508181036000830152612b6681612b2a565b9050919050565b600081905092915050565b6000612b8382612300565b612b8d8185612b6d565b9350612b9d81856020860161231c565b80840191505092915050565b6000612bb58285612b78565b9150612bc18284612b78565b91508190509392505050565b7f7b226e616d65223a2022466c756666792046757279222c20226465736372697060008201527f74696f6e223a2022596f75722061636365737320696e746f20616e792065766560208201527f6e742063726561746564207573696e67207468697320746f6b656e206164647260408201527f657373222c2022696d616765223a220000000000000000000000000000000000606082015250565b6000612c75606f83612b6d565b9150612c8082612bcd565b606f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612cc1600283612b6d565b9150612ccc82612c8b565b600282019050919050565b6000612ce282612c68565b9150612cee8284612b78565b9150612cf982612cb4565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000612d3a601d83612b6d565b9150612d4582612d04565b601d82019050919050565b6000612d5b82612d2d565b9150612d678284612b78565b915081905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b6000612da860188361230b565b9150612db382612d72565b602082019050919050565b60006020820190508181036000830152612dd781612d9b565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000612e1460128361230b565b9150612e1f82612dde565b602082019050919050565b60006020820190508181036000830152612e4381612e07565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612eac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e6f565b612eb68683612e6f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612ef3612eee612ee9846123b2565b612ece565b6123b2565b9050919050565b6000819050919050565b612f0d83612ed8565b612f21612f1982612efa565b848454612e7c565b825550505050565b600090565b612f36612f29565b612f41818484612f04565b505050565b5b81811015612f6557612f5a600082612f2e565b600181019050612f47565b5050565b601f821115612faa57612f7b81612e4a565b612f8484612e5f565b81016020851015612f93578190505b612fa7612f9f85612e5f565b830182612f46565b50505b505050565b600082821c905092915050565b6000612fcd60001984600802612faf565b1980831691505092915050565b6000612fe68383612fbc565b9150826002028217905092915050565b612fff82612300565b67ffffffffffffffff8111156130185761301761253a565b5b6130228254612904565b61302d828285612f69565b600060209050601f831160018114613060576000841561304e578287015190505b6130588582612fda565b8655506130c0565b601f19841661306e86612e4a565b60005b8281101561309657848901518255600182019150602085019450602081019050613071565b868310156130b357848901516130af601f891682612fbc565b8355505b6001600288020188555050505b505050505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061312460248361230b565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006131818261315a565b61318b8185613165565b935061319b81856020860161231c565b6131a481612346565b840191505092915050565b60006080820190506131c46000830187612447565b6131d16020830186612447565b6131de60408301856126ae565b81810360608301526131f08184613176565b905095945050505050565b60008151905061320a81612271565b92915050565b6000602082840312156132265761322561223b565b5b6000613234848285016131fb565b91505092915050565b60006040820190506132526000830185612447565b61325f60208301846126ae565b9392505050565b6000613271826123b2565b915061327c836123b2565b925082820261328a816123b2565b915082820484148315176132a1576132a06129a1565b5b5092915050565b60006132b3826123b2565b91506132be836123b2565b92508282019050808211156132d6576132d56129a1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613316826123b2565b9150613321836123b2565b925082613331576133306132dc565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f1a1a46abdc0ea2e367c70d79d69481c4d0e6e587eee1932b56afa37249682e564736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x144 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xA31E06DA GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xA31E06DA EQ PUSH2 0x446 JUMPI DUP1 PUSH4 0xA52DB60D EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x53D JUMPI PUSH2 0x14B JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x336 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0x71AEE193 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x41D JUMPI PUSH2 0x14B JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x24600FC3 EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x30D871C6 EQ PUSH2 0x268 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x6817C76C EQ PUSH2 0x30B JUMPI PUSH2 0x14B JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x1249C58B EQ PUSH2 0x21E JUMPI PUSH2 0x14B JUMP JUMPDEST CALLDATASIZE PUSH2 0x14B JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0x229D JUMP JUMPDEST PUSH2 0x566 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x184 SWAP2 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A2 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x23E8 JUMP JUMPDEST PUSH2 0x659 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EC SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x217 SWAP2 SWAP1 PUSH2 0x249D JUMP JUMPDEST PUSH2 0x675 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH2 0x68B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x24DD JUMP JUMPDEST PUSH2 0x7E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x8E4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0x9EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29C SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C7 SWAP2 SWAP1 PUSH2 0x24DD JUMP JUMPDEST PUSH2 0xA5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F0 SWAP2 SWAP1 PUSH2 0x23E8 JUMP JUMPDEST PUSH2 0xA7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x320 PUSH2 0xA91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32D SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x342 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x358 SWAP2 SWAP1 PUSH2 0x26D8 JUMP JUMPDEST PUSH2 0xA97 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36A SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x388 PUSH2 0xB51 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x396 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3AC SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0xB65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E9 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x407 PUSH2 0xBDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x2731 JUMP JUMPDEST PUSH2 0xC71 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45B PUSH2 0xC87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x468 SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x498 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x493 SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0xD15 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0x2812 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x23E8 JUMP JUMPDEST PUSH2 0xDD7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4F7 SWAP2 SWAP1 PUSH2 0x2390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x527 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x522 SWAP2 SWAP1 PUSH2 0x2895 JUMP JUMPDEST PUSH2 0xEEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x549 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x564 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x55F SWAP2 SWAP1 PUSH2 0x26D8 JUMP JUMPDEST PUSH2 0xF7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH4 0x49064906 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5C0 JUMPI POP PUSH2 0x5BF DUP3 PUSH2 0x1001 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x5D6 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x602 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x64F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x624 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x64F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x632 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x664 DUP3 PUSH2 0x10E3 JUMP JUMPDEST POP PUSH2 0x66E DUP3 PUSH2 0x116B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x687 DUP3 DUP3 PUSH2 0x682 PUSH2 0x11A8 JUMP JUMPDEST PUSH2 0x11B0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD CALLVALUE EQ PUSH2 0x6CF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C6 SWAP1 PUSH2 0x2981 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x764 PUSH1 0xA DUP1 SLOAD PUSH2 0x6E1 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x70D SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x75A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x72F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x75A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x73D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x9EB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x771 DUP3 PUSH2 0xB65 JUMP JUMPDEST SWAP1 POP PUSH1 0x8 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x786 SWAP1 PUSH2 0x29D0 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x0 PUSH1 0x8 SLOAD SWAP1 POP PUSH2 0x79C CALLER DUP3 PUSH2 0x11C2 JUMP JUMPDEST PUSH2 0x7A6 DUP2 DUP4 PUSH2 0x11E0 JUMP JUMPDEST PUSH32 0x176B02BB2D12439FF7A20B59F402CCA16C76F50508B13EF3166A600EB719354A DUP2 PUSH1 0x40 MLOAD PUSH2 0x7D5 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x854 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x868 DUP4 DUP4 PUSH2 0x863 PUSH2 0x11A8 JUMP JUMPDEST PUSH2 0x123C JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8DE JUMPI DUP4 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x64283D7B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2A18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x8EC PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP PUSH1 0x0 DUP2 GT PUSH2 0x934 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x92B SWAP1 PUSH2 0x2A9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x93E PUSH2 0xBB5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x961 SWAP1 PUSH2 0x2AEC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x99E 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 0x9A3 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x9E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9DE SWAP1 PUSH2 0x2B4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174613A696D6167652F7376672B786D6C3B6261736536342C000000000000 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 PUSH2 0xA32 DUP5 PUSH2 0x14DD JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA47 SWAP3 SWAP2 SWAP1 PUSH2 0x2BA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA7A DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xDBA JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8A DUP3 PUSH2 0x10E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB0A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x89C62B6400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 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 PUSH2 0xB59 PUSH2 0x1456 JUMP JUMPDEST PUSH2 0xB63 PUSH1 0x0 PUSH2 0x150A JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0xB8F DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB7B SWAP2 SWAP1 PUSH2 0x2CD7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x14DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB9F SWAP2 SWAP1 PUSH2 0x2D50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xBEE SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC1A SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xC67 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC3C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xC67 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC4A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC83 PUSH2 0xC7C PUSH2 0x11A8 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x15D0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH2 0xC94 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCC0 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD0D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCE2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD0D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xCF0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xD1D PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xD61 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP1 PUSH2 0x2DBE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1388 DUP2 MLOAD GT ISZERO PUSH2 0xDA7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9E SWAP1 PUSH2 0x2E2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0xA SWAP1 DUP2 PUSH2 0xDB6 SWAP2 SWAP1 PUSH2 0x2FF6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xDC5 DUP5 DUP5 DUP5 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0xDD1 DUP5 DUP5 DUP5 DUP5 PUSH2 0x173F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xDE2 DUP3 PUSH2 0x10E3 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH2 0xE03 SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE2F SWAP1 PUSH2 0x2904 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE7C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE51 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE7C JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE5F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0xE8D PUSH2 0x18F6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xEA2 JUMPI DUP2 SWAP3 POP POP POP PUSH2 0xEE5 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT ISZERO PUSH2 0xED7 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEBF SWAP3 SWAP2 SWAP1 PUSH2 0x2BA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP PUSH2 0xEE5 JUMP JUMPDEST PUSH2 0xEE0 DUP5 PUSH2 0x190D JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 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 PUSH2 0xF86 PUSH2 0x1456 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xFF5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFEC SWAP1 PUSH2 0x313A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFFE DUP2 PUSH2 0x150A JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x10CC JUMPI POP PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x10DC JUMPI POP PUSH2 0x10DB DUP3 PUSH2 0x1976 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10EF DUP4 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1162 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1159 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 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 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11BD DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x1A1D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x11DC DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1BE2 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x6 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x1200 SWAP2 SWAP1 PUSH2 0x2FF6 JUMP JUMPDEST POP PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1230 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1248 DUP5 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x128A JUMPI PUSH2 0x1289 DUP2 DUP5 DUP7 PUSH2 0x1BFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x131B JUMPI PUSH2 0x12CC PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x1A1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 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 SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x139E JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 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 ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 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 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x145E PUSH2 0x11A8 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x147C PUSH2 0xBB5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x14DB JUMPI PUSH2 0x149F PUSH2 0x11A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14D2 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1503 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x333D PUSH1 0x40 SWAP2 CODECOPY PUSH1 0x1 PUSH2 0x1CC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1641 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x5B08BA1800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1638 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1732 SWAP2 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x18F0 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x150B7A02 PUSH2 0x1783 PUSH2 0x11A8 JUMP JUMPDEST DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17A5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31AF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x17E1 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DE SWAP2 SWAP1 PUSH2 0x3210 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1865 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1811 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 0x1816 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x185D JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1854 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0x150B7A02 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x18EE JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18E5 SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1918 DUP3 PUSH2 0x10E3 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1923 PUSH2 0x18F6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1943 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x196E JUMP JUMPDEST DUP1 PUSH2 0x194D DUP5 PUSH2 0x1E56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x195E SWAP3 SWAP2 SWAP1 PUSH2 0x2BA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 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 DUP1 DUP1 PUSH2 0x1A56 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x0 PUSH2 0x1A66 DUP5 PUSH2 0x10E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1AD1 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1AE4 JUMPI POP PUSH2 0x1AE2 DUP2 DUP5 PUSH2 0xEEA JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1B26 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0xA9FBF51F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B1D SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1B88 JUMPI DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST DUP4 PUSH1 0x4 PUSH1 0x0 DUP6 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 POP POP POP POP JUMP JUMPDEST PUSH2 0x1BEC DUP4 DUP4 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x1BF9 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x173F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x1C09 DUP4 DUP4 DUP4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1CBD JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1C7E JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x7E27328900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C75 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x177E802F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CB4 SWAP3 SWAP2 SWAP1 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD SUB PUSH2 0x1CE4 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x1E4F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D16 JUMPI PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH1 0x4 PUSH2 0x1CFD SWAP2 SWAP1 PUSH2 0x3266 JUMP JUMPDEST PUSH2 0x1D07 SWAP2 SWAP1 PUSH2 0x32A8 JUMP JUMPDEST PUSH2 0x1D11 SWAP2 SWAP1 PUSH2 0x330B JUMP JUMPDEST PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x3 PUSH1 0x2 DUP7 MLOAD PUSH2 0x1D26 SWAP2 SWAP1 PUSH2 0x32A8 JUMP JUMPDEST PUSH2 0x1D30 SWAP2 SWAP1 PUSH2 0x330B JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1D3C SWAP2 SWAP1 PUSH2 0x3266 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D5B JUMPI PUSH2 0x1D5A PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1D8D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP6 ADD PUSH1 0x20 DUP3 ADD DUP8 DUP9 MLOAD DUP10 ADD PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x0 DUP3 MSTORE JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x1E03 JUMPI PUSH1 0x3 DUP5 ADD SWAP4 POP DUP4 MLOAD PUSH1 0x3F DUP2 PUSH1 0x12 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0xC SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 PUSH1 0x6 SHR AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP PUSH1 0x3F DUP2 AND DUP8 ADD MLOAD DUP7 MSTORE8 PUSH1 0x1 DUP7 ADD SWAP6 POP POP PUSH2 0x1DA8 JUMP JUMPDEST DUP1 DUP3 MSTORE DUP10 ISZERO PUSH2 0x1E43 JUMPI PUSH1 0x3 DUP13 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x1E26 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1E39 JUMPI PUSH2 0x1E41 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 PUSH1 0x3D PUSH1 0x2 DUP8 SUB MSTORE8 PUSH2 0x1E41 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP8 SUB MSTORE8 JUMPDEST POP JUMPDEST POP POP POP POP POP POP DUP1 SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1E65 DUP5 PUSH2 0x20DE JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E84 JUMPI PUSH2 0x1E83 PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1EB6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1F19 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1F0D JUMPI PUSH2 0x1F0C PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1EC4 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1F96 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x64A0AE9200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F8D SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FA4 DUP4 DUP4 PUSH1 0x0 PUSH2 0x123C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2018 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x73C6AC6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x200F SWAP2 SWAP1 PUSH2 0x2456 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x20D5 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x2096 JUMPI POP PUSH2 0x2095 DUP5 DUP5 PUSH2 0xEEA JUMP JUMPDEST JUMPDEST DUP1 PUSH2 0x20D4 JUMPI POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x20BC DUP4 PUSH2 0x116B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x213C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x2132 JUMPI PUSH2 0x2131 PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x2179 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x216F JUMPI PUSH2 0x216E PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x21A8 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x219E JUMPI PUSH2 0x219D PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x21D1 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x21C7 JUMPI PUSH2 0x21C6 PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x21F6 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x21EC JUMPI PUSH2 0x21EB PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x2219 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x220F JUMPI PUSH2 0x220E PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2228 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 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 0x227A DUP2 PUSH2 0x2245 JUMP JUMPDEST DUP2 EQ PUSH2 0x2285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2297 DUP2 PUSH2 0x2271 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22B3 JUMPI PUSH2 0x22B2 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22C1 DUP5 DUP3 DUP6 ADD PUSH2 0x2288 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22DF DUP2 PUSH2 0x22CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22FA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22D6 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x231F JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2362 DUP3 PUSH2 0x2300 JUMP JUMPDEST PUSH2 0x236C DUP2 DUP6 PUSH2 0x230B JUMP JUMPDEST SWAP4 POP PUSH2 0x237C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231C JUMP JUMPDEST PUSH2 0x2385 DUP2 PUSH2 0x2346 JUMP JUMPDEST DUP5 ADD SWAP2 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 0x23AA DUP2 DUP5 PUSH2 0x2357 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C5 DUP2 PUSH2 0x23B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E2 DUP2 PUSH2 0x23BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23FE JUMPI PUSH2 0x23FD PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240C DUP5 DUP3 DUP6 ADD PUSH2 0x23D3 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 0x2440 DUP3 PUSH2 0x2415 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2450 DUP2 PUSH2 0x2435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x246B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2447 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x247A DUP2 PUSH2 0x2435 JUMP JUMPDEST DUP2 EQ PUSH2 0x2485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2497 DUP2 PUSH2 0x2471 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24B4 JUMPI PUSH2 0x24B3 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24C2 DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x24D3 DUP6 DUP3 DUP7 ADD PUSH2 0x23D3 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 0x24F6 JUMPI PUSH2 0x24F5 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2504 DUP7 DUP3 DUP8 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2515 DUP7 DUP3 DUP8 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2526 DUP7 DUP3 DUP8 ADD PUSH2 0x23D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2572 DUP3 PUSH2 0x2346 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2591 JUMPI PUSH2 0x2590 PUSH2 0x253A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25A4 PUSH2 0x2231 JUMP JUMPDEST SWAP1 POP PUSH2 0x25B0 DUP3 DUP3 PUSH2 0x2569 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25D0 JUMPI PUSH2 0x25CF PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH2 0x25D9 DUP3 PUSH2 0x2346 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 0x2608 PUSH2 0x2603 DUP5 PUSH2 0x25B5 JUMP JUMPDEST PUSH2 0x259A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2624 JUMPI PUSH2 0x2623 PUSH2 0x2535 JUMP JUMPDEST JUMPDEST PUSH2 0x262F DUP5 DUP3 DUP6 PUSH2 0x25E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x264C JUMPI PUSH2 0x264B PUSH2 0x2530 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x265C DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x267B JUMPI PUSH2 0x267A PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2699 JUMPI PUSH2 0x2698 PUSH2 0x2240 JUMP JUMPDEST JUMPDEST PUSH2 0x26A5 DUP5 DUP3 DUP6 ADD PUSH2 0x2637 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x26B7 DUP2 PUSH2 0x23B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x26D2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x26AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26EE JUMPI PUSH2 0x26ED PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x26FC DUP5 DUP3 DUP6 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x270E DUP2 PUSH2 0x22CA JUMP JUMPDEST DUP2 EQ PUSH2 0x2719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x272B DUP2 PUSH2 0x2705 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2748 JUMPI PUSH2 0x2747 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2756 DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2767 DUP6 DUP3 DUP7 ADD PUSH2 0x271C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x278C JUMPI PUSH2 0x278B PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH2 0x2795 DUP3 PUSH2 0x2346 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27B5 PUSH2 0x27B0 DUP5 PUSH2 0x2771 JUMP JUMPDEST PUSH2 0x259A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27D1 JUMPI PUSH2 0x27D0 PUSH2 0x2535 JUMP JUMPDEST JUMPDEST PUSH2 0x27DC DUP5 DUP3 DUP6 PUSH2 0x25E6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F9 JUMPI PUSH2 0x27F8 PUSH2 0x2530 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2809 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x27A2 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 0x282C JUMPI PUSH2 0x282B PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x283A DUP8 DUP3 DUP9 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x284B DUP8 DUP3 DUP9 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x285C DUP8 DUP3 DUP9 ADD PUSH2 0x23D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x287D JUMPI PUSH2 0x287C PUSH2 0x2240 JUMP JUMPDEST JUMPDEST PUSH2 0x2889 DUP8 DUP3 DUP9 ADD PUSH2 0x27E4 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 0x28AC JUMPI PUSH2 0x28AB PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28BA DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28CB DUP6 DUP3 DUP7 ADD PUSH2 0x2488 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x291C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x292F JUMPI PUSH2 0x292E PUSH2 0x28D5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x302E3030303120657468657220726571756972656420746F206D696E74000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x296B PUSH1 0x1D DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2976 DUP3 PUSH2 0x2935 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 0x299A DUP2 PUSH2 0x295E 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 0x29DB DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2A0D JUMPI PUSH2 0x2A0C PUSH2 0x29A1 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2A2D PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x2A3A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x26AE JUMP JUMPDEST PUSH2 0x2A47 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2447 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6F2066756E647320617661696C61626C650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A85 PUSH1 0x12 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2A90 DUP3 PUSH2 0x2A4F 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 0x2AB4 DUP2 PUSH2 0x2A78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AD6 PUSH1 0x0 DUP4 PUSH2 0x2ABB JUMP JUMPDEST SWAP2 POP PUSH2 0x2AE1 DUP3 PUSH2 0x2AC6 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AF7 DUP3 PUSH2 0x2AC9 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5769746864726177616C206661696C6564000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B37 PUSH1 0x11 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2B42 DUP3 PUSH2 0x2B01 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 0x2B66 DUP2 PUSH2 0x2B2A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP3 PUSH2 0x2300 JUMP JUMPDEST PUSH2 0x2B8D DUP2 DUP6 PUSH2 0x2B6D JUMP JUMPDEST SWAP4 POP PUSH2 0x2B9D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BB5 DUP3 DUP6 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP PUSH2 0x2BC1 DUP3 DUP5 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x7B226E616D65223A2022466C756666792046757279222C202264657363726970 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x74696F6E223A2022596F75722061636365737320696E746F20616E7920657665 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E742063726561746564207573696E67207468697320746F6B656E2061646472 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x657373222C2022696D616765223A220000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C75 PUSH1 0x6F DUP4 PUSH2 0x2B6D JUMP JUMPDEST SWAP2 POP PUSH2 0x2C80 DUP3 PUSH2 0x2BCD JUMP JUMPDEST PUSH1 0x6F DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x227D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CC1 PUSH1 0x2 DUP4 PUSH2 0x2B6D JUMP JUMPDEST SWAP2 POP PUSH2 0x2CCC DUP3 PUSH2 0x2C8B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CE2 DUP3 PUSH2 0x2C68 JUMP JUMPDEST SWAP2 POP PUSH2 0x2CEE DUP3 DUP5 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP PUSH2 0x2CF9 DUP3 PUSH2 0x2CB4 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D3A PUSH1 0x1D DUP4 PUSH2 0x2B6D JUMP JUMPDEST SWAP2 POP PUSH2 0x2D45 DUP3 PUSH2 0x2D04 JUMP JUMPDEST PUSH1 0x1D DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5B DUP3 PUSH2 0x2D2D JUMP JUMPDEST SWAP2 POP PUSH2 0x2D67 DUP3 DUP5 PUSH2 0x2B78 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x53564720646174612063616E6E6F7420626520656D7074790000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA8 PUSH1 0x18 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2DB3 DUP3 PUSH2 0x2D72 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 0x2DD7 DUP2 PUSH2 0x2D9B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x535647206461746120746F6F206C617267650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E14 PUSH1 0x12 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x2E1F DUP3 PUSH2 0x2DDE 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 0x2E43 DUP2 PUSH2 0x2E07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x2EAC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2E6F JUMP JUMPDEST PUSH2 0x2EB6 DUP7 DUP4 PUSH2 0x2E6F JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF3 PUSH2 0x2EEE PUSH2 0x2EE9 DUP5 PUSH2 0x23B2 JUMP JUMPDEST PUSH2 0x2ECE JUMP JUMPDEST PUSH2 0x23B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2F0D DUP4 PUSH2 0x2ED8 JUMP JUMPDEST PUSH2 0x2F21 PUSH2 0x2F19 DUP3 PUSH2 0x2EFA JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2E7C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2F36 PUSH2 0x2F29 JUMP JUMPDEST PUSH2 0x2F41 DUP2 DUP5 DUP5 PUSH2 0x2F04 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F65 JUMPI PUSH2 0x2F5A PUSH1 0x0 DUP3 PUSH2 0x2F2E JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2F47 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2FAA JUMPI PUSH2 0x2F7B DUP2 PUSH2 0x2E4A JUMP JUMPDEST PUSH2 0x2F84 DUP5 PUSH2 0x2E5F JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2F93 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2FA7 PUSH2 0x2F9F DUP6 PUSH2 0x2E5F JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2F46 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCD PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2FAF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE6 DUP4 DUP4 PUSH2 0x2FBC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2FFF DUP3 PUSH2 0x2300 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3018 JUMPI PUSH2 0x3017 PUSH2 0x253A JUMP JUMPDEST JUMPDEST PUSH2 0x3022 DUP3 SLOAD PUSH2 0x2904 JUMP JUMPDEST PUSH2 0x302D DUP3 DUP3 DUP6 PUSH2 0x2F69 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3060 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x304E JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3058 DUP6 DUP3 PUSH2 0x2FDA JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x30C0 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x306E DUP7 PUSH2 0x2E4A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3096 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3071 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x30B3 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x30AF PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2FBC JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E6577206F776E65722063616E6E6F7420626520746865207A65726F20616464 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3124 PUSH1 0x24 DUP4 PUSH2 0x230B JUMP JUMPDEST SWAP2 POP PUSH2 0x312F DUP3 PUSH2 0x30C8 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 0x3153 DUP2 PUSH2 0x3117 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 PUSH2 0x3181 DUP3 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x318B DUP2 DUP6 PUSH2 0x3165 JUMP JUMPDEST SWAP4 POP PUSH2 0x319B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231C JUMP JUMPDEST PUSH2 0x31A4 DUP2 PUSH2 0x2346 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x31C4 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x31D1 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x31DE PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x26AE JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31F0 DUP2 DUP5 PUSH2 0x3176 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x320A DUP2 PUSH2 0x2271 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3226 JUMPI PUSH2 0x3225 PUSH2 0x223B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3234 DUP5 DUP3 DUP6 ADD PUSH2 0x31FB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3252 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2447 JUMP JUMPDEST PUSH2 0x325F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26AE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3271 DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x327C DUP4 PUSH2 0x23B2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x328A DUP2 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x32A1 JUMPI PUSH2 0x32A0 PUSH2 0x29A1 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32B3 DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x32BE DUP4 PUSH2 0x23B2 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x32D6 JUMPI PUSH2 0x32D5 PUSH2 0x29A1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3316 DUP3 PUSH2 0x23B2 JUMP JUMPDEST SWAP2 POP PUSH2 0x3321 DUP4 PUSH2 0x23B2 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3331 JUMPI PUSH2 0x3330 PUSH2 0x32DC JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID COINBASE TIMESTAMP NUMBER PREVRANDAO GASLIMIT CHAINID SELFBALANCE BASEFEE BLOBHASH BLOBBASEFEE 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2FA2646970667358 0x22 SLT KECCAK256 CALL LOG1 LOG4 PUSH11 0xBDC0EA2E367C70D79D6948 SHR 0x4D 0xE PUSH15 0x587EEE1932B56AFA37249682E56473 PUSH16 0x6C634300081800330000000000000000 ", + "sourceMap": "287:3331:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:207:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2365:89:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3497:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3323:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2182:380:18;;;:::i;:::-;;4143:578:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2634:255:18;;;;;;;;;;;;;:::i;:::-;;1088:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4787:132:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2185:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;428:39:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1920:208:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:0;;;;;;;;;;;;;:::i;:::-;;1442:662:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:85:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2518:93:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;508:21:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2991:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4985:208:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1210:593:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:153:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3342:197:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;937:207:8;1039:4;760:10;753:18;;1062:35;;;:11;:35;;;;:75;;;;1101:36;1125:11;1101:23;:36::i;:::-;1062:75;1055:82;;937:207;;;:::o;2365:89:5:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;;3623:21;3636:7;3623:12;:21::i;:::-;3616:28;;3497:154;;;:::o;3323:113::-;3394:35;3403:2;3407:7;3416:12;:10;:12::i;:::-;3394:8;:35::i;:::-;3323:113;;:::o;2182:380:18:-;979:9;;966;:22;958:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2239:22:::1;2264;2278:7;2264:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:22::i;:::-;2239:47;;2314:22;2339:24;2354:8;2339:14;:24::i;:::-;2314:49;;2374:15;;:17;;;;;;;;;:::i;:::-;;;;;;2401;2421:15;;2401:35;;2447:32;2457:10;2469:9;2447;:32::i;:::-;2489:33;2502:9;2513:8;2489:12;:33::i;:::-;2538:17;2545:9;2538:17;;;;;;:::i;:::-;;;;;;;;2229:333;;;2182:380::o:0;4143:578:5:-;4251:1;4237:16;;:2;:16;;;4233:87;;4306:1;4276:33;;;;;;;;;;;:::i;:::-;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;4583:12;:10;:12::i;:::-;4562:7;:34::i;:::-;4538:58;;4627:4;4610:21;;:13;:21;;;4606:109;;4675:4;4681:7;4690:13;4654:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4606:109;4223:498;4143:578;;;:::o;2634:255:18:-;1531:13:0;:11;:13::i;:::-;2688:15:18::1;2706:21;2688:39;;2755:1;2745:7;:11;2737:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;2791:9;2806:7;:5;:7::i;:::-;:12;;2826:7;2806:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:48;;;2856:4;2848:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;2678:211;;2634:255::o:0;1088:283::-;1151:13;1176:21;:52;;;;;;;;;;;;;;;;;;;1238:30;1271:25;1291:3;1271:13;:25::i;:::-;1238:58;;1337:7;1346:16;1320:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1306:58;;;;1088:283;;;:::o;4787:132:5:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;:::-;2267:29;;2185:118;;;:::o;428:39:18:-;;;;:::o;1920:208:5:-;1983:7;2023:1;2006:19;;:5;:19;;;2002:87;;2075:1;2048:30;;;;;;;;;;;:::i;:::-;;;;;;;;2002:87;2105:9;:16;2115:5;2105:16;;;;;;;;;;;;;;;;2098:23;;1920:208;;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1442:662:18:-;1511:13;1670:395;1941:8;1744:273;;;;;;;;:::i;:::-;;;;;;;;;;;;;1670:13;:395::i;:::-;1579:504;;;;;;;;:::i;:::-;;;;;;;;;;;;;1536:561;;1442:662;;;:::o;1638:85:0:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;2518:93:5:-;2565:13;2597:7;2590:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2518:93;:::o;3718:144::-;3803:52;3822:12;:10;:12::i;:::-;3836:8;3846;3803:18;:52::i;:::-;3718:144;;:::o;508:21:18:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2991:294::-;1531:13:0;:11;:13::i;:::-;3094:1:18::1;3076:7;3070:21;:25;3062:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;3167:4;3148:7;3142:21;:29;;3134:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3248:7;3238;:17;;;;;;:::i;:::-;;2991:294:::0;:::o;4985:208:5:-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;:::-;4985:208;;;;:::o;1210:593:8:-;1283:13;1308:22;1322:7;1308:13;:22::i;:::-;;1341:23;1367:10;:19;1378:7;1367:19;;;;;;;;;;;1341:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:18;1417:10;:8;:10::i;:::-;1396:31;;1522:1;1506:4;1500:18;:23;1496:70;;1546:9;1539:16;;;;;;1496:70;1691:1;1671:9;1665:23;:27;1661:95;;;1729:4;1735:9;1715:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1708:37;;;;;;1661:95;1773:23;1788:7;1773:14;:23::i;:::-;1766:30;;;;1210:593;;;;:::o;3928:153:5:-;4016:4;4039:18;:25;4058:5;4039:25;;;;;;;;;;;;;;;:35;4065:8;4039:35;;;;;;;;;;;;;;;;;;;;;;;;;4032:42;;3928:153;;;;:::o;3342:197:18:-;1531:13:0;:11;:13::i;:::-;3451:1:18::1;3431:22;;:8;:22;;::::0;3423:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3504:28;3523:8;3504:18;:28::i;:::-;3342:197:::0;:::o;1561:300:5:-;1663:4;1713:25;1698:40;;;:11;:40;;;;:104;;;;1769:33;1754:48;;;:11;:48;;;;1698:104;:156;;;;1818:36;1842:11;1818:23;:36::i;:::-;1698:156;1679:175;;1561:300;;;:::o;16138:241::-;16201:7;16220:13;16236:17;16245:7;16236:8;:17::i;:::-;16220:33;;16284:1;16267:19;;:5;:19;;;16263:88;;16332:7;16309:31;;;;;;;;;;;:::i;:::-;;;;;;;;16263:88;16367:5;16360:12;;;16138:241;;;:::o;5938:127::-;6008:7;6034:15;:24;6050:7;6034:24;;;;;;;;;;;;;;;;;;;;;6027:31;;5938:127;;;:::o;656:96:10:-;709:7;735:10;728:17;;656:96;:::o;14418:120:5:-;14498:33;14507:2;14511:7;14520:4;14526;14498:8;:33::i;:::-;14418:120;;;:::o;10633:100::-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;:::-;10633:100;;:::o;1922:167:8:-;2035:9;2013:10;:19;2024:7;2013:19;;;;;;;;;;;:31;;;;;;:::i;:::-;;2059:23;2074:7;2059:23;;;;;;:::i;:::-;;;;;;;;1922:167;;:::o;8838:795:5:-;8924:7;8943:12;8958:17;8967:7;8958:8;:17::i;:::-;8943:32;;9051:1;9035:18;;:4;:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;9031:86;9177:1;9161:18;;:4;:18;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;9387:1;9368:9;:15;9378:4;9368:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;9157:256;9441:1;9427:16;;:2;:16;;;9423:107;;9504:1;9487:9;:13;9497:2;9487:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9423:107;9559:2;9540:7;:16;9548:7;9540:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9596:7;9592:2;9577:27;;9586:4;9577:27;;;;;;;;;;;;9622:4;9615:11;;;8838:795;;;;;:::o;1796:162:0:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;682:126:16:-;740:13;773:27;781:4;787:6;;;;;;;;;;;;;;;;;795:4;773:7;:27::i;:::-;766:34;;682:126;;;:::o;2912:187:0:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;15591:312:5:-;15718:1;15698:22;;:8;:22;;;15694:91;;15765:8;15743:31;;;;;;;;;;;:::i;:::-;;;;;;;;15694:91;15832:8;15794:18;:25;15813:5;15794:25;;;;;;;;;;;;;;;:35;15820:8;15794:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15877:8;15855:41;;15870:5;15855:41;;;15887:8;15855:41;;;;;;:::i;:::-;;;;;;;;15591:312;;;:::o;16918:782::-;17051:1;17034:2;:14;;;:18;17030:664;;;17088:2;17072:36;;;17109:12;:10;:12::i;:::-;17123:4;17129:7;17138:4;17072:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17068:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:1;17381:6;:13;:18;17377:293;;17452:2;17430:25;;;;;;;;;;;:::i;:::-;;;;;;;;17377:293;17622:6;17616:13;17607:6;17603:2;17599:15;17592:38;17068:616;17200:41;;;17190:51;;;:6;:51;;;;17186:130;;17294:2;17272:25;;;;;;;;;;;:::i;:::-;;;;;;;;17186:130;17144:186;17030:664;16918:782;;;;:::o;3174:92::-;3225:13;3250:9;;;;;;;;;;;;;;3174:92;:::o;2677:255::-;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;:8;:10::i;:::-;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;;;2677:255;;;:::o;762:146:12:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;5707:115:5:-;5773:7;5799;:16;5807:7;5799:16;;;;;;;;;;;;;;;;;;;;;5792:23;;5707:115;;;:::o;14720:662::-;14880:9;:31;;;;14909:1;14893:18;;:4;:18;;;;14880:31;14876:460;;;14927:13;14943:22;14957:7;14943:13;:22::i;:::-;14927:38;;15109:1;15093:18;;:4;:18;;;;:35;;;;;15124:4;15115:13;;:5;:13;;;;15093:35;:69;;;;;15133:29;15150:5;15157:4;15133:16;:29::i;:::-;15132:30;15093:69;15089:142;;;15211:4;15189:27;;;;;;;;;;;:::i;:::-;;;;;;;;15089:142;15249:9;15245:81;;;15303:7;15299:2;15283:28;;15292:5;15283:28;;;;;;;;;;;;15245:81;14913:423;14876:460;15373:2;15346:15;:24;15362:7;15346:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14720:662;;;;:::o;10954:182::-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;:::-;10954:182;;;:::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;7269:1;7252:19;;:5;:19;;;7248:186;;7321:7;7298:31;;;;;;;;;;;:::i;:::-;;;;;;;;7248:186;7402:7;7411;7375:44;;;;;;;;;;;;:::i;:::-;;;;;;;;7189:255;7082:368;;;:::o;1220:4109:16:-;1317:13;1569:1;1554:4;:11;:16;1550:31;;1572:9;;;;;;;;;;;;;;;;1550:31;2534:20;2557:11;:69;;2625:1;2620;2606:4;:11;2602:1;:15;;;;:::i;:::-;:19;;;;:::i;:::-;2601:25;;;;:::i;:::-;2557:69;;;2596:1;2591;2577:4;:11;:15;;;;:::i;:::-;2576:21;;;;:::i;:::-;2571:1;:27;;;;:::i;:::-;2557:69;2534:92;;2639:20;2673:12;2662:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2639:47;;2838:1;2831:5;2827:13;2942:4;2934:6;2930:17;2976:4;3024;3018:11;3012:4;3008:22;3276:4;3268:6;3264:17;3319:8;3313:15;3359:4;3349:8;3342:22;3434:1286;3469:6;3460:7;3457:19;3434:1286;;;3575:1;3566:7;3562:15;3551:26;;3614:7;3608:14;4210:4;4202:5;4198:2;4194:14;4190:25;4180:8;4176:40;4170:47;4159:9;4151:67;4264:1;4253:9;4249:17;4236:30;;4356:4;4348:5;4344:2;4340:14;4336:25;4326:8;4322:40;4316:47;4305:9;4297:67;4410:1;4399:9;4395:17;4382:30;;4501:4;4493:5;4490:1;4486:13;4482:24;4472:8;4468:39;4462:46;4451:9;4443:66;4555:1;4544:9;4540:17;4527:30;;4638:4;4631:5;4627:16;4617:8;4613:31;4607:38;4596:9;4588:58;4692:1;4681:9;4677:17;4664:30;;3496:1224;3434:1286;;;4801:10;4791:8;4784:28;4831:11;4828:457;;;5016:1;5009:4;5003:11;4999:19;5041:1;5036:135;;;;5194:1;5189:81;;;;4992:278;;5036:135;5093:4;5089:1;5078:9;5074:17;5066:32;5147:4;5143:1;5132:9;5128:17;5120:32;5036:135;;5189:81;5246:4;5242:1;5231:9;5227:17;5219:32;4992:278;;4828:457;2724:2572;;;;;;5315:6;5308:13;;;;1220:4109;;;;;;:::o;637:698:11:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;9955:327:5:-;10036:1;10022:16;;:2;:16;;;10018:87;;10091:1;10061:33;;;;;;;;;;;:::i;:::-;;;;;;;;10018:87;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;;10209:1;10184:27;;:13;:27;;;10180:96;;10262:1;10234:31;;;;;;;;;;;:::i;:::-;;;;;;;;10180:96;10008:274;9955:327;;:::o;6376:272::-;6479:4;6533:1;6514:21;;:7;:21;;;;:127;;;;;6561:7;6552:16;;:5;:16;;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:52;:88;;;;6633:7;6608:32;;:21;6621:7;6608:12;:21::i;:::-;:32;;;6552:88;6514:127;6495:146;;6376:272;;;;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;7:75:19:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:77::-;2897:7;2926:5;2915:16;;2860:77;;;:::o;2943:122::-;3016:24;3034:5;3016:24;:::i;:::-;3009:5;3006:35;2996:63;;3055:1;3052;3045:12;2996:63;2943:122;:::o;3071:139::-;3117:5;3155:6;3142:20;3133:29;;3171:33;3198:5;3171:33;:::i;:::-;3071:139;;;;:::o;3216:329::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;;:::i;:::-;3292:119;3450:1;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3421:117;3216:329;;;;:::o;3551:126::-;3588:7;3628:42;3621:5;3617:54;3606:65;;3551:126;;;:::o;3683:96::-;3720:7;3749:24;3767:5;3749:24;:::i;:::-;3738:35;;3683:96;;;:::o;3785:118::-;3872:24;3890:5;3872:24;:::i;:::-;3867:3;3860:37;3785:118;;:::o;3909:222::-;4002:4;4040:2;4029:9;4025:18;4017:26;;4053:71;4121:1;4110:9;4106:17;4097:6;4053:71;:::i;:::-;3909:222;;;;:::o;4137:122::-;4210:24;4228:5;4210:24;:::i;:::-;4203:5;4200:35;4190:63;;4249:1;4246;4239:12;4190:63;4137:122;:::o;4265:139::-;4311:5;4349:6;4336:20;4327:29;;4365:33;4392:5;4365:33;:::i;:::-;4265:139;;;;:::o;4410:474::-;4478:6;4486;4535:2;4523:9;4514:7;4510:23;4506:32;4503:119;;;4541:79;;:::i;:::-;4503:119;4661:1;4686:53;4731:7;4722:6;4711:9;4707:22;4686:53;:::i;:::-;4676:63;;4632:117;4788:2;4814:53;4859:7;4850:6;4839:9;4835:22;4814:53;:::i;:::-;4804:63;;4759:118;4410:474;;;;;:::o;4890:619::-;4967:6;4975;4983;5032:2;5020:9;5011:7;5007:23;5003:32;5000:119;;;5038:79;;:::i;:::-;5000:119;5158:1;5183:53;5228:7;5219:6;5208:9;5204:22;5183:53;:::i;:::-;5173:63;;5129:117;5285:2;5311:53;5356:7;5347:6;5336:9;5332:22;5311:53;:::i;:::-;5301:63;;5256:118;5413:2;5439:53;5484:7;5475:6;5464:9;5460:22;5439:53;:::i;:::-;5429:63;;5384:118;4890:619;;;;;:::o;5515:117::-;5624:1;5621;5614:12;5638:117;5747:1;5744;5737:12;5761:180;5809:77;5806:1;5799:88;5906:4;5903:1;5896:15;5930:4;5927:1;5920:15;5947:281;6030:27;6052:4;6030:27;:::i;:::-;6022:6;6018:40;6160:6;6148:10;6145:22;6124:18;6112:10;6109:34;6106:62;6103:88;;;6171:18;;:::i;:::-;6103:88;6211:10;6207:2;6200:22;5990:238;5947:281;;:::o;6234:129::-;6268:6;6295:20;;:::i;:::-;6285:30;;6324:33;6352:4;6344:6;6324:33;:::i;:::-;6234:129;;;:::o;6369:308::-;6431:4;6521:18;6513:6;6510:30;6507:56;;;6543:18;;:::i;:::-;6507:56;6581:29;6603:6;6581:29;:::i;:::-;6573:37;;6665:4;6659;6655:15;6647:23;;6369:308;;;:::o;6683:146::-;6780:6;6775:3;6770;6757:30;6821:1;6812:6;6807:3;6803:16;6796:27;6683:146;;;:::o;6835:425::-;6913:5;6938:66;6954:49;6996:6;6954:49;:::i;:::-;6938:66;:::i;:::-;6929:75;;7027:6;7020:5;7013:21;7065:4;7058:5;7054:16;7103:3;7094:6;7089:3;7085:16;7082:25;7079:112;;;7110:79;;:::i;:::-;7079:112;7200:54;7247:6;7242:3;7237;7200:54;:::i;:::-;6919:341;6835:425;;;;;:::o;7280:340::-;7336:5;7385:3;7378:4;7370:6;7366:17;7362:27;7352:122;;7393:79;;:::i;:::-;7352:122;7510:6;7497:20;7535:79;7610:3;7602:6;7595:4;7587:6;7583:17;7535:79;:::i;:::-;7526:88;;7342:278;7280:340;;;;:::o;7626:509::-;7695:6;7744:2;7732:9;7723:7;7719:23;7715:32;7712:119;;;7750:79;;:::i;:::-;7712:119;7898:1;7887:9;7883:17;7870:31;7928:18;7920:6;7917:30;7914:117;;;7950:79;;:::i;:::-;7914:117;8055:63;8110:7;8101:6;8090:9;8086:22;8055:63;:::i;:::-;8045:73;;7841:287;7626:509;;;;:::o;8141:118::-;8228:24;8246:5;8228:24;:::i;:::-;8223:3;8216:37;8141:118;;:::o;8265:222::-;8358:4;8396:2;8385:9;8381:18;8373:26;;8409:71;8477:1;8466:9;8462:17;8453:6;8409:71;:::i;:::-;8265:222;;;;:::o;8493:329::-;8552:6;8601:2;8589:9;8580:7;8576:23;8572:32;8569:119;;;8607:79;;:::i;:::-;8569:119;8727:1;8752:53;8797:7;8788:6;8777:9;8773:22;8752:53;:::i;:::-;8742:63;;8698:117;8493:329;;;;:::o;8828:116::-;8898:21;8913:5;8898:21;:::i;:::-;8891:5;8888:32;8878:60;;8934:1;8931;8924:12;8878:60;8828:116;:::o;8950:133::-;8993:5;9031:6;9018:20;9009:29;;9047:30;9071:5;9047:30;:::i;:::-;8950:133;;;;:::o;9089:468::-;9154:6;9162;9211:2;9199:9;9190:7;9186:23;9182:32;9179:119;;;9217:79;;:::i;:::-;9179:119;9337:1;9362:53;9407:7;9398:6;9387:9;9383:22;9362:53;:::i;:::-;9352:63;;9308:117;9464:2;9490:50;9532:7;9523:6;9512:9;9508:22;9490:50;:::i;:::-;9480:60;;9435:115;9089:468;;;;;:::o;9563:307::-;9624:4;9714:18;9706:6;9703:30;9700:56;;;9736:18;;:::i;:::-;9700:56;9774:29;9796:6;9774:29;:::i;:::-;9766:37;;9858:4;9852;9848:15;9840:23;;9563:307;;;:::o;9876:423::-;9953:5;9978:65;9994:48;10035:6;9994:48;:::i;:::-;9978:65;:::i;:::-;9969:74;;10066:6;10059:5;10052:21;10104:4;10097:5;10093:16;10142:3;10133:6;10128:3;10124:16;10121:25;10118:112;;;10149:79;;:::i;:::-;10118:112;10239:54;10286:6;10281:3;10276;10239:54;:::i;:::-;9959:340;9876:423;;;;;:::o;10318:338::-;10373:5;10422:3;10415:4;10407:6;10403:17;10399:27;10389:122;;10430:79;;:::i;:::-;10389:122;10547:6;10534:20;10572:78;10646:3;10638:6;10631:4;10623:6;10619:17;10572:78;:::i;:::-;10563:87;;10379:277;10318:338;;;;:::o;10662:943::-;10757:6;10765;10773;10781;10830:3;10818:9;10809:7;10805:23;10801:33;10798:120;;;10837:79;;:::i;:::-;10798:120;10957:1;10982:53;11027:7;11018:6;11007:9;11003:22;10982:53;:::i;:::-;10972:63;;10928:117;11084:2;11110:53;11155:7;11146:6;11135:9;11131:22;11110:53;:::i;:::-;11100:63;;11055:118;11212:2;11238:53;11283:7;11274:6;11263:9;11259:22;11238:53;:::i;:::-;11228:63;;11183:118;11368:2;11357:9;11353:18;11340:32;11399:18;11391:6;11388:30;11385:117;;;11421:79;;:::i;:::-;11385:117;11526:62;11580:7;11571:6;11560:9;11556:22;11526:62;:::i;:::-;11516:72;;11311:287;10662:943;;;;;;;:::o;11611:474::-;11679:6;11687;11736:2;11724:9;11715:7;11711:23;11707:32;11704:119;;;11742:79;;:::i;:::-;11704:119;11862:1;11887:53;11932:7;11923:6;11912:9;11908:22;11887:53;:::i;:::-;11877:63;;11833:117;11989:2;12015:53;12060:7;12051:6;12040:9;12036:22;12015:53;:::i;:::-;12005:63;;11960:118;11611:474;;;;;:::o;12091:180::-;12139:77;12136:1;12129:88;12236:4;12233:1;12226:15;12260:4;12257:1;12250:15;12277:320;12321:6;12358:1;12352:4;12348:12;12338:22;;12405:1;12399:4;12395:12;12426:18;12416:81;;12482:4;12474:6;12470:17;12460:27;;12416:81;12544:2;12536:6;12533:14;12513:18;12510:38;12507:84;;12563:18;;:::i;:::-;12507:84;12328:269;12277:320;;;:::o;12603:179::-;12743:31;12739:1;12731:6;12727:14;12720:55;12603:179;:::o;12788:366::-;12930:3;12951:67;13015:2;13010:3;12951:67;:::i;:::-;12944:74;;13027:93;13116:3;13027:93;:::i;:::-;13145:2;13140:3;13136:12;13129:19;;12788:366;;;:::o;13160:419::-;13326:4;13364:2;13353:9;13349:18;13341:26;;13413:9;13407:4;13403:20;13399:1;13388:9;13384:17;13377:47;13441:131;13567:4;13441:131;:::i;:::-;13433:139;;13160:419;;;:::o;13585:180::-;13633:77;13630:1;13623:88;13730:4;13727:1;13720:15;13754:4;13751:1;13744:15;13771:233;13810:3;13833:24;13851:5;13833:24;:::i;:::-;13824:33;;13879:66;13872:5;13869:77;13866:103;;13949:18;;:::i;:::-;13866:103;13996:1;13989:5;13985:13;13978:20;;13771:233;;;:::o;14010:442::-;14159:4;14197:2;14186:9;14182:18;14174:26;;14210:71;14278:1;14267:9;14263:17;14254:6;14210:71;:::i;:::-;14291:72;14359:2;14348:9;14344:18;14335:6;14291:72;:::i;:::-;14373;14441:2;14430:9;14426:18;14417:6;14373:72;:::i;:::-;14010:442;;;;;;:::o;14458:168::-;14598:20;14594:1;14586:6;14582:14;14575:44;14458:168;:::o;14632:366::-;14774:3;14795:67;14859:2;14854:3;14795:67;:::i;:::-;14788:74;;14871:93;14960:3;14871:93;:::i;:::-;14989:2;14984:3;14980:12;14973:19;;14632:366;;;:::o;15004:419::-;15170:4;15208:2;15197:9;15193:18;15185:26;;15257:9;15251:4;15247:20;15243:1;15232:9;15228:17;15221:47;15285:131;15411:4;15285:131;:::i;:::-;15277:139;;15004:419;;;:::o;15429:147::-;15530:11;15567:3;15552:18;;15429:147;;;;:::o;15582:114::-;;:::o;15702:398::-;15861:3;15882:83;15963:1;15958:3;15882:83;:::i;:::-;15875:90;;15974:93;16063:3;15974:93;:::i;:::-;16092:1;16087:3;16083:11;16076:18;;15702:398;;;:::o;16106:379::-;16290:3;16312:147;16455:3;16312:147;:::i;:::-;16305:154;;16476:3;16469:10;;16106:379;;;:::o;16491:167::-;16631:19;16627:1;16619:6;16615:14;16608:43;16491:167;:::o;16664:366::-;16806:3;16827:67;16891:2;16886:3;16827:67;:::i;:::-;16820:74;;16903:93;16992:3;16903:93;:::i;:::-;17021:2;17016:3;17012:12;17005:19;;16664:366;;;:::o;17036:419::-;17202:4;17240:2;17229:9;17225:18;17217:26;;17289:9;17283:4;17279:20;17275:1;17264:9;17260:17;17253:47;17317:131;17443:4;17317:131;:::i;:::-;17309:139;;17036:419;;;:::o;17461:148::-;17563:11;17600:3;17585:18;;17461:148;;;;:::o;17615:390::-;17721:3;17749:39;17782:5;17749:39;:::i;:::-;17804:89;17886:6;17881:3;17804:89;:::i;:::-;17797:96;;17902:65;17960:6;17955:3;17948:4;17941:5;17937:16;17902:65;:::i;:::-;17992:6;17987:3;17983:16;17976:23;;17725:280;17615:390;;;;:::o;18011:435::-;18191:3;18213:95;18304:3;18295:6;18213:95;:::i;:::-;18206:102;;18325:95;18416:3;18407:6;18325:95;:::i;:::-;18318:102;;18437:3;18430:10;;18011:435;;;;;:::o;18452:485::-;18592:66;18588:1;18580:6;18576:14;18569:90;18693:66;18688:2;18680:6;18676:15;18669:91;18794:34;18789:2;18781:6;18777:15;18770:59;18863:66;18858:2;18850:6;18846:15;18839:91;18452:485;:::o;18943:404::-;19103:3;19124:86;19206:3;19201;19124:86;:::i;:::-;19117:93;;19219;19308:3;19219:93;:::i;:::-;19337:3;19332;19328:13;19321:20;;18943:404;;;:::o;19353:214::-;19493:66;19489:1;19481:6;19477:14;19470:90;19353:214;:::o;19573:400::-;19733:3;19754:84;19836:1;19831:3;19754:84;:::i;:::-;19747:91;;19847:93;19936:3;19847:93;:::i;:::-;19965:1;19960:3;19956:11;19949:18;;19573:400;;;:::o;19979:807::-;20313:3;20335:148;20479:3;20335:148;:::i;:::-;20328:155;;20500:95;20591:3;20582:6;20500:95;:::i;:::-;20493:102;;20612:148;20756:3;20612:148;:::i;:::-;20605:155;;20777:3;20770:10;;19979:807;;;;:::o;20792:179::-;20932:31;20928:1;20920:6;20916:14;20909:55;20792:179;:::o;20977:402::-;21137:3;21158:85;21240:2;21235:3;21158:85;:::i;:::-;21151:92;;21252:93;21341:3;21252:93;:::i;:::-;21370:2;21365:3;21361:12;21354:19;;20977:402;;;:::o;21385:541::-;21618:3;21640:148;21784:3;21640:148;:::i;:::-;21633:155;;21805:95;21896:3;21887:6;21805:95;:::i;:::-;21798:102;;21917:3;21910:10;;21385:541;;;;:::o;21932:174::-;22072:26;22068:1;22060:6;22056:14;22049:50;21932:174;:::o;22112:366::-;22254:3;22275:67;22339:2;22334:3;22275:67;:::i;:::-;22268:74;;22351:93;22440:3;22351:93;:::i;:::-;22469:2;22464:3;22460:12;22453:19;;22112:366;;;:::o;22484:419::-;22650:4;22688:2;22677:9;22673:18;22665:26;;22737:9;22731:4;22727:20;22723:1;22712:9;22708:17;22701:47;22765:131;22891:4;22765:131;:::i;:::-;22757:139;;22484:419;;;:::o;22909:168::-;23049:20;23045:1;23037:6;23033:14;23026:44;22909:168;:::o;23083:366::-;23225:3;23246:67;23310:2;23305:3;23246:67;:::i;:::-;23239:74;;23322:93;23411:3;23322:93;:::i;:::-;23440:2;23435:3;23431:12;23424:19;;23083:366;;;:::o;23455:419::-;23621:4;23659:2;23648:9;23644:18;23636:26;;23708:9;23702:4;23698:20;23694:1;23683:9;23679:17;23672:47;23736:131;23862:4;23736:131;:::i;:::-;23728:139;;23455:419;;;:::o;23880:141::-;23929:4;23952:3;23944:11;;23975:3;23972:1;23965:14;24009:4;24006:1;23996:18;23988:26;;23880:141;;;:::o;24027:93::-;24064:6;24111:2;24106;24099:5;24095:14;24091:23;24081:33;;24027:93;;;:::o;24126:107::-;24170:8;24220:5;24214:4;24210:16;24189:37;;24126:107;;;;:::o;24239:393::-;24308:6;24358:1;24346:10;24342:18;24381:97;24411:66;24400:9;24381:97;:::i;:::-;24499:39;24529:8;24518:9;24499:39;:::i;:::-;24487:51;;24571:4;24567:9;24560:5;24556:21;24547:30;;24620:4;24610:8;24606:19;24599:5;24596:30;24586:40;;24315:317;;24239:393;;;;;:::o;24638:60::-;24666:3;24687:5;24680:12;;24638:60;;;:::o;24704:142::-;24754:9;24787:53;24805:34;24814:24;24832:5;24814:24;:::i;:::-;24805:34;:::i;:::-;24787:53;:::i;:::-;24774:66;;24704:142;;;:::o;24852:75::-;24895:3;24916:5;24909:12;;24852:75;;;:::o;24933:269::-;25043:39;25074:7;25043:39;:::i;:::-;25104:91;25153:41;25177:16;25153:41;:::i;:::-;25145:6;25138:4;25132:11;25104:91;:::i;:::-;25098:4;25091:105;25009:193;24933:269;;;:::o;25208:73::-;25253:3;25208:73;:::o;25287:189::-;25364:32;;:::i;:::-;25405:65;25463:6;25455;25449:4;25405:65;:::i;:::-;25340:136;25287:189;;:::o;25482:186::-;25542:120;25559:3;25552:5;25549:14;25542:120;;;25613:39;25650:1;25643:5;25613:39;:::i;:::-;25586:1;25579:5;25575:13;25566:22;;25542:120;;;25482:186;;:::o;25674:543::-;25775:2;25770:3;25767:11;25764:446;;;25809:38;25841:5;25809:38;:::i;:::-;25893:29;25911:10;25893:29;:::i;:::-;25883:8;25879:44;26076:2;26064:10;26061:18;26058:49;;;26097:8;26082:23;;26058:49;26120:80;26176:22;26194:3;26176:22;:::i;:::-;26166:8;26162:37;26149:11;26120:80;:::i;:::-;25779:431;;25764:446;25674:543;;;:::o;26223:117::-;26277:8;26327:5;26321:4;26317:16;26296:37;;26223:117;;;;:::o;26346:169::-;26390:6;26423:51;26471:1;26467:6;26459:5;26456:1;26452:13;26423:51;:::i;:::-;26419:56;26504:4;26498;26494:15;26484:25;;26397:118;26346:169;;;;:::o;26520:295::-;26596:4;26742:29;26767:3;26761:4;26742:29;:::i;:::-;26734:37;;26804:3;26801:1;26797:11;26791:4;26788:21;26780:29;;26520:295;;;;:::o;26820:1395::-;26937:37;26970:3;26937:37;:::i;:::-;27039:18;27031:6;27028:30;27025:56;;;27061:18;;:::i;:::-;27025:56;27105:38;27137:4;27131:11;27105:38;:::i;:::-;27190:67;27250:6;27242;27236:4;27190:67;:::i;:::-;27284:1;27308:4;27295:17;;27340:2;27332:6;27329:14;27357:1;27352:618;;;;28014:1;28031:6;28028:77;;;28080:9;28075:3;28071:19;28065:26;28056:35;;28028:77;28131:67;28191:6;28184:5;28131:67;:::i;:::-;28125:4;28118:81;27987:222;27322:887;;27352:618;27404:4;27400:9;27392:6;27388:22;27438:37;27470:4;27438:37;:::i;:::-;27497:1;27511:208;27525:7;27522:1;27519:14;27511:208;;;27604:9;27599:3;27595:19;27589:26;27581:6;27574:42;27655:1;27647:6;27643:14;27633:24;;27702:2;27691:9;27687:18;27674:31;;27548:4;27545:1;27541:12;27536:17;;27511:208;;;27747:6;27738:7;27735:19;27732:179;;;27805:9;27800:3;27796:19;27790:26;27848:48;27890:4;27882:6;27878:17;27867:9;27848:48;:::i;:::-;27840:6;27833:64;27755:156;27732:179;27957:1;27953;27945:6;27941:14;27937:22;27931:4;27924:36;27359:611;;;27322:887;;26912:1303;;;26820:1395;;:::o;28221:223::-;28361:34;28357:1;28349:6;28345:14;28338:58;28430:6;28425:2;28417:6;28413:15;28406:31;28221:223;:::o;28450:366::-;28592:3;28613:67;28677:2;28672:3;28613:67;:::i;:::-;28606:74;;28689:93;28778:3;28689:93;:::i;:::-;28807:2;28802:3;28798:12;28791:19;;28450:366;;;:::o;28822:419::-;28988:4;29026:2;29015:9;29011:18;29003:26;;29075:9;29069:4;29065:20;29061:1;29050:9;29046:17;29039:47;29103:131;29229:4;29103:131;:::i;:::-;29095:139;;28822:419;;;:::o;29247:98::-;29298:6;29332:5;29326:12;29316:22;;29247:98;;;:::o;29351:168::-;29434:11;29468:6;29463:3;29456:19;29508:4;29503:3;29499:14;29484:29;;29351:168;;;;:::o;29525:373::-;29611:3;29639:38;29671:5;29639:38;:::i;:::-;29693:70;29756:6;29751:3;29693:70;:::i;:::-;29686:77;;29772:65;29830:6;29825:3;29818:4;29811:5;29807:16;29772:65;:::i;:::-;29862:29;29884:6;29862:29;:::i;:::-;29857:3;29853:39;29846:46;;29615:283;29525:373;;;;:::o;29904:640::-;30099:4;30137:3;30126:9;30122:19;30114:27;;30151:71;30219:1;30208:9;30204:17;30195:6;30151:71;:::i;:::-;30232:72;30300:2;30289:9;30285:18;30276:6;30232:72;:::i;:::-;30314;30382:2;30371:9;30367:18;30358:6;30314:72;:::i;:::-;30433:9;30427:4;30423:20;30418:2;30407:9;30403:18;30396:48;30461:76;30532:4;30523:6;30461:76;:::i;:::-;30453:84;;29904:640;;;;;;;:::o;30550:141::-;30606:5;30637:6;30631:13;30622:22;;30653:32;30679:5;30653:32;:::i;:::-;30550:141;;;;:::o;30697:349::-;30766:6;30815:2;30803:9;30794:7;30790:23;30786:32;30783:119;;;30821:79;;:::i;:::-;30783:119;30941:1;30966:63;31021:7;31012:6;31001:9;30997:22;30966:63;:::i;:::-;30956:73;;30912:127;30697:349;;;;:::o;31052:332::-;31173:4;31211:2;31200:9;31196:18;31188:26;;31224:71;31292:1;31281:9;31277:17;31268:6;31224:71;:::i;:::-;31305:72;31373:2;31362:9;31358:18;31349:6;31305:72;:::i;:::-;31052:332;;;;;:::o;31390:410::-;31430:7;31453:20;31471:1;31453:20;:::i;:::-;31448:25;;31487:20;31505:1;31487:20;:::i;:::-;31482:25;;31542:1;31539;31535:9;31564:30;31582:11;31564:30;:::i;:::-;31553:41;;31743:1;31734:7;31730:15;31727:1;31724:22;31704:1;31697:9;31677:83;31654:139;;31773:18;;:::i;:::-;31654:139;31438:362;31390:410;;;;:::o;31806:191::-;31846:3;31865:20;31883:1;31865:20;:::i;:::-;31860:25;;31899:20;31917:1;31899:20;:::i;:::-;31894:25;;31942:1;31939;31935:9;31928:16;;31963:3;31960:1;31957:10;31954:36;;;31970:18;;:::i;:::-;31954:36;31806:191;;;;:::o;32003:180::-;32051:77;32048:1;32041:88;32148:4;32145:1;32138:15;32172:4;32169:1;32162:15;32189:185;32229:1;32246:20;32264:1;32246:20;:::i;:::-;32241:25;;32280:20;32298:1;32280:20;:::i;:::-;32275:25;;32319:1;32309:35;;32324:18;;:::i;:::-;32309:35;32366:1;32363;32359:9;32354:14;;32189:185;;;;:::o" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "formatTokenURI(string)": "71aee193", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "mint()": "1249c58b", + "mintPrice()": "6817c76c", + "name()": "06fdde03", + "owner()": "8da5cb5b", + "ownerOf(uint256)": "6352211e", + "renounceOwnership()": "715018a6", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "svgData()": "a31e06da", + "svgToImageURI(string)": "30d871c6", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "transferOwnership(address)": "f2fde38b", + "updateSVG(string)": "a52db60d", + "withdrawFunds()": "24600fc3" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"initialSvg\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"imageURI\",\"type\":\"string\"}],\"name\":\"formatTokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"svgData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"svg\",\"type\":\"string\"}],\"name\":\"svgToImageURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_newSvg\",\"type\":\"string\"}],\"name\":\"updateSVG\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FluffyFuryNFT.sol\":\"FluffyFury\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Base64.sol\":{\"keccak256\":\"0x6d694185b14e1233702ff0bbf9fd2d1915b53cc525e17fd74fcf924c0965a8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e929968c67ff158ca737ccccb0847c02e4d07006f9d9d395bc8c2b7264486fc\",\"dweb:/ipfs/QmQUrKGYj5QKkZN7DDXHcivBFU7tzF2Uyv3G65ZaZBZEFS\"]},\"contracts/FluffyFuryNFT.sol\":{\"keccak256\":\"0x4e30467dbbb9118d44fc787213672444e4f8bd55541136cef6b6619b39f165ca\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://03b86cab02085add8575f1d8acfef91dd7e62508e0a76a8f91e6c69f24cd22ad\",\"dweb:/ipfs/QmZyb2EgPLuajJWwTDiNZTxRMicM3r6dYAGdTEPpDu1vwN\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-4202/deployed_addresses.json b/ignition/deployments/chain-4202/deployed_addresses.json new file mode 100644 index 0000000..17346a5 --- /dev/null +++ b/ignition/deployments/chain-4202/deployed_addresses.json @@ -0,0 +1,5 @@ +{ + "FluffyFuryModule#FluffyFury": "0x8d62Cdd85BF63acD648c06b0766b33e381686DF0", + "CavePartyModule#CaveParty": "0x8613BFbd4A1c460a88E6ea15cCCD7dBEa67A882d", + "NFTGatedEventManagerModule#NFTGatedEventManager": "0xDbeaeb362f2889255b81f0d3E77F92Ee220D24Dc" +} diff --git a/ignition/deployments/chain-4202/journal.jsonl b/ignition/deployments/chain-4202/journal.jsonl new file mode 100644 index 0000000..d79bcd0 --- /dev/null +++ b/ignition/deployments/chain-4202/journal.jsonl @@ -0,0 +1,17 @@ + +{"chainId":4202,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"FluffyFuryModule#FluffyFury","constructorArgs":[""],"contractName":"FluffyFury","dependencies":[],"from":"0x7429cbd5ed20736645723e972be60b7f6bf5959c","futureId":"FluffyFuryModule#FluffyFury","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"FluffyFuryModule#FluffyFury","networkInteraction":{"data":"0x6080604052655af3107a40006009553480156200001b57600080fd5b5060405162003cf938038062003cf983398181016040528101906200004191906200045d565b336040518060400160405280600a81526020017f466c7566667946757279000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f46465900000000000000000000000000000000000000000000000000000000008152508160009081620000bf9190620006f9565b508060019081620000d19190620006f9565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001495760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000140919062000825565b60405180910390fd5b6200015a816200020460201b60201c565b506000815111620001a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019990620008a3565b60405180910390fd5b61138881511115620001eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e29062000915565b60405180910390fd5b80600a9081620001fc9190620006f9565b505062000937565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200033382620002e8565b810181811067ffffffffffffffff82111715620003555762000354620002f9565b5b80604052505050565b60006200036a620002ca565b905062000378828262000328565b919050565b600067ffffffffffffffff8211156200039b576200039a620002f9565b5b620003a682620002e8565b9050602081019050919050565b60005b83811015620003d3578082015181840152602081019050620003b6565b60008484015250505050565b6000620003f6620003f0846200037d565b6200035e565b905082815260208101848484011115620004155762000414620002e3565b5b62000422848285620003b3565b509392505050565b600082601f830112620004425762000441620002de565b5b815162000454848260208601620003df565b91505092915050565b600060208284031215620004765762000475620002d4565b5b600082015167ffffffffffffffff811115620004975762000496620002d9565b5b620004a5848285016200042a565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200050157607f821691505b602082108103620005175762000516620004b9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000542565b6200058d868362000542565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005da620005d4620005ce84620005a5565b620005af565b620005a5565b9050919050565b6000819050919050565b620005f683620005b9565b6200060e6200060582620005e1565b8484546200054f565b825550505050565b600090565b6200062562000616565b62000632818484620005eb565b505050565b5b818110156200065a576200064e6000826200061b565b60018101905062000638565b5050565b601f821115620006a95762000673816200051d565b6200067e8462000532565b810160208510156200068e578190505b620006a66200069d8562000532565b83018262000637565b50505b505050565b600082821c905092915050565b6000620006ce60001984600802620006ae565b1980831691505092915050565b6000620006e98383620006bb565b9150826002028217905092915050565b6200070482620004ae565b67ffffffffffffffff81111562000720576200071f620002f9565b5b6200072c8254620004e8565b620007398282856200065e565b600060209050601f8311600181146200077157600084156200075c578287015190505b620007688582620006db565b865550620007d8565b601f19841662000781866200051d565b60005b82811015620007ab5784890151825560018201915060208501945060208101905062000784565b86831015620007cb5784890151620007c7601f891682620006bb565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080d82620007e0565b9050919050565b6200081f8162000800565b82525050565b60006020820190506200083c600083018462000814565b92915050565b600082825260208201905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b60006200088b60188362000842565b9150620008988262000853565b602082019050919050565b60006020820190508181036000830152620008be816200087c565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000620008fd60128362000842565b91506200090a82620008c5565b602082019050919050565b600060208201905081810360008301526200093081620008ee565b9050919050565b6133b280620009476000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a31e06da1161006f578063a31e06da14610446578063a52db60d14610471578063b88d4fde1461049a578063c87b56dd146104c3578063e985e9c514610500578063f2fde38b1461053d5761014b565b806370a0823114610336578063715018a61461037357806371aee1931461038a5780638da5cb5b146103c757806395d89b41146103f2578063a22cb4651461041d5761014b565b806323b872dd1161010857806323b872dd1461022857806324600fc31461025157806330d871c61461026857806342842e0e146102a55780636352211e146102ce5780636817c76c1461030b5761014b565b806301ffc9a71461015057806306fdde031461018d578063081812fc146101b8578063095ea7b3146101f55780631249c58b1461021e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101776004803603810190610172919061229d565b610566565b60405161018491906122e5565b60405180910390f35b34801561019957600080fd5b506101a26105c7565b6040516101af9190612390565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da91906123e8565b610659565b6040516101ec9190612456565b60405180910390f35b34801561020157600080fd5b5061021c6004803603810190610217919061249d565b610675565b005b61022661068b565b005b34801561023457600080fd5b5061024f600480360381019061024a91906124dd565b6107e2565b005b34801561025d57600080fd5b506102666108e4565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612665565b6109eb565b60405161029c9190612390565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906124dd565b610a5f565b005b3480156102da57600080fd5b506102f560048036038101906102f091906123e8565b610a7f565b6040516103029190612456565b60405180910390f35b34801561031757600080fd5b50610320610a91565b60405161032d91906126bd565b60405180910390f35b34801561034257600080fd5b5061035d600480360381019061035891906126d8565b610a97565b60405161036a91906126bd565b60405180910390f35b34801561037f57600080fd5b50610388610b51565b005b34801561039657600080fd5b506103b160048036038101906103ac9190612665565b610b65565b6040516103be9190612390565b60405180910390f35b3480156103d357600080fd5b506103dc610bb5565b6040516103e99190612456565b60405180910390f35b3480156103fe57600080fd5b50610407610bdf565b6040516104149190612390565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612731565b610c71565b005b34801561045257600080fd5b5061045b610c87565b6040516104689190612390565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612665565b610d15565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612812565b610dba565b005b3480156104cf57600080fd5b506104ea60048036038101906104e591906123e8565b610dd7565b6040516104f79190612390565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612895565b610eea565b60405161053491906122e5565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f91906126d8565b610f7e565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105c057506105bf82611001565b5b9050919050565b6060600080546105d690612904565b80601f016020809104026020016040519081016040528092919081815260200182805461060290612904565b801561064f5780601f106106245761010080835404028352916020019161064f565b820191906000526020600020905b81548152906001019060200180831161063257829003601f168201915b5050505050905090565b6000610664826110e3565b5061066e8261116b565b9050919050565b61068782826106826111a8565b6111b0565b5050565b60095434146106cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c690612981565b60405180910390fd5b6000610764600a80546106e190612904565b80601f016020809104026020016040519081016040528092919081815260200182805461070d90612904565b801561075a5780601f1061072f5761010080835404028352916020019161075a565b820191906000526020600020905b81548152906001019060200180831161073d57829003601f168201915b50505050506109eb565b9050600061077182610b65565b905060086000815480929190610786906129d0565b91905055506000600854905061079c33826111c2565b6107a681836111e0565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a816040516107d591906126bd565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108545760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161084b9190612456565b60405180910390fd5b600061086883836108636111a8565b61123c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108de578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108d593929190612a18565b60405180910390fd5b50505050565b6108ec611456565b600047905060008111610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612a9b565b60405180910390fd5b600061093e610bb5565b73ffffffffffffffffffffffffffffffffffffffff168260405161096190612aec565b60006040518083038185875af1925050503d806000811461099e576040519150601f19603f3d011682016040523d82523d6000602084013e6109a3565b606091505b50509050806109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612b4d565b60405180910390fd5b5050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c00000000000081525090506000610a32846114dd565b90508181604051602001610a47929190612ba9565b60405160208183030381529060405292505050919050565b610a7a83838360405180602001604052806000815250610dba565b505050565b6000610a8a826110e3565b9050919050565b60095481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b0a5760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b019190612456565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b59611456565b610b63600061150a565b565b6060610b8f82604051602001610b7b9190612cd7565b6040516020818303038152906040526114dd565b604051602001610b9f9190612d50565b6040516020818303038152906040529050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610bee90612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90612904565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b610c83610c7c6111a8565b83836115d0565b5050565b600a8054610c9490612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090612904565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b505050505081565b610d1d611456565b6000815111610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612dbe565b60405180910390fd5b61138881511115610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612e2a565b60405180910390fd5b80600a9081610db69190612ff6565b5050565b610dc58484846107e2565b610dd18484848461173f565b50505050565b6060610de2826110e3565b506000600660008481526020019081526020016000208054610e0390612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2f90612904565b8015610e7c5780601f10610e5157610100808354040283529160200191610e7c565b820191906000526020600020905b815481529060010190602001808311610e5f57829003601f168201915b505050505090506000610e8d6118f6565b90506000815103610ea2578192505050610ee5565b600082511115610ed7578082604051602001610ebf929190612ba9565b60405160208183030381529060405292505050610ee5565b610ee08461190d565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f86611456565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec9061313a565b60405180910390fd5b610ffe8161150a565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806110dc57506110db82611976565b5b9050919050565b6000806110ef836119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361116257826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161115991906126bd565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6111bd8383836001611a1d565b505050565b6111dc828260405180602001604052806000815250611be2565b5050565b806006600084815260200190815260200160002090816112009190612ff6565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161123091906126bd565b60405180910390a15050565b600080611248846119e0565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461128a57611289818486611bfe565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461131b576112cc600085600080611a1d565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461139e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61145e6111a8565b73ffffffffffffffffffffffffffffffffffffffff1661147c610bb5565b73ffffffffffffffffffffffffffffffffffffffff16146114db5761149f6111a8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114d29190612456565b60405180910390fd5b565b60606115038260405180606001604052806040815260200161333d604091396001611cc2565b9050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361164157816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116389190612456565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161173291906122e5565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156118f0578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117836111a8565b8685856040518563ffffffff1660e01b81526004016117a594939291906131af565b6020604051808303816000875af19250505080156117e157506040513d601f19601f820116820180604052508101906117de9190613210565b60015b611865573d8060008114611811576040519150601f19603f3d011682016040523d82523d6000602084013e611816565b606091505b50600081510361185d57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118549190612456565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146118ee57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118e59190612456565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b6060611918826110e3565b5060006119236118f6565b90506000815111611943576040518060200160405280600081525061196e565b8061194d84611e56565b60405160200161195e929190612ba9565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611a565750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b8a576000611a66846110e3565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ad157508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae45750611ae28184610eea565b155b15611b2657826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611b1d9190612456565b60405180910390fd5b8115611b8857838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611bec8383611f24565b611bf9600084848461173f565b505050565b611c0983838361201d565b611cbd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c7e57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611c7591906126bd565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611cb492919061323d565b60405180910390fd5b505050565b60606000845103611ce457604051806020016040528060008152509050611e4f565b600082611d16576003600286516004611cfd9190613266565b611d0791906132a8565b611d11919061330b565b611d3d565b600360028651611d2691906132a8565b611d30919061330b565b6004611d3c9190613266565b5b905060008167ffffffffffffffff811115611d5b57611d5a61253a565b5b6040519080825280601f01601f191660200182016040528015611d8d5781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b82841015611e03576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865360018601955050611da8565b8082528915611e435760038c510660018114611e265760028114611e3957611e41565b603d6001870353603d6002870353611e41565b603d60018703535b505b50505050505080925050505b9392505050565b606060006001611e65846120de565b01905060008167ffffffffffffffff811115611e8457611e8361253a565b5b6040519080825280601f01601f191660200182016040528015611eb65781602001600182028036833780820191505090505b509050600082602001820190505b600115611f19578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f0d57611f0c6132dc565b5b04945060008503611ec4575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f965760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8d9190612456565b60405180910390fd5b6000611fa48383600061123c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120185760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161200f9190612456565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120d557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061209657506120958484610eea565b5b806120d457508273ffffffffffffffffffffffffffffffffffffffff166120bc8361116b565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061213c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612132576121316132dc565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612179576d04ee2d6d415b85acef8100000000838161216f5761216e6132dc565b5b0492506020810190505b662386f26fc1000083106121a857662386f26fc10000838161219e5761219d6132dc565b5b0492506010810190505b6305f5e10083106121d1576305f5e10083816121c7576121c66132dc565b5b0492506008810190505b61271083106121f65761271083816121ec576121eb6132dc565b5b0492506004810190505b60648310612219576064838161220f5761220e6132dc565b5b0492506002810190505b600a8310612228576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61227a81612245565b811461228557600080fd5b50565b60008135905061229781612271565b92915050565b6000602082840312156122b3576122b261223b565b5b60006122c184828501612288565b91505092915050565b60008115159050919050565b6122df816122ca565b82525050565b60006020820190506122fa60008301846122d6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233a57808201518184015260208101905061231f565b60008484015250505050565b6000601f19601f8301169050919050565b600061236282612300565b61236c818561230b565b935061237c81856020860161231c565b61238581612346565b840191505092915050565b600060208201905081810360008301526123aa8184612357565b905092915050565b6000819050919050565b6123c5816123b2565b81146123d057600080fd5b50565b6000813590506123e2816123bc565b92915050565b6000602082840312156123fe576123fd61223b565b5b600061240c848285016123d3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061244082612415565b9050919050565b61245081612435565b82525050565b600060208201905061246b6000830184612447565b92915050565b61247a81612435565b811461248557600080fd5b50565b60008135905061249781612471565b92915050565b600080604083850312156124b4576124b361223b565b5b60006124c285828601612488565b92505060206124d3858286016123d3565b9150509250929050565b6000806000606084860312156124f6576124f561223b565b5b600061250486828701612488565b935050602061251586828701612488565b9250506040612526868287016123d3565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61257282612346565b810181811067ffffffffffffffff821117156125915761259061253a565b5b80604052505050565b60006125a4612231565b90506125b08282612569565b919050565b600067ffffffffffffffff8211156125d0576125cf61253a565b5b6125d982612346565b9050602081019050919050565b82818337600083830152505050565b6000612608612603846125b5565b61259a565b90508281526020810184848401111561262457612623612535565b5b61262f8482856125e6565b509392505050565b600082601f83011261264c5761264b612530565b5b813561265c8482602086016125f5565b91505092915050565b60006020828403121561267b5761267a61223b565b5b600082013567ffffffffffffffff81111561269957612698612240565b5b6126a584828501612637565b91505092915050565b6126b7816123b2565b82525050565b60006020820190506126d260008301846126ae565b92915050565b6000602082840312156126ee576126ed61223b565b5b60006126fc84828501612488565b91505092915050565b61270e816122ca565b811461271957600080fd5b50565b60008135905061272b81612705565b92915050565b600080604083850312156127485761274761223b565b5b600061275685828601612488565b92505060206127678582860161271c565b9150509250929050565b600067ffffffffffffffff82111561278c5761278b61253a565b5b61279582612346565b9050602081019050919050565b60006127b56127b084612771565b61259a565b9050828152602081018484840111156127d1576127d0612535565b5b6127dc8482856125e6565b509392505050565b600082601f8301126127f9576127f8612530565b5b81356128098482602086016127a2565b91505092915050565b6000806000806080858703121561282c5761282b61223b565b5b600061283a87828801612488565b945050602061284b87828801612488565b935050604061285c878288016123d3565b925050606085013567ffffffffffffffff81111561287d5761287c612240565b5b612889878288016127e4565b91505092959194509250565b600080604083850312156128ac576128ab61223b565b5b60006128ba85828601612488565b92505060206128cb85828601612488565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061291c57607f821691505b60208210810361292f5761292e6128d5565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061296b601d8361230b565b915061297682612935565b602082019050919050565b6000602082019050818103600083015261299a8161295e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129db826123b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a0d57612a0c6129a1565b5b600182019050919050565b6000606082019050612a2d6000830186612447565b612a3a60208301856126ae565b612a476040830184612447565b949350505050565b7f4e6f2066756e647320617661696c61626c650000000000000000000000000000600082015250565b6000612a8560128361230b565b9150612a9082612a4f565b602082019050919050565b60006020820190508181036000830152612ab481612a78565b9050919050565b600081905092915050565b50565b6000612ad6600083612abb565b9150612ae182612ac6565b600082019050919050565b6000612af782612ac9565b9150819050919050565b7f5769746864726177616c206661696c6564000000000000000000000000000000600082015250565b6000612b3760118361230b565b9150612b4282612b01565b602082019050919050565b60006020820190508181036000830152612b6681612b2a565b9050919050565b600081905092915050565b6000612b8382612300565b612b8d8185612b6d565b9350612b9d81856020860161231c565b80840191505092915050565b6000612bb58285612b78565b9150612bc18284612b78565b91508190509392505050565b7f7b226e616d65223a2022466c756666792046757279222c20226465736372697060008201527f74696f6e223a2022596f75722061636365737320696e746f20616e792065766560208201527f6e742063726561746564207573696e67207468697320746f6b656e206164647260408201527f657373222c2022696d616765223a220000000000000000000000000000000000606082015250565b6000612c75606f83612b6d565b9150612c8082612bcd565b606f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612cc1600283612b6d565b9150612ccc82612c8b565b600282019050919050565b6000612ce282612c68565b9150612cee8284612b78565b9150612cf982612cb4565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000612d3a601d83612b6d565b9150612d4582612d04565b601d82019050919050565b6000612d5b82612d2d565b9150612d678284612b78565b915081905092915050565b7f53564720646174612063616e6e6f7420626520656d7074790000000000000000600082015250565b6000612da860188361230b565b9150612db382612d72565b602082019050919050565b60006020820190508181036000830152612dd781612d9b565b9050919050565b7f535647206461746120746f6f206c617267650000000000000000000000000000600082015250565b6000612e1460128361230b565b9150612e1f82612dde565b602082019050919050565b60006020820190508181036000830152612e4381612e07565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612eac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e6f565b612eb68683612e6f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612ef3612eee612ee9846123b2565b612ece565b6123b2565b9050919050565b6000819050919050565b612f0d83612ed8565b612f21612f1982612efa565b848454612e7c565b825550505050565b600090565b612f36612f29565b612f41818484612f04565b505050565b5b81811015612f6557612f5a600082612f2e565b600181019050612f47565b5050565b601f821115612faa57612f7b81612e4a565b612f8484612e5f565b81016020851015612f93578190505b612fa7612f9f85612e5f565b830182612f46565b50505b505050565b600082821c905092915050565b6000612fcd60001984600802612faf565b1980831691505092915050565b6000612fe68383612fbc565b9150826002028217905092915050565b612fff82612300565b67ffffffffffffffff8111156130185761301761253a565b5b6130228254612904565b61302d828285612f69565b600060209050601f831160018114613060576000841561304e578287015190505b6130588582612fda565b8655506130c0565b601f19841661306e86612e4a565b60005b8281101561309657848901518255600182019150602085019450602081019050613071565b868310156130b357848901516130af601f891682612fbc565b8355505b6001600288020188555050505b505050505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061312460248361230b565b915061312f826130c8565b604082019050919050565b6000602082019050818103600083015261315381613117565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006131818261315a565b61318b8185613165565b935061319b81856020860161231c565b6131a481612346565b840191505092915050565b60006080820190506131c46000830187612447565b6131d16020830186612447565b6131de60408301856126ae565b81810360608301526131f08184613176565b905095945050505050565b60008151905061320a81612271565b92915050565b6000602082840312156132265761322561223b565b5b6000613234848285016131fb565b91505092915050565b60006040820190506132526000830185612447565b61325f60208301846126ae565b9392505050565b6000613271826123b2565b915061327c836123b2565b925082820261328a816123b2565b915082820484148315176132a1576132a06129a1565b5b5092915050565b60006132b3826123b2565b91506132be836123b2565b92508282019050808211156132d6576132d56129a1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613316826123b2565b9150613321836123b2565b925082613331576133306132dc565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f1a1a46abdc0ea2e367c70d79d69481c4d0e6e587eee1932b56afa37249682e564736f6c63430008180033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000007be3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d227574662d38223f3e3c7376672077696474683d22383030707822206865696768743d223830307078222076696577426f783d22302030203130323420313032342220636c6173733d2269636f6e22202076657273696f6e3d22312e312220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f737667223e3c7061746820643d224d3234392e35203730302e366331342e35203133352e35203133322e36203234312e3120323736203234312e31733236312e352d3130352e36203237362d3234312e31682d3535327a222066696c6c3d222346394330433022202f3e3c7061746820643d224d353132203935372e33632d37392e3620302d3135342e352d32382e372d3231302e382d38302e382d35362e352d35322e322d38372e362d3132312e372d38372e362d3139352e3720302d35392e372032302e322d3131362e352035382e342d3136342e332033362e322d34352e332038352e342d37382e38203134322e362d39372e31563230362e31682d34362e31632d31312e3220302d32302e342d392e312d32302e342d32302e34762d31372e3163302d31312e3220392e312d32302e342032302e342d32302e34683238372e326331312e3220302032302e3420392e312032302e342032302e347631372e3163302031312e322d392e312032302e342d32302e342032302e34682d34362e31763231332e346335372e312031382e33203130362e332035312e38203134322e362039372e312033382e322034372e382035382e34203130342e362035382e34203136342e3320302037342d33312e31203134332e352d38372e36203139352e372d35362e352035322d3133312e342038302e372d3231312038302e377a4d3336382e34203136332e32632d3320302d352e3420322e342d352e3420352e347631372e316330203320322e3420352e3420352e3420352e346836312e31763233392e356c2d352e3320312e36632d35362e352031372d3130352e312034392e342d3134302e352039332e372d33362034352e312d35352e312039382e372d35352e31203135342e3920302036392e372032392e34203133352e332038322e38203138342e374333363520393135203433362e32203934322e3320353132203934322e33733134372e312d32372e33203230302e362d37362e386335332e342d34392e342038322e382d3131352038322e382d3138342e3720302d35362e322d31392d3130392e382d35352e312d3135342e392d33352e342d34342e342d38342d37362e382d3134302e352d39332e376c2d352e332d312e36563139312e316836312e316333203020352e342d322e3420352e342d352e34762d31372e3163302d332d322e342d352e342d352e342d352e34483336382e347a222066696c6c3d222339393939393922202f3e3c7061746820643d224d3232302e37203637362e38683538312e397638483232302e377a4d343133203139302e386833392e367638483431337a4d3439352e35203139302e38683130362e317638483439352e357a222066696c6c3d222339393939393922202f3e3c7061746820643d224d3435322e37203634352e37632d313420302d32352e342d31312e342d32352e342d32352e347331312e342d32352e342032352e342d32352e342032352e342031312e342032352e342032352e342d31312e342032352e342d32352e342032352e347a206d302d34322e39632d392e3620302d31372e3420372e382d31372e342031372e3473372e382031372e342031372e342031372e342031372e342d372e382031372e342d31372e342d372e382d31372e342d31372e342d31372e347a4d3537312e36203535362e38632d32372e3620302d35302e312d32322e352d35302e312d35302e317332322e352d35302e312035302e312d35302e312035302e312032322e352035302e312035302e312d32322e352035302e312d35302e312035302e317a206d302d39322e32632d32332e3220302d34322e312031382e392d34322e312034322e317331382e392034322e312034322e312034322e312034322e312d31382e392034322e312d34322e312d31382e392d34322e312d34322e312d34322e317a4d3439312e32203331362e37632d313720302d33302e382d31332e382d33302e382d33302e387331332e382d33302e382033302e382d33302e382033302e382031332e382033302e382033302e382d31332e382033302e382d33302e382033302e387a206d302d35332e36632d31322e3620302d32322e382031302e322d32322e382032322e387331302e322032322e382032322e382032322e386331322e3620302032322e382d31302e322032322e382d32322e38732d31302e322d32322e382d32322e382d32322e387a4d3534332e32203131332e31632d313220302d32312e372d392e372d32312e372d32312e3773392e372d32312e372032312e372d32312e372032312e3720392e372032312e372032312e372d392e372032312e372d32312e372032312e377a206d302d33352e34632d372e3520302d31332e3720362e312d31332e372031332e3773362e312031332e372031332e372031332e372031332e372d362e312031332e372d31332e372d362e312d31332e372d31332e372d31332e377a222066696c6c3d222343453032303222202f3e3c2f7376673e0000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"FluffyFuryModule#FluffyFury","networkInteractionId":1,"nonce":82,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000506"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0xdf193444a9fba015144a128cc21592217721b4d3a83deb3a0a8d8c4f5b132d5f"},"type":"TRANSACTION_SEND"} +{"futureId":"FluffyFuryModule#FluffyFury","hash":"0xdf193444a9fba015144a128cc21592217721b4d3a83deb3a0a8d8c4f5b132d5f","networkInteractionId":1,"receipt":{"blockHash":"0x642f47d7212eb7bc3cf05b03b8c356ac574d9a050c44aaf2c19050b34011ba51","blockNumber":10493632,"contractAddress":"0x8d62Cdd85BF63acD648c06b0766b33e381686DF0","logs":[{"address":"0x8d62Cdd85BF63acD648c06b0766b33e381686DF0","data":"0x","logIndex":0,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000007429cbd5ed20736645723e972be60b7f6bf5959c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"FluffyFuryModule#FluffyFury","result":{"address":"0x8d62Cdd85BF63acD648c06b0766b33e381686DF0","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"CavePartyModule#CaveParty","constructorArgs":[],"contractName":"CaveParty","dependencies":[],"from":"0x7429cbd5ed20736645723e972be60b7f6bf5959c","futureId":"CavePartyModule#CaveParty","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"CavePartyModule#CaveParty","networkInteraction":{"data":"0x60806040526000600755655af3107a400060085560016009556040518060600160405280603581526020016200359060359139600a9081620000429190620004b1565b503480156200005057600080fd5b50336040518060400160405280600981526020017f43617665506172747900000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f43505900000000000000000000000000000000000000000000000000000000008152508160009081620000cf9190620004b1565b508060019081620000e19190620004b1565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001595760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001509190620005dd565b60405180910390fd5b6200016a816200017160201b60201c565b50620005fa565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002b957607f821691505b602082108103620002cf57620002ce62000271565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002fa565b620003458683620002fa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003926200038c62000386846200035d565b62000367565b6200035d565b9050919050565b6000819050919050565b620003ae8362000371565b620003c6620003bd8262000399565b84845462000307565b825550505050565b600090565b620003dd620003ce565b620003ea818484620003a3565b505050565b5b81811015620004125762000406600082620003d3565b600181019050620003f0565b5050565b601f82111562000461576200042b81620002d5565b6200043684620002ea565b8101602085101562000446578190505b6200045e6200045585620002ea565b830182620003ef565b50505b505050565b600082821c905092915050565b6000620004866000198460080262000466565b1980831691505092915050565b6000620004a1838362000473565b9150826002028217905092915050565b620004bc8262000237565b67ffffffffffffffff811115620004d857620004d762000242565b5b620004e48254620002a0565b620004f182828562000416565b600060209050601f83116001811462000529576000841562000514578287015190505b62000520858262000493565b86555062000590565b601f1984166200053986620002d5565b60005b8281101562000563578489015182556001820191506020850194506020810190506200053c565b868310156200058357848901516200057f601f89168262000473565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005c58262000598565b9050919050565b620005d781620005b8565b82525050565b6000602082019050620005f46000830184620005cc565b92915050565b612f86806200060a6000396000f3fe6080604052600436106101815760003560e01c806370a08231116100d1578063a22cb4651161008a578063ddd71ede11610064578063ddd71ede1461053d578063e985e9c514610568578063f0293fd3146105a5578063f2fde38b146105e257610181565b8063a22cb465146104ae578063b88d4fde146104d7578063c87b56dd1461050057610181565b806370a08231146103b0578063715018a6146103ed57806388662de9146104045780638da5cb5b1461042f578063918b5be11461045a57806395d89b411461048357610181565b806323b872dd1161013e578063453c231011610118578063453c2310146102f2578063505168081461031d5780636352211e146103485780636817c76c1461038557610181565b806323b872dd1461028957806324600fc3146102b257806342842e0e146102c957610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780631f21bfbf146102545780632004ffd91461027f575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a8919061213e565b61060b565b6040516101ba9190612186565b60405180910390f35b3480156101cf57600080fd5b506101d86106ed565b6040516101e59190612231565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612289565b61077f565b60405161022291906122f7565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061233e565b61079b565b005b34801561026057600080fd5b506102696107b1565b604051610276919061238d565b60405180910390f35b6102876107b7565b005b34801561029557600080fd5b506102b060048036038101906102ab91906123a8565b6108e1565b005b3480156102be57600080fd5b506102c76109e3565b005b3480156102d557600080fd5b506102f060048036038101906102eb91906123a8565b610aa1565b005b3480156102fe57600080fd5b50610307610ac1565b604051610314919061238d565b60405180910390f35b34801561032957600080fd5b50610332610ac7565b60405161033f919061238d565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612289565b610b0e565b60405161037c91906122f7565b60405180910390f35b34801561039157600080fd5b5061039a610b20565b6040516103a7919061238d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906123fb565b610b26565b6040516103e4919061238d565b60405180910390f35b3480156103f957600080fd5b50610402610be0565b005b34801561041057600080fd5b50610419610bf4565b6040516104269190612231565b60405180910390f35b34801561043b57600080fd5b50610444610c82565b60405161045191906122f7565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c919061255d565b610cac565b005b34801561048f57600080fd5b50610498610d0f565b6040516104a59190612231565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d091906125d2565b610da1565b005b3480156104e357600080fd5b506104fe60048036038101906104f991906126b3565b610db7565b005b34801561050c57600080fd5b5061052760048036038101906105229190612289565b610dd4565b6040516105349190612231565b60405180910390f35b34801561054957600080fd5b50610552610e3d565b60405161055f9190612231565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190612736565b610ed7565b60405161059c9190612186565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c791906123fb565b610f6b565b6040516105d9919061238d565b60405180910390f35b3480156105ee57600080fd5b50610609600480360381019061060491906123fb565b610f83565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106d657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106e657506106e582611009565b5b9050919050565b6060600080546106fc906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610728906127a5565b80156107755780601f1061074a57610100808354040283529160200191610775565b820191906000526020600020905b81548152906001019060200180831161075857829003601f168201915b5050505050905090565b600061078a82611073565b50610794826110fb565b9050919050565b6107ad82826107a8611138565b611140565b5050565b60075481565b34600854146107fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f290612822565b60405180910390fd5b600954600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561087f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108769061288e565b60405180910390fd5b6001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108cf91906128dd565b925050819055506108df33611152565b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109535760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161094a91906122f7565b60405180910390fd5b60006109678383610962611138565b61117f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016109d493929190612911565b60405180910390fd5b50505050565b6109eb611399565b60006109f5610c82565b73ffffffffffffffffffffffffffffffffffffffff1647604051610a1890612979565b60006040518083038185875af1925050503d8060008114610a55576040519150601f19603f3d011682016040523d82523d6000602084013e610a5a565b606091505b5050905080610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a95906129da565b60405180910390fd5b50565b610abc83838360405180602001604052806000815250610db7565b505050565b60095481565b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000610b1982611073565b9050919050565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b995760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610b9091906122f7565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be8611399565b610bf26000611420565b565b600a8054610c01906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2d906127a5565b8015610c7a5780601f10610c4f57610100808354040283529160200191610c7a565b820191906000526020600020905b815481529060010190602001808311610c5d57829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb4611399565b610cbd816114e6565b610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390612a6c565b60405180910390fd5b80600a9081610d0b9190612c38565b5050565b606060018054610d1e906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4a906127a5565b8015610d975780601f10610d6c57610100808354040283529160200191610d97565b820191906000526020600020905b815481529060010190602001808311610d7a57829003601f168201915b5050505050905090565b610db3610dac611138565b838361163f565b5050565b610dc28484846108e1565b610dce848484846117ae565b50505050565b6060610ddf82611073565b506000610dea611965565b90506000815111610e0a5760405180602001604052806000815250610e35565b80610e14846119f7565b604051602001610e25929190612d46565b6040516020818303038152906040525b915050919050565b6060610e47611399565b600a8054610e54906127a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610e80906127a5565b8015610ecd5780601f10610ea257610100808354040283529160200191610ecd565b820191906000526020600020905b815481529060010190602001808311610eb057829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b6020528060005260406000206000915090505481565b610f8b611399565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ffd5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610ff491906122f7565b60405180910390fd5b61100681611420565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008061107f83611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f257826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016110e9919061238d565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61114d8383836001611b02565b505050565b600060075490506007600081548092919061116c90612d6a565b919050555061117b8282611cc7565b5050565b60008061118b84611ac5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111cd576111cc818486611ce5565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461125e5761120f600085600080611b02565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146112e1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6113a1611138565b73ffffffffffffffffffffffffffffffffffffffff166113bf610c82565b73ffffffffffffffffffffffffffffffffffffffff161461141e576113e2611138565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161141591906122f7565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060006040518060400160405280600781526020017f697066733a2f2f00000000000000000000000000000000000000000000000000815250905080518251101561153b5760009250505061163a565b60005b8151835161154c9190612db2565b81116116325760006001905060005b835181101561160a5783818151811061157757611576612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168582856115b191906128dd565b815181106115c2576115c1612de6565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115fd576000915061160a565b808060010191505061155b565b50801561161e57600194505050505061163a565b50808061162a90612d6a565b91505061153e565b506000925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b057816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016116a791906122f7565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117a19190612186565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561195f578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026117f2611138565b8685856040518563ffffffff1660e01b81526004016118149493929190612e6a565b6020604051808303816000875af192505050801561185057506040513d601f19601f8201168201806040525081019061184d9190612ecb565b60015b6118d4573d8060008114611880576040519150601f19603f3d011682016040523d82523d6000602084013e611885565b606091505b5060008151036118cc57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118c391906122f7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461195d57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161195491906122f7565b60405180910390fd5b505b50505050565b6060600a8054611974906127a5565b80601f01602080910402602001604051908101604052809291908181526020018280546119a0906127a5565b80156119ed5780601f106119c2576101008083540402835291602001916119ed565b820191906000526020600020905b8154815290600101906020018083116119d057829003601f168201915b5050505050905090565b606060006001611a0684611da9565b01905060008167ffffffffffffffff811115611a2557611a24612432565b5b6040519080825280601f01601f191660200182016040528015611a575781602001600182028036833780820191505090505b509050600082602001820190505b600115611aba578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611aae57611aad612ef8565b5b04945060008503611a65575b819350505050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b3b5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c6f576000611b4b84611073565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc95750611bc78184610ed7565b155b15611c0b57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c0291906122f7565b60405180910390fd5b8115611c6d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611ce1828260405180602001604052806000815250611efc565b5050565b611cf0838383611f18565b611da457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6557806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d5c919061238d565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611d9b929190612f27565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e07577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611dfd57611dfc612ef8565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611e44576d04ee2d6d415b85acef81000000008381611e3a57611e39612ef8565b5b0492506020810190505b662386f26fc100008310611e7357662386f26fc100008381611e6957611e68612ef8565b5b0492506010810190505b6305f5e1008310611e9c576305f5e1008381611e9257611e91612ef8565b5b0492506008810190505b6127108310611ec1576127108381611eb757611eb6612ef8565b5b0492506004810190505b60648310611ee45760648381611eda57611ed9612ef8565b5b0492506002810190505b600a8310611ef3576001810190505b80915050919050565b611f068383611fd9565b611f1360008484846117ae565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fd057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f915750611f908484610ed7565b5b80611fcf57508273ffffffffffffffffffffffffffffffffffffffff16611fb7836110fb565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361204b5760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161204291906122f7565b60405180910390fd5b60006120598383600061117f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120cd5760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016120c491906122f7565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61211b816120e6565b811461212657600080fd5b50565b60008135905061213881612112565b92915050565b600060208284031215612154576121536120dc565b5b600061216284828501612129565b91505092915050565b60008115159050919050565b6121808161216b565b82525050565b600060208201905061219b6000830184612177565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121db5780820151818401526020810190506121c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000612203826121a1565b61220d81856121ac565b935061221d8185602086016121bd565b612226816121e7565b840191505092915050565b6000602082019050818103600083015261224b81846121f8565b905092915050565b6000819050919050565b61226681612253565b811461227157600080fd5b50565b6000813590506122838161225d565b92915050565b60006020828403121561229f5761229e6120dc565b5b60006122ad84828501612274565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122e1826122b6565b9050919050565b6122f1816122d6565b82525050565b600060208201905061230c60008301846122e8565b92915050565b61231b816122d6565b811461232657600080fd5b50565b60008135905061233881612312565b92915050565b60008060408385031215612355576123546120dc565b5b600061236385828601612329565b925050602061237485828601612274565b9150509250929050565b61238781612253565b82525050565b60006020820190506123a2600083018461237e565b92915050565b6000806000606084860312156123c1576123c06120dc565b5b60006123cf86828701612329565b93505060206123e086828701612329565b92505060406123f186828701612274565b9150509250925092565b600060208284031215612411576124106120dc565b5b600061241f84828501612329565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61246a826121e7565b810181811067ffffffffffffffff8211171561248957612488612432565b5b80604052505050565b600061249c6120d2565b90506124a88282612461565b919050565b600067ffffffffffffffff8211156124c8576124c7612432565b5b6124d1826121e7565b9050602081019050919050565b82818337600083830152505050565b60006125006124fb846124ad565b612492565b90508281526020810184848401111561251c5761251b61242d565b5b6125278482856124de565b509392505050565b600082601f83011261254457612543612428565b5b81356125548482602086016124ed565b91505092915050565b600060208284031215612573576125726120dc565b5b600082013567ffffffffffffffff811115612591576125906120e1565b5b61259d8482850161252f565b91505092915050565b6125af8161216b565b81146125ba57600080fd5b50565b6000813590506125cc816125a6565b92915050565b600080604083850312156125e9576125e86120dc565b5b60006125f785828601612329565b9250506020612608858286016125bd565b9150509250929050565b600067ffffffffffffffff82111561262d5761262c612432565b5b612636826121e7565b9050602081019050919050565b600061265661265184612612565b612492565b9050828152602081018484840111156126725761267161242d565b5b61267d8482856124de565b509392505050565b600082601f83011261269a57612699612428565b5b81356126aa848260208601612643565b91505092915050565b600080600080608085870312156126cd576126cc6120dc565b5b60006126db87828801612329565b94505060206126ec87828801612329565b93505060406126fd87828801612274565b925050606085013567ffffffffffffffff81111561271e5761271d6120e1565b5b61272a87828801612685565b91505092959194509250565b6000806040838503121561274d5761274c6120dc565b5b600061275b85828601612329565b925050602061276c85828601612329565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127bd57607f821691505b6020821081036127d0576127cf612776565b5b50919050565b7f302e3030303120657468657220726571756972656420746f206d696e74000000600082015250565b600061280c601d836121ac565b9150612817826127d6565b602082019050919050565b6000602082019050818103600083015261283b816127ff565b9050919050565b7f6d696e7473207065722077616c6c657420657863656564656400000000000000600082015250565b60006128786019836121ac565b915061288382612842565b602082019050919050565b600060208201905081810360008301526128a78161286b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128e882612253565b91506128f383612253565b925082820190508082111561290b5761290a6128ae565b5b92915050565b600060608201905061292660008301866122e8565b612933602083018561237e565b61294060408301846122e8565b949350505050565b600081905092915050565b50565b6000612963600083612948565b915061296e82612953565b600082019050919050565b600061298482612956565b9150819050919050565b7f7769746864726177616c206661696c6564000000000000000000000000000000600082015250565b60006129c46011836121ac565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b7f496e76616c6964206173736574206d657461646174613a206d75737420696e6360008201527f6c7564652027697066733a2f2f27000000000000000000000000000000000000602082015250565b6000612a56602e836121ac565b9150612a61826129fa565b604082019050919050565b60006020820190508181036000830152612a8581612a49565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612aee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612ab1565b612af88683612ab1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612b35612b30612b2b84612253565b612b10565b612253565b9050919050565b6000819050919050565b612b4f83612b1a565b612b63612b5b82612b3c565b848454612abe565b825550505050565b600090565b612b78612b6b565b612b83818484612b46565b505050565b5b81811015612ba757612b9c600082612b70565b600181019050612b89565b5050565b601f821115612bec57612bbd81612a8c565b612bc684612aa1565b81016020851015612bd5578190505b612be9612be185612aa1565b830182612b88565b50505b505050565b600082821c905092915050565b6000612c0f60001984600802612bf1565b1980831691505092915050565b6000612c288383612bfe565b9150826002028217905092915050565b612c41826121a1565b67ffffffffffffffff811115612c5a57612c59612432565b5b612c6482546127a5565b612c6f828285612bab565b600060209050601f831160018114612ca25760008415612c90578287015190505b612c9a8582612c1c565b865550612d02565b601f198416612cb086612a8c565b60005b82811015612cd857848901518255600182019150602085019450602081019050612cb3565b86831015612cf55784890151612cf1601f891682612bfe565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000612d20826121a1565b612d2a8185612d0a565b9350612d3a8185602086016121bd565b80840191505092915050565b6000612d528285612d15565b9150612d5e8284612d15565b91508190509392505050565b6000612d7582612253565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612da757612da66128ae565b5b600182019050919050565b6000612dbd82612253565b9150612dc883612253565b9250828203905081811115612de057612ddf6128ae565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000612e3c82612e15565b612e468185612e20565b9350612e568185602086016121bd565b612e5f816121e7565b840191505092915050565b6000608082019050612e7f60008301876122e8565b612e8c60208301866122e8565b612e99604083018561237e565b8181036060830152612eab8184612e31565b905095945050505050565b600081519050612ec581612112565b92915050565b600060208284031215612ee157612ee06120dc565b5b6000612eef84828501612eb6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000604082019050612f3c60008301856122e8565b612f49602083018461237e565b939250505056fea26469706673582212205b4cd93990ab81df15e53da95fbf535a8703235a2cabb3ac553322a075aec03f64736f6c63430008180033697066733a2f2f516d65586e7968726b4547664b7a515274757379574e464b636a795a784c63553170755276784c6b4b326b546553","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"CavePartyModule#CaveParty","networkInteractionId":1,"nonce":83,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000506"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x3b6fb46fe0907eb2117995be8f5f7e325f8a3bfab22e2411bde280259c0709a5"},"type":"TRANSACTION_SEND"} +{"futureId":"CavePartyModule#CaveParty","hash":"0x3b6fb46fe0907eb2117995be8f5f7e325f8a3bfab22e2411bde280259c0709a5","networkInteractionId":1,"receipt":{"blockHash":"0xbb5bc12a3a4d87110aff6fdb045026943d697212fa51616def558fa751d64023","blockNumber":10572213,"contractAddress":"0x8613BFbd4A1c460a88E6ea15cCCD7dBEa67A882d","logs":[{"address":"0x8613BFbd4A1c460a88E6ea15cCCD7dBEa67A882d","data":"0x","logIndex":0,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000007429cbd5ed20736645723e972be60b7f6bf5959c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"CavePartyModule#CaveParty","result":{"address":"0x8613BFbd4A1c460a88E6ea15cCCD7dBEa67A882d","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"NFTGatedEventManagerModule#NFTGatedEventManager","constructorArgs":[],"contractName":"NFTGatedEventManager","dependencies":[],"from":"0x7429cbd5ed20736645723e972be60b7f6bf5959c","futureId":"NFTGatedEventManagerModule#NFTGatedEventManager","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"NFTGatedEventManagerModule#NFTGatedEventManager","networkInteraction":{"data":"0x608060405234801561001057600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611aed806100616000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806357f697991161005b57806357f69799146101165780638da5cb5b14610146578063e01a0ebe14610164578063ec38d5a01461018257610088565b8063018c97241461008d5780630b791430146100a9578063406db843146100de57806354484fb0146100fa575b600080fd5b6100a760048036038101906100a29190610d8b565b6101b7565b005b6100c360048036038101906100be9190610e0e565b6104f0565b6040516100d596959493929190610ef3565b60405180910390f35b6100f860048036038101906100f39190610e0e565b6105e1565b005b610114600480360381019061010f9190610f87565b6108f9565b005b610130600480360381019061012b9190610fc7565b6109fa565b60405161013d9190611007565b60405180910390f35b61014e610a65565b60405161015b9190611022565b60405180910390f35b61016c610a8b565b604051610179919061103d565b60405180910390f35b61019c60048036038101906101979190610e0e565b610a91565b6040516101ae96959493929190611058565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023e90611132565b60405180910390fd5b428311610289576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610280906111c4565b60405180910390fd5b600081116102cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c390611256565b60405180910390fd5b6000823b905060008163ffffffff161161031b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610312906112e8565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f80ac58cd000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016103749190611343565b602060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b59190611373565b6103f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103eb90611412565b60405180910390fd5b6000600160008054815260200190815260200160002090508581600001908161041d919061163e565b50848160010181905550838160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082816003018190555060018160020160146101000a81548160ff0219169083151502179055507f88f91a8cee50507bf8f67ddf436d225a426a493c10f4a94db0ad16d480de7dd7600054878787876040516104c9959493929190611710565b60405180910390a16000808154809291906104e390611799565b9190505550505050505050565b600160205280600052604060002060009150905080600001805461051390611461565b80601f016020809104026020016040519081016040528092919081815260200182805461053f90611461565b801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b5050505050908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160149054906101000a900460ff16908060030154908060040154905086565b60006001600083815260200190815260200160002090508060020160149054906101000a900460ff16610649576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106409061182d565b60405180910390fd5b8060010154421061068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690611899565b60405180910390fd5b80600301548160040154106106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d090611905565b60405180910390fd5b8060050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90611997565b60405180910390fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016107c79190611022565b602060405180830381865afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080891906119cc565b11610848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083f90611a45565b60405180910390fd5b60018160050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060040160008154809291906108b790611799565b91905055507fb442efe467d2ef30e62927a3cae0afcbc799a8a0944d8a143332e4e5e51cee5d82336040516108ed929190611a65565b60405180910390a15050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098090611132565b60405180910390fd5b6000600160008481526020019081526020016000209050818160020160146101000a81548160ff0219169083151502179055507fa84e22267ca5f39c3dc082a44444f3f681b9f38a5287a019487a246f28a04b0983836040516109ed929190611a8e565b60405180910390a1505050565b60006001600084815260200190815260200160002060050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60606000806000806000806001600089815260200190815260200160002090508060000181600101548260020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836003015484600401548560020160149054906101000a900460ff16858054610b0790611461565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3390611461565b8015610b805780601f10610b5557610100808354040283529160200191610b80565b820191906000526020600020905b815481529060010190602001808311610b6357829003601f168201915b505050505095509650965096509650965096505091939550919395565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610c0482610bbb565b810181811067ffffffffffffffff82111715610c2357610c22610bcc565b5b80604052505050565b6000610c36610b9d565b9050610c428282610bfb565b919050565b600067ffffffffffffffff821115610c6257610c61610bcc565b5b610c6b82610bbb565b9050602081019050919050565b82818337600083830152505050565b6000610c9a610c9584610c47565b610c2c565b905082815260208101848484011115610cb657610cb5610bb6565b5b610cc1848285610c78565b509392505050565b600082601f830112610cde57610cdd610bb1565b5b8135610cee848260208601610c87565b91505092915050565b6000819050919050565b610d0a81610cf7565b8114610d1557600080fd5b50565b600081359050610d2781610d01565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d5882610d2d565b9050919050565b610d6881610d4d565b8114610d7357600080fd5b50565b600081359050610d8581610d5f565b92915050565b60008060008060808587031215610da557610da4610ba7565b5b600085013567ffffffffffffffff811115610dc357610dc2610bac565b5b610dcf87828801610cc9565b9450506020610de087828801610d18565b9350506040610df187828801610d76565b9250506060610e0287828801610d18565b91505092959194509250565b600060208284031215610e2457610e23610ba7565b5b6000610e3284828501610d18565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e75578082015181840152602081019050610e5a565b60008484015250505050565b6000610e8c82610e3b565b610e968185610e46565b9350610ea6818560208601610e57565b610eaf81610bbb565b840191505092915050565b610ec381610cf7565b82525050565b610ed281610d4d565b82525050565b60008115159050919050565b610eed81610ed8565b82525050565b600060c0820190508181036000830152610f0d8189610e81565b9050610f1c6020830188610eba565b610f296040830187610ec9565b610f366060830186610ee4565b610f436080830185610eba565b610f5060a0830184610eba565b979650505050505050565b610f6481610ed8565b8114610f6f57600080fd5b50565b600081359050610f8181610f5b565b92915050565b60008060408385031215610f9e57610f9d610ba7565b5b6000610fac85828601610d18565b9250506020610fbd85828601610f72565b9150509250929050565b60008060408385031215610fde57610fdd610ba7565b5b6000610fec85828601610d18565b9250506020610ffd85828601610d76565b9150509250929050565b600060208201905061101c6000830184610ee4565b92915050565b60006020820190506110376000830184610ec9565b92915050565b60006020820190506110526000830184610eba565b92915050565b600060c08201905081810360008301526110728189610e81565b90506110816020830188610eba565b61108e6040830187610ec9565b61109b6060830186610eba565b6110a86080830185610eba565b6110b560a0830184610ee4565b979650505050505050565b7f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60008201527f20746869732066756e6374696f6e2e0000000000000000000000000000000000602082015250565b600061111c602f83610e46565b9150611127826110c0565b604082019050919050565b6000602082019050818103600083015261114b8161110f565b9050919050565b7f4576656e742064617465206d75737420626520696e207468652066757475726560008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b60006111ae602183610e46565b91506111b982611152565b604082019050919050565b600060208201905081810360008301526111dd816111a1565b9050919050565b7f4d6178206361706163697479206d75737420626520677265617465722074686160008201527f6e207a65726f2e00000000000000000000000000000000000000000000000000602082015250565b6000611240602783610e46565b915061124b826111e4565b604082019050919050565b6000602082019050818103600083015261126f81611233565b9050919050565b7f5265717569726564204e46542061646472657373206973206e6f74206120636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006112d2602683610e46565b91506112dd82611276565b604082019050919050565b60006020820190508181036000830152611301816112c5565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61133d81611308565b82525050565b60006020820190506113586000830184611334565b92915050565b60008151905061136d81610f5b565b92915050565b60006020828403121561138957611388610ba7565b5b60006113978482850161135e565b91505092915050565b7f5265717569726564204e46542041646472657373206973206e6f7420616e204560008201527f524337323120636f6e7472616374000000000000000000000000000000000000602082015250565b60006113fc602e83610e46565b9150611407826113a0565b604082019050919050565b6000602082019050818103600083015261142b816113ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061147957607f821691505b60208210810361148c5761148b611432565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026114f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114b7565b6114fe86836114b7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061153b61153661153184610cf7565b611516565b610cf7565b9050919050565b6000819050919050565b61155583611520565b61156961156182611542565b8484546114c4565b825550505050565b600090565b61157e611571565b61158981848461154c565b505050565b5b818110156115ad576115a2600082611576565b60018101905061158f565b5050565b601f8211156115f2576115c381611492565b6115cc846114a7565b810160208510156115db578190505b6115ef6115e7856114a7565b83018261158e565b50505b505050565b600082821c905092915050565b6000611615600019846008026115f7565b1980831691505092915050565b600061162e8383611604565b9150826002028217905092915050565b61164782610e3b565b67ffffffffffffffff8111156116605761165f610bcc565b5b61166a8254611461565b6116758282856115b1565b600060209050601f8311600181146116a85760008415611696578287015190505b6116a08582611622565b865550611708565b601f1984166116b686611492565b60005b828110156116de578489015182556001820191506020850194506020810190506116b9565b868310156116fb57848901516116f7601f891682611604565b8355505b6001600288020188555050505b505050505050565b600060a0820190506117256000830188610eba565b81810360208301526117378187610e81565b90506117466040830186610eba565b6117536060830185610ec9565b6117606080830184610eba565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117a482610cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117d6576117d561176a565b5b600182019050919050565b7f4576656e74206973206e6f74206163746976652e000000000000000000000000600082015250565b6000611817601483610e46565b9150611822826117e1565b602082019050919050565b600060208201905081810360008301526118468161180a565b9050919050565b7f4576656e7420726567697374726174696f6e2068617320636c6f7365642e0000600082015250565b6000611883601e83610e46565b915061188e8261184d565b602082019050919050565b600060208201905081810360008301526118b281611876565b9050919050565b7f4576656e742069732066756c6c7920626f6f6b65642e00000000000000000000600082015250565b60006118ef601683610e46565b91506118fa826118b9565b602082019050919050565b6000602082019050818103600083015261191e816118e2565b9050919050565b7f596f752061726520616c7265616479207265676973746572656420666f72207460008201527f686973206576656e742e00000000000000000000000000000000000000000000602082015250565b6000611981602a83610e46565b915061198c82611925565b604082019050919050565b600060208201905081810360008301526119b081611974565b9050919050565b6000815190506119c681610d01565b92915050565b6000602082840312156119e2576119e1610ba7565b5b60006119f0848285016119b7565b91505092915050565b7f596f7520646f206e6f74206f776e20746865207265717569726564204e46542e600082015250565b6000611a2f602083610e46565b9150611a3a826119f9565b602082019050919050565b60006020820190508181036000830152611a5e81611a22565b9050919050565b6000604082019050611a7a6000830185610eba565b611a876020830184610ec9565b9392505050565b6000604082019050611aa36000830185610eba565b611ab06020830184610ee4565b939250505056fea2646970667358221220b81122f3d7fa77d393f93b387b6461c781010b6213edb81c2d5b17c3c36778a064736f6c63430008180033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"NFTGatedEventManagerModule#NFTGatedEventManager","networkInteractionId":1,"nonce":84,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000506"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x3acd9ccf75cd087c7aa303b03c1780d0046feeb11e1d1ad080433893ad98409d"},"type":"TRANSACTION_SEND"} +{"futureId":"NFTGatedEventManagerModule#NFTGatedEventManager","hash":"0x3acd9ccf75cd087c7aa303b03c1780d0046feeb11e1d1ad080433893ad98409d","networkInteractionId":1,"receipt":{"blockHash":"0x1b2bbea308673a881763f821e9d8f15afe9a32e9e142f05fed58a72e6bc149e6","blockNumber":10572239,"contractAddress":"0xDbeaeb362f2889255b81f0d3E77F92Ee220D24Dc","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"NFTGatedEventManagerModule#NFTGatedEventManager","result":{"address":"0xDbeaeb362f2889255b81f0d3E77F92Ee220D24Dc","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/ignition/modules/CavePartyNFT.ts b/ignition/modules/CavePartyNFT.ts new file mode 100644 index 0000000..0f3cb13 --- /dev/null +++ b/ignition/modules/CavePartyNFT.ts @@ -0,0 +1,10 @@ +import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; + +const CavePartyModule = buildModule("CavePartyModule", (m) => { + + const CaveParty = m.contract("CaveParty"); + + return { CaveParty }; +}); + +export default CavePartyModule; diff --git a/ignition/modules/NFTGatedEventManager.ts b/ignition/modules/NFTGatedEventManager.ts index 9117463..c2de6d2 100644 --- a/ignition/modules/NFTGatedEventManager.ts +++ b/ignition/modules/NFTGatedEventManager.ts @@ -1,10 +1,10 @@ import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; -const FluffyFuryModule = buildModule("FluffyFuryModule", (m) => { +const NFTGatedEventManagerModule = buildModule("NFTGatedEventManagerModule", (m) => { - const FluffyFury = m.contract("NFTGatedEventManager"); + const NFTGatedEventManager = m.contract("NFTGatedEventManager"); - return { FluffyFury }; + return { NFTGatedEventManager }; }); -export default FluffyFuryModule; +export default NFTGatedEventManagerModule; diff --git a/scripts/interaction.ts b/scripts/interaction.ts index f56ee20..8b49a9d 100644 --- a/scripts/interaction.ts +++ b/scripts/interaction.ts @@ -1,74 +1,117 @@ import { ethers } from "hardhat"; async function main() { - const [owner, addr1, addr2] = await ethers.getSigners(); - - const multisigFactoryAddress = '0x3473b59C85919e4DcA209e2Bc9Aaf27Ab51a6Fa2'; - const web3CXITokenAddress = "0x072D37C74404d375Fa8B069C8aF50C0950DbF351"; - - const web3CXI = await ethers.getContractAt("IERC20", web3CXITokenAddress); - const multisigFactory = await ethers.getContractAt('IMultisigFactory', multisigFactoryAddress); - - // deploy recent multiSig clone - const quorum = 3; - const validSigners = [owner, addr1, addr2]; - - const deployMultisigCloneTx = await multisigFactory.createMultisigClone(quorum, validSigners); - await deployMultisigCloneTx.wait(); - - console.log("DeploymultisigCloneTx", deployMultisigCloneTx); - - // get deployed multisigs - const multisigClones = await multisigFactory.getMultisigs(); - - console.log("All multisig clones for this multisig factory", multisigClones); - - // get and interact with recent deployed multisig - const recentMultisigCloneAddress = multisigClones[multisigClones.length - 1]; - - console.log("recent multisig address", recentMultisigCloneAddress) - - // get multisig contract - const multisig = await ethers.getContractAt('IMultisig', recentMultisigCloneAddress); - - // interact with transfer function of the deployed multisig - // transfer erc 20token into contract - const transferTokensTx = await web3CXI.transfer( - multisig, - ethers.parseUnits("100", 18) - ); - transferTokensTx.wait(); - - // get balace or recipient before transfer transaction - const recipientbalanceBefore = await web3CXI.balanceOf(addr2); - - // initialize and approve the transfer function - const transferAmount = ethers.parseUnits("10", 18); - const transferTx = await multisig.transfer(transferAmount, addr2, web3CXITokenAddress); - await transferTx.wait(); - - console.log("Transfer Tx", transferTx); - - // approve transfer transaction with other valid signers - await multisig.connect(addr1).approveTx(1); - await multisig.connect(addr2).approveTx(1); - - const recipientbalanceAfter = await web3CXI.balanceOf(addr2); - - console.log("Recipient Balance Before transfer transaction: ", recipientbalanceBefore, "\nRecipient Balance After transfer transaction: ", recipientbalanceAfter); - - // interact with the updatequorum of the deployed multisig - const newQuorum = 2; - const updateQuorumTx = await multisig.updateQuorum(newQuorum); - await updateQuorumTx.wait(); - - console.log("Update Quorum Tx", updateQuorumTx); - - await multisig.connect(addr1).approveTx(2); - await multisig.connect(addr2).approveTx(2); - + const [owner, addr1, addr2] = await ethers.getSigners(); + const nft_mint_price = ethers.parseEther("0.0001"); + + const nftGatedContractAddress = "0xDbeaeb362f2889255b81f0d3E77F92Ee220D24Dc"; + const fluffyNFTTokenAddress = "0x8d62Cdd85BF63acD648c06b0766b33e381686DF0"; + const caveNFTTokenAddress = "0x8613BFbd4A1c460a88E6ea15cCCD7dBEa67A882d"; + + const FluffyFuryNFT = await ethers.getContractAt( + "IFluffyFury", + fluffyNFTTokenAddress + ); + const CavePartyNFT = await ethers.getContractAt( + "ICaveParty", + caveNFTTokenAddress + ); + const nftGatedEventManager = await ethers.getContractAt( + "INFTGatedEventManager", + nftGatedContractAddress + ); + + // create events and log transactions + // event one arguments + const eventNameEventOne = "Health Summit Africa"; + const eventDateEventOne = new Date().getTime() + 3600; + const nftRequiredEventOne = fluffyNFTTokenAddress; + const maxCapacityEventOne = 500; + + // call transaction to create event one + const createEventOneTx = await nftGatedEventManager.createEvent( + eventNameEventOne, + eventDateEventOne, + nftRequiredEventOne, + maxCapacityEventOne + ); + await createEventOneTx.wait(); + console.log("Event One creating Tx: ", createEventOneTx); + + // event two arguments + const eventNameEventTwo = "Web3Bridge Blockchain Conference"; + const eventDateEventTwo = new Date().getTime() + 7200; + const nftRequiredEventTwo = caveNFTTokenAddress; + const maxCapacityEventTwo = 5000; + + // call transaction to create event one + const createEventTwoTx = await nftGatedEventManager.createEvent( + eventNameEventTwo, + eventDateEventTwo, + nftRequiredEventTwo, + maxCapacityEventTwo + ); + await createEventTwoTx.wait(); + console.log("Event Two creating Tx: ", createEventTwoTx); + + // get event details + const eventOne = await nftGatedEventManager.getEventDetails(0); + const eventTwo = await nftGatedEventManager.getEventDetails(1); + + // log event details to console + console.log("Event One: ", eventOne); + console.log("Event Two: ", eventTwo); + + // mints nfts and register attendees for events + // mints nft for event one + const mintFluffyForOwnerTx = await FluffyFuryNFT.mint({ value: nft_mint_price }); + const mintFluffyForAddr1Tx = await FluffyFuryNFT.connect(addr1).mint({ value: nft_mint_price }); + + //logs + console.log("Mint FluffyFury NFT For Owner Tx: ", mintFluffyForOwnerTx); + console.log("Mint FluffyFury NFT For Addr1 Tx: ", mintFluffyForAddr1Tx); + + + // registers users for event one + const registerOwnerForEventOneTx = await nftGatedEventManager.registerForEvent(0); + const registerAddr1ForEventOneTx = await nftGatedEventManager.connect(addr1).registerForEvent(0); + + //logs + console.log("Register Owner For event one Tx: ", registerOwnerForEventOneTx); + console.log("Register Addr1 For event one Tx: ", registerAddr1ForEventOneTx); + + // mints nft for event two + const mintCavePartyNFTForOwnerTx = await CavePartyNFT.mintToken({ value: nft_mint_price }); + const mintCavePartyNFTForAddr1Tx = await CavePartyNFT.connect(addr2).mintToken({ value: nft_mint_price }); + + // logs + console.log("Mint CaveParty NFT For Owner Tx: ", mintCavePartyNFTForOwnerTx); + console.log("Mint CaveParty NFT For Addr1 Tx: ", mintCavePartyNFTForAddr1Tx); + + // registers users for event two + const registerOwnerForEventTwoTx = await nftGatedEventManager.registerForEvent(1); + const registerAddr1ForEventTwoTx = await nftGatedEventManager.connect(addr2).registerForEvent(1); + + //logs + //logs + console.log("Register Owner For event two Tx: ", registerOwnerForEventTwoTx); + console.log("Register Addr1 For event two Tx: ", registerAddr1ForEventTwoTx); + + const ownerBalanceBeforeWithdrawal = await ethers.provider.getBalance(owner); + console.log("Owner balance before withdrawal: ", ethers.formatEther(ownerBalanceBeforeWithdrawal)); + + // withdraws funds from nfts' to owners account + const withdrawFundsFluffyFuryNFTTx = await CavePartyNFT.withdrawFunds(); + const withdrawFundsCavePartyNFTTx = await FluffyFuryNFT.withdrawFunds(); + + //logs + console.log("withdraw Funds from FluffyFuryNFT Tx: ", withdrawFundsFluffyFuryNFTTx); + console.log("Withdraw Funds from CavePartyNFT Tx: ", withdrawFundsCavePartyNFTTx); + + const ownerBalanceAfterWithdrawal = await ethers.provider.getBalance(owner); + console.log("Owner balance after withdrawal: ", ethers.formatEther(ownerBalanceAfterWithdrawal)); } -main().catch(error => { - console.error(error); -}) \ No newline at end of file +main().catch((error) => { + console.error(error); +}); diff --git a/test/cave-party-nft.ts b/test/cave-party-nft.ts new file mode 100644 index 0000000..d129d37 --- /dev/null +++ b/test/cave-party-nft.ts @@ -0,0 +1,157 @@ +import { loadFixture } from "@nomicfoundation/hardhat-toolbox/network-helpers"; +import { ethers } from "hardhat"; +import { expect } from "chai"; + +describe("CavePartyNFT", function () { + // function to deploy NFT in test environment + async function deployNFT() { + const NFT = await ethers.getContractFactory("CaveParty"); + + const [owner, addr1, addr2, addr3, addr4] = await ethers.getSigners(); + + const nft = await NFT.deploy(); + + return { nft, owner, addr1, addr2, addr3, addr4 }; + } + + describe("Deployment", function () { + it("was deployed successfully", async function () { + const { nft, owner} = await loadFixture(deployNFT); + + expect(await nft.owner()).to.be.equal(owner); + expect(await nft.name()).to.be.equal("CaveParty"); + expect(await nft.symbol()).to.be.equal("CPY"); + expect(await nft.totalMints()).to.be.equal(0); + expect(await nft.maxPerWallet()).to.be.equal(1); + }); + }); + + describe("mintToken", function () { + it("mints an nft to the specified addresses", async function () { + const { nft, owner, addr1, addr2 } = await loadFixture(deployNFT); + + const previousOwnerBalance = await nft.balanceOf(owner); + const previousAddr1Balance = await nft.balanceOf(addr1); + + await nft.mintToken({ value: ethers.parseEther("0.0001") }); + await nft.connect(addr1).mintToken({ value: ethers.parseEther("0.0001") }); + + const newOwnerBalance = await nft.balanceOf(owner); + const newAddr1Balance = await nft.balanceOf(addr1); + + expect(await nft.getMyWalletMints()).to.be.equal(1); + expect(await nft.connect(addr1).getMyWalletMints()).to.be.equal(1); + expect(await nft.connect(addr2).getMyWalletMints()).to.be.equal(0); + expect(newOwnerBalance).to.be.greaterThan(previousOwnerBalance); + expect(newAddr1Balance).to.be.greaterThanOrEqual(previousAddr1Balance); + }); + + it(" reverts if ether is not passed to mint function", async function () { + const { nft } = await loadFixture(deployNFT); + + expect(nft.mintToken()).to.be.revertedWith("0.0001 ether required to mint"); + }); + }); + + describe("withdraw funds", function () { + it("reverts if there are no funds in the contract", async function () { + const { nft } = await loadFixture(deployNFT); + + expect(nft.withdrawFunds()).to.be.revertedWith("No funds available"); + }); + + it("reverts if non-owner calls the contract", async function () { + const { nft, addr1 } = await loadFixture(deployNFT); + + expect(nft.connect(addr1).withdrawFunds()).to.be.revertedWithCustomError( + nft, + "OwnableUnauthorizedAccount" + );; + }); + + it("withdraws funds to the owner's address", async function () { + const { nft, owner, addr1 } = await loadFixture(deployNFT); + + await nft.mintToken({ value: ethers.parseEther("0.0001") }); + await nft.connect(addr1).mintToken({ value: ethers.parseEther("0.0001") }); + + const contractBalance = await ethers.provider.getBalance(nft); + const previousOwnerBalance = await ethers.provider.getBalance(owner); + + const tx = await nft.withdrawFunds(); + const txReceipt = await tx.wait(); + + const gasUsed = txReceipt!.cumulativeGasUsed; + const effectiveGasPrice = txReceipt!.gasPrice; + const gasCost = gasUsed * effectiveGasPrice; + + const newOwnerBalance = await ethers.provider.getBalance(owner); + + expect(newOwnerBalance).to.be.equal( + previousOwnerBalance - gasCost + contractBalance + ); + }); + }); + + describe("transferOwnership", function() { + it("should revert if non-owner tries to call the function", async function() { + const {nft, addr1, addr2} = await loadFixture(deployNFT); + + expect(nft.connect(addr2).transferOwnership(addr1)).to.be.revertedWithCustomError( + nft, + "OwnableUnauthorizedAccount" + ); + }) + + it("should transfer ownership to a new address", async function() { + const { nft, addr1 } = await loadFixture(deployNFT); + + await nft.transferOwnership(addr1); + + expect(await nft.owner()).to.be.equal(addr1); + }) + }) + + describe("updateMetadata", function() { + it("should revert if non owner calls the function", async function() { + const { nft, addr1 } = await loadFixture(deployNFT); + + const metadata = "ipfs://QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS"; + + expect(nft.connect(addr1).updateMetadata(metadata)).to.be.revertedWithCustomError( + nft, + "OwnableUnauthorizedAccount" + ); + }) + + it("should revert if invalid metadata is passed", async function() { + const { nft } = await loadFixture(deployNFT); + + const metadata = "QmeXnyhrkEGfKzQRtusyWNFKcjyZxLcU1puRvxLkK2kTeS"; + + expect(nft.updateMetadata(metadata)).to.be.revertedWith( + "Invalid asset metadata: must include 'ipfs://'" + ); + }) + + it("should update metadata successfully", async function() { + const { nft } = await loadFixture(deployNFT); + + const metadata = "ipfs://Qmcs26b4ph4xqNyweWciq8H6gTkhESd4yZtECVmESMWPBo"; + + // for this test i had + await nft.updateMetadata(metadata); + + expect(await nft.getAssetMetadata()).to.be.equal(metadata); + }) + + it("should revert if non-owner calls getMetdata", async function() { + const { nft, addr1 } = await loadFixture(deployNFT); + + expect(nft.connect(addr1).getAssetMetadata()).to.be.revertedWithCustomError( + nft, + "OwnableUnauthorizedAccount" + );; + }) + }) +}); \ No newline at end of file diff --git a/test/fluffy-nft.ts b/test/fluffy-nft.ts new file mode 100644 index 0000000..bba4bc4 --- /dev/null +++ b/test/fluffy-nft.ts @@ -0,0 +1,153 @@ +import { loadFixture } from "@nomicfoundation/hardhat-toolbox/network-helpers"; +import { ethers } from "hardhat"; +import { expect } from "chai"; + +describe("FluffyFuryNFT", function () { + // function to deploy NFT in test environment + async function deployNFT() { + const NFT = await ethers.getContractFactory("FluffyFury"); + + const [owner, addr1, addr2, addr3, addr4] = await ethers.getSigners(); + + const svg = ``; + + const nft = await NFT.deploy(svg); + + return { nft, svg, owner, addr1, addr2, addr3, addr4 }; + } + + describe("Deployment", function () { + it("was deployed successfully", async function () { + const { nft, owner, svg } = await loadFixture(deployNFT); + + expect(await nft.owner()).to.be.equal(owner); + expect(await nft.svgData()).to.be.equal(svg); + expect(await nft.name()).to.be.equal("FluffyFury"); + expect(await nft.symbol()).to.be.equal("FFY"); + }); + }); + + describe("mint", function () { + it("mints an nft to the specified addresses", async function () { + const { nft, owner, addr1 } = await loadFixture(deployNFT); + + const previousOwnerBalance = await nft.balanceOf(owner); + const previousAddr1Balance = await nft.balanceOf(addr1); + + await nft.mint({ value: ethers.parseEther("0.0001") }); + await nft.connect(addr1).mint({ value: ethers.parseEther("0.0001") }); + + const newOwnerBalance = await nft.balanceOf(owner); + const newAddr1Balance = await nft.balanceOf(addr1); + + expect(newOwnerBalance).to.be.greaterThan(previousOwnerBalance); + expect(newAddr1Balance).to.be.greaterThanOrEqual(previousAddr1Balance); + }); + + it(" reverts if ether is not passed to mint function", async function () { + const { nft } = await loadFixture(deployNFT); + + expect(nft.mint()).to.be.revertedWith("0.0001 ether required to mint"); + }); + }); + + describe("withdraw funds", function () { + it("reverts if there are no funds in the contract", async function () { + const { nft } = await loadFixture(deployNFT); + + expect(nft.withdrawFunds()).to.be.revertedWith("No funds available"); + }); + + it("reverts if non-owner calls the contract", async function () { + const { nft, addr1 } = await loadFixture(deployNFT); + + expect(nft.connect(addr1).withdrawFunds()).to.be.revertedWithCustomError( + nft, + "OwnableUnauthorizedAccount" + );; + }); + + it("withdraws funds to the owner's address", async function () { + const { nft, owner, addr1 } = await loadFixture(deployNFT); + + await nft.mint({ value: ethers.parseEther("0.0001") }); + await nft.connect(addr1).mint({ value: ethers.parseEther("0.0001") }); + + const contractBalance = await ethers.provider.getBalance(nft); + const previousOwnerBalance = await ethers.provider.getBalance(owner); + + const tx = await nft.withdrawFunds(); + const txReceipt = await tx.wait(); + + const gasUsed = txReceipt!.cumulativeGasUsed; + const effectiveGasPrice = txReceipt!.gasPrice; + const gasCost = gasUsed * effectiveGasPrice; + + const newOwnerBalance = await ethers.provider.getBalance(owner); + + expect(newOwnerBalance).to.be.equal( + previousOwnerBalance - gasCost + contractBalance + ); + }); + }); + + describe("updateSvg", function () { + it("should revert if a non owner call the updateSvg function", async function () { + const { nft, addr1 } = await loadFixture(deployNFT); + + const svg = ` + + `; + + expect(nft.connect(addr1).updateSVG(svg)).to.be.revertedWithCustomError( + nft, + "OwnableUnauthorizedAccount" + ); + }); + + it("should revert if an empty string is passed", async function () { + const { nft, addr1 } = await loadFixture(deployNFT); + expect(nft.updateSVG("")).to.be.revertedWith("SVG data cannot be empty"); + }); + + it("should revert if the svg is greater than 5000 characters", async function () { + const { nft, addr1 } = await loadFixture(deployNFT); + + const svg = ` + + + `; + + await nft.updateSVG(svg); + + expect(await nft.svgData()).to.be.equal(svg); + }) + }); + + describe("transferOwnership", function() { + it("should revert if non-owner tries to call the function", async function() { + const {nft, addr1, addr2} = await loadFixture(deployNFT); + + expect(nft.connect(addr2).transferOwnership(addr1)).to.be.revertedWithCustomError( + nft, + "OwnableUnauthorizedAccount" + ); + }) + + it("should transfer ownership to a new address", async function() { + const { nft, addr1 } = await loadFixture(deployNFT); + + await nft.transferOwnership(addr1); + + expect(await nft.owner()).to.be.equal(addr1); + }) + }) +}); \ No newline at end of file diff --git a/test/nft-gated-contract.ts b/test/nft-gated-contract.ts index e69de29..f62ae89 100644 --- a/test/nft-gated-contract.ts +++ b/test/nft-gated-contract.ts @@ -0,0 +1,290 @@ +import { + time, + loadFixture, +} from "@nomicfoundation/hardhat-toolbox/network-helpers"; +import { ethers } from "hardhat"; +import { expect } from "chai"; + +describe("NFTGatedEventManager", function () { + async function deployNFT() { + const NFT = await ethers.getContractFactory("CaveParty"); + + const nft = await NFT.deploy(); + + return { nft }; + } + + async function deployNFTGatedManager() { + const [owner, addr1, addr2, addr3, addr4] = await ethers.getSigners(); + + const { nft } = await deployNFT(); + const NFTGatedEventManager = await ethers.getContractFactory( + "NFTGatedEventManager" + ); + + const nftGatedEventManager = await NFTGatedEventManager.deploy(); + + return { nft, nftGatedEventManager, owner, addr1, addr2, addr3, addr4 }; + } + + describe("deployment", function () { + it("should deploy successfully", async function () { + const { nftGatedEventManager, owner } = await loadFixture( + deployNFTGatedManager + ); + + expect(await nftGatedEventManager.owner()).to.eq(owner); + expect(await nftGatedEventManager.eventIdCounter()).to.eq(0); + }); + }); + + describe("createEvent", function () { + it("should create a new event", async function () { + const { nft, nftGatedEventManager } = await loadFixture( + deployNFTGatedManager + ); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + expect( + await nftGatedEventManager.createEvent( + eventName, + eventDate, + nftRequired, + maxCapacity + ) + ) + .to.emit(nftGatedEventManager, "EventCreated") + .withArgs(1, eventName, eventDate, nftRequired, maxCapacity); + }); + + it("should revert with error if date is not in future", async function () { + const { nft, nftGatedEventManager } = await loadFixture( + deployNFTGatedManager + ); + + const eventName = "Lagos Day Party"; + const eventDate = await time.latest(); + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + expect( + nftGatedEventManager.createEvent( + eventName, + eventDate, + nftRequired, + maxCapacity + ) + ).to.be.revertedWith("Event date must be in the future."); + }); + + it("should revert with error if max-capacity is less than 1", async function () { + const { nft, nftGatedEventManager } = await loadFixture( + deployNFTGatedManager + ); + + const eventName = "Lagos Day Party"; + const eventDate = await time.increase(10e10); + const nftRequired = await nft.getAddress(); + const maxCapacity = 0; + + expect( + nftGatedEventManager.createEvent( + eventName, + eventDate, + nftRequired, + maxCapacity + ) + ).to.be.revertedWith("Max capacity must be greater than zero."); + }); + + it("should revert if token address passed it not a contract", async function () { + const { nftGatedEventManager } = await loadFixture( + deployNFTGatedManager + ); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = ethers.ZeroAddress; + const maxCapacity = 5; + + expect( + nftGatedEventManager.createEvent( + eventName, + eventDate, + nftRequired, + maxCapacity + ) + ) + .to.be.revertedWith("Required NFT address is not a contract"); + }); + + it("should revert if token address passed is not a ERC721 contract", async function () { + const { nftGatedEventManager } = await loadFixture( + deployNFTGatedManager + ); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nftGatedEventManager.getAddress(); + const maxCapacity = 5; + + expect( + nftGatedEventManager.createEvent( + eventName, + eventDate, + nftRequired, + maxCapacity + ) + ) + .to.be.revertedWith("Required NFT Address is not an ERC721 contract"); + }); + }); + + describe("registerForEvent", function() { + it("should revert if event to register for is not currently active", async function() { + const { nftGatedEventManager } = await loadFixture(deployNFTGatedManager); + + expect(nftGatedEventManager.registerForEvent(1)).to.be.revertedWith("Event is not active."); + }) + + it("should revert if event time has passed this done ---- after the time hash passed", async function() { + const { nftGatedEventManager, nft } = await loadFixture(deployNFTGatedManager); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + await nftGatedEventManager.createEvent(eventName, eventDate, nftRequired, maxCapacity); + + await time.increase(5000); + + expect(nftGatedEventManager.registerForEvent(1)).to.be.revertedWith("Event is not active."); + }) + + it("should revert if event status is inactive ---- this done after the event status has been updated", async function() { + const { nftGatedEventManager, nft } = await loadFixture(deployNFTGatedManager); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + await nftGatedEventManager.createEvent(eventName, eventDate, nftRequired, maxCapacity); + + expect(await nftGatedEventManager.updateEventStatus(0, false)).to.emit(nftGatedEventManager, "EventStatusUpdated").withArgs(0, false); + + expect(nftGatedEventManager.registerForEvent(1)).to.be.revertedWith("Event is not active."); + }) + + it("should revert if maxCapacity for event is reached", async function() { + const { nftGatedEventManager, addr1, addr2, nft } = await loadFixture(deployNFTGatedManager); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 2; + + // create the event + await nftGatedEventManager.createEvent(eventName, eventDate, nftRequired, maxCapacity); + + // mint nft to addresses that needs to register for event + await nft.mintToken({value: ethers.parseEther("0.0001")}); + await nft.connect(addr1).mintToken({value: ethers.parseEther("0.0001")}); + await nft.connect(addr2).mintToken({value: ethers.parseEther("0.0001")}); + + // register users for the event + await nftGatedEventManager.registerForEvent(0); + await nftGatedEventManager.connect(addr1).registerForEvent(0); + + expect(nftGatedEventManager.connect(addr2).registerForEvent(0)).to.be.revertedWith("Event is fully booked."); + }) + + it("should revert if a user tries to register twice", async function() { + const { nftGatedEventManager, nft } = await loadFixture(deployNFTGatedManager); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + // create the event + await nftGatedEventManager.createEvent(eventName, eventDate, nftRequired, maxCapacity); + + // mint nft to addresses that needs to register for event + await nft.mintToken({value: ethers.parseEther("0.0001")}); + + // register users for the event + await nftGatedEventManager.registerForEvent(0); + + expect(nftGatedEventManager.registerForEvent(0)).to.be.revertedWith("You are already registered for this event."); + }) + + it("should revert if a user doesn't have the required NFT", async function() { + const { nftGatedEventManager, nft } = await loadFixture(deployNFTGatedManager); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + // create the event + await nftGatedEventManager.createEvent(eventName, eventDate, nftRequired, maxCapacity); + + expect(nftGatedEventManager.registerForEvent(0)).to.be.revertedWith("You do not own the required NFT."); + }) + + it("should register users for event", async function() { + const { nftGatedEventManager, nft, owner, addr1, addr2 } = await loadFixture(deployNFTGatedManager); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + // create the event + await nftGatedEventManager.createEvent(eventName, eventDate, nftRequired, maxCapacity); + + // mint nft to addresses that needs to register for event + await nft.mintToken({value: ethers.parseEther("0.0001")}); + await nft.connect(addr1).mintToken({value: ethers.parseEther("0.0001")}); + await nft.connect(addr2).mintToken({value: ethers.parseEther("0.0001")}); + + expect(await nftGatedEventManager.registerForEvent(0)).to.emit(nftGatedEventManager, "UserRegistered").withArgs(1, owner); + expect(await nftGatedEventManager.connect(addr1).registerForEvent(0)).to.emit(nftGatedEventManager, "UserRegistered").withArgs(1, addr1); + expect(await nftGatedEventManager.connect(addr2).registerForEvent(0)).to.emit(nftGatedEventManager, "UserRegistered").withArgs(1, addr2); + + const event1 = await nftGatedEventManager.getEventDetails(0); + const registerCountForEvent1 = event1[4]; + + expect(registerCountForEvent1).to.equal(3); + }) + }) + + describe("check if user is registered", function() { + it("should check if a user is registered", async function() { + const { nftGatedEventManager, nft, owner, addr1, addr2 } = await loadFixture(deployNFTGatedManager); + + const eventName = "Lagos Day Party"; + const eventDate = (await time.latest()) + 3600; + const nftRequired = await nft.getAddress(); + const maxCapacity = 5; + + // create the event + await nftGatedEventManager.createEvent(eventName, eventDate, nftRequired, maxCapacity); + + // mint nft to addresses that needs to register for event + await nft.mintToken({value: ethers.parseEther("0.0001")}); + + expect(await nftGatedEventManager.registerForEvent(0)).to.emit(nftGatedEventManager, "UserRegistered").withArgs(1, owner); + + const userRegistered = await nftGatedEventManager.isUserRegistered(0, owner); + + expect(userRegistered).to.equal(true); + }) + }) +});